From 81be95269ecd2f42328212324dba03702fcab700 Mon Sep 17 00:00:00 2001 From: JoeWang1127 Date: Mon, 29 Jun 2026 21:21:25 +0000 Subject: [PATCH 1/5] chore: update librairan version --- librarian.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/librarian.yaml b/librarian.yaml index 38275f296b4..e1fd7f6f2ca 100644 --- a/librarian.yaml +++ b/librarian.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. language: nodejs -version: v0.22.0 +version: v0.23.0 repo: googleapis/google-cloud-node sources: googleapis: From 5ee91f23b960f119eae7040a8fb00ef4929adc8f Mon Sep 17 00:00:00 2001 From: JoeWang1127 Date: Mon, 29 Jun 2026 21:25:44 +0000 Subject: [PATCH 2/5] chore: update library config --- librarian.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/librarian.yaml b/librarian.yaml index e1fd7f6f2ca..05fbf067164 100644 --- a/librarian.yaml +++ b/librarian.yaml @@ -1531,7 +1531,6 @@ libraries: - path: google/cloud/sql/v1 - path: google/cloud/sql/v1beta4 copyright_year: "2026" - skip_generate: true nodejs: default_version: v1 - name: google-cloud-storagebatchoperations From b6b85a9f38fdc128e68c918d6dbaebe567b06e0c Mon Sep 17 00:00:00 2001 From: JoeWang1127 Date: Mon, 29 Jun 2026 21:28:53 +0000 Subject: [PATCH 3/5] chore: migrate google-cloud-sql --- packages/google-cloud-sql/.OwlBot.yaml | 19 - packages/google-cloud-sql/.repo-metadata.json | 29 +- .../cloud/sql/v1/cloud_sql_instances.proto | 21 +- .../cloud/sql/v1/cloud_sql_resources.proto | 63 +- .../google/cloud/sql/v1/cloud_sql_users.proto | 1 + .../google/cloud/sql/v1beta4/cloud_sql.proto | 12 +- .../cloud/sql/v1beta4/cloud_sql_connect.proto | 25 + .../cloud/sql/v1beta4/cloud_sql_data.proto | 221 + .../sql/v1beta4/cloud_sql_resources.proto | 220 +- .../cloud/sql/v1beta4/cloud_sql_users.proto | 4 + packages/google-cloud-sql/protos/protos.d.ts | 1877 +- packages/google-cloud-sql/protos/protos.js | 41052 +++++++++++----- packages/google-cloud-sql/protos/protos.json | 838 +- .../v1/sql_instances_service.clone.js | 2 +- ...onnect_service.resolve_connect_settings.js | 66 + .../sql_data_service.stream_sql_data.js | 82 + .../v1beta4/sql_instances_service.clone.js | 2 +- .../v1beta4/sql_instances_service.patch.js | 10 + packages/google-cloud-sql/src/index.ts | 18 +- packages/google-cloud-sql/src/v1/index.ts | 32 +- .../src/v1/sql_backup_runs_service_client.ts | 901 +- .../src/v1/sql_backups_service_client.ts | 1253 +- .../src/v1/sql_connect_service_client.ts | 554 +- .../src/v1/sql_databases_service_client.ts | 1264 +- .../sql_feature_eligibility_service_client.ts | 139 +- .../src/v1/sql_flags_service_client.ts | 330 +- .../src/v1/sql_instances_service_client.ts | 8513 ++-- .../src/v1/sql_operations_service_client.ts | 701 +- .../src/v1/sql_ssl_certs_service_client.ts | 883 +- .../src/v1/sql_tiers_service_client.ts | 333 +- .../src/v1/sql_users_service_client.ts | 1073 +- .../src/v1beta4/gapic_metadata.json | 28 + .../google-cloud-sql/src/v1beta4/index.ts | 23 +- .../v1beta4/sql_backup_runs_service_client.ts | 935 +- .../sql_backup_runs_service_proto_list.json | 1 + .../src/v1beta4/sql_backups_service_client.ts | 1269 +- .../sql_backups_service_proto_list.json | 1 + .../src/v1beta4/sql_connect_service_client.ts | 714 +- .../sql_connect_service_client_config.json | 4 + .../sql_connect_service_proto_list.json | 1 + .../src/v1beta4/sql_data_service_client.ts | 636 + .../sql_data_service_client_config.json | 30 + .../v1beta4/sql_data_service_proto_list.json | 9 + .../v1beta4/sql_databases_service_client.ts | 1320 +- .../sql_databases_service_proto_list.json | 1 + .../src/v1beta4/sql_flags_service_client.ts | 338 +- .../v1beta4/sql_flags_service_proto_list.json | 1 + .../v1beta4/sql_instances_service_client.ts | 8680 ++-- .../sql_instances_service_proto_list.json | 1 + .../v1beta4/sql_operations_service_client.ts | 728 +- .../sql_operations_service_proto_list.json | 1 + .../v1beta4/sql_ssl_certs_service_client.ts | 913 +- .../sql_ssl_certs_service_proto_list.json | 1 + .../src/v1beta4/sql_tiers_service_client.ts | 335 +- .../v1beta4/sql_tiers_service_proto_list.json | 1 + .../src/v1beta4/sql_users_service_client.ts | 1093 +- .../v1beta4/sql_users_service_proto_list.json | 1 + .../system-test/fixtures/sample/src/index.js | 11 +- .../system-test/fixtures/sample/src/index.ts | 62 +- .../google-cloud-sql/system-test/install.ts | 24 +- .../test/gapic_sql_backup_runs_service_v1.ts | 1999 +- .../gapic_sql_backup_runs_service_v1beta4.ts | 2064 +- .../test/gapic_sql_backups_service_v1.ts | 2394 +- .../test/gapic_sql_backups_service_v1beta4.ts | 2382 +- .../test/gapic_sql_connect_service_v1.ts | 1372 +- .../test/gapic_sql_connect_service_v1beta4.ts | 1553 +- .../test/gapic_sql_data_service_v1beta4.ts | 671 + .../test/gapic_sql_databases_service_v1.ts | 2574 +- .../gapic_sql_databases_service_v1beta4.ts | 2538 +- ...apic_sql_feature_eligibility_service_v1.ts | 866 +- .../test/gapic_sql_flags_service_v1.ts | 983 +- .../test/gapic_sql_flags_service_v1beta4.ts | 1049 +- .../test/gapic_sql_instances_service_v1.ts | 12633 +++-- .../gapic_sql_instances_service_v1beta4.ts | 12711 ++--- .../test/gapic_sql_operations_service_v1.ts | 1606 +- .../gapic_sql_operations_service_v1beta4.ts | 1705 +- .../test/gapic_sql_ssl_certs_service_v1.ts | 1921 +- .../gapic_sql_ssl_certs_service_v1beta4.ts | 2062 +- .../test/gapic_sql_tiers_service_v1.ts | 1060 +- .../test/gapic_sql_tiers_service_v1beta4.ts | 1060 +- .../test/gapic_sql_users_service_v1.ts | 2148 +- .../test/gapic_sql_users_service_v1beta4.ts | 2148 +- packages/google-cloud-sql/webpack.config.js | 2 +- 83 files changed, 87005 insertions(+), 50196 deletions(-) delete mode 100644 packages/google-cloud-sql/.OwlBot.yaml create mode 100644 packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql_data.proto create mode 100644 packages/google-cloud-sql/samples/generated/v1beta4/sql_connect_service.resolve_connect_settings.js create mode 100644 packages/google-cloud-sql/samples/generated/v1beta4/sql_data_service.stream_sql_data.js create mode 100644 packages/google-cloud-sql/src/v1beta4/sql_data_service_client.ts create mode 100644 packages/google-cloud-sql/src/v1beta4/sql_data_service_client_config.json create mode 100644 packages/google-cloud-sql/src/v1beta4/sql_data_service_proto_list.json create mode 100644 packages/google-cloud-sql/test/gapic_sql_data_service_v1beta4.ts diff --git a/packages/google-cloud-sql/.OwlBot.yaml b/packages/google-cloud-sql/.OwlBot.yaml deleted file mode 100644 index 74ec2faa42f..00000000000 --- a/packages/google-cloud-sql/.OwlBot.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -deep-copy-regex: - - source: /google/cloud/sql/google-cloud-sql-nodejs - dest: /owl-bot-staging/google-cloud-sql - -api-name: sql diff --git a/packages/google-cloud-sql/.repo-metadata.json b/packages/google-cloud-sql/.repo-metadata.json index 07e82186825..7ccc643c38c 100644 --- a/packages/google-cloud-sql/.repo-metadata.json +++ b/packages/google-cloud-sql/.repo-metadata.json @@ -1,17 +1,14 @@ { - "name": "sql", - "name_pretty": "Cloud SQL Admin API", - "product_documentation": "", - "client_documentation": "https://cloud.google.com/nodejs/docs/reference/sql/latest", - "issue_tracker": "https://github.com/googleapis/google-cloud-node/issues", - "release_level": "stable", - "language": "nodejs", - "repo": "googleapis/google-cloud-node", - "distribution_name": "@google-cloud/sql", - "api_id": "sqladmin.googleapis.com", - "default_version": "v1", - "requires_billing": true, - "library_type": "GAPIC_AUTO", - "api_shortname": "sql" -} - + "api_description": "API for Cloud SQL database instance management", + "api_id": "sqladmin.googleapis.com", + "api_shortname": "sqladmin", + "client_documentation": "https://cloud.google.com/nodejs/docs/reference/sql/latest", + "default_version": "v1", + "distribution_name": "@google-cloud/sql", + "language": "nodejs", + "library_type": "GAPIC_AUTO", + "name": "sqladmin", + "name_pretty": "Cloud SQL Admin", + "release_level": "preview", + "repo": "googleapis/google-cloud-node" +} \ No newline at end of file diff --git a/packages/google-cloud-sql/protos/google/cloud/sql/v1/cloud_sql_instances.proto b/packages/google-cloud-sql/protos/google/cloud/sql/v1/cloud_sql_instances.proto index bd71bd065f2..b07e2fa0b11 100644 --- a/packages/google-cloud-sql/protos/google/cloud/sql/v1/cloud_sql_instances.proto +++ b/packages/google-cloud-sql/protos/google/cloud/sql/v1/cloud_sql_instances.proto @@ -481,7 +481,7 @@ message SqlInstancesCloneRequest { // not include the project ID. string instance = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. Project ID of the source as well as the clone Cloud SQL instance. + // Required. Project ID of the source Cloud SQL instance. string project = 2 [(google.api.field_behavior) = REQUIRED]; InstancesCloneRequest body = 100 [(google.api.field_behavior) = REQUIRED]; @@ -1366,6 +1366,20 @@ message PointInTimeRestoreContext { // instance. This value cannot be the same as the preferred_zone field. optional string preferred_secondary_zone = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the instance settings that will be overridden from the + // source instance. This field is only applicable for cross project PITRs. + DatabaseInstance target_instance_settings = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the instance settings that will be cleared from the + // source instance. This field is only applicable for cross project PITRs. + repeated string target_instance_clear_settings_field_names = 12 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The region of the target instance where the datasource will be + // restored. For example: "us-central1". + optional string region = 13 [(google.api.field_behavior) = OPTIONAL]; } // Binary log coordinates. @@ -2313,7 +2327,7 @@ message ExecuteSqlPayload { // Credentials for the database connection. oneof user_password { - // Optional. When set to true, the API caller identity associated with the + // Optional. When set to `true`, the API caller identity associated with the // request is used for database authentication. The API caller must be an // IAM user in the database. bool auto_iam_authn = 11 [(google.api.field_behavior) = OPTIONAL]; @@ -2510,4 +2524,7 @@ enum SqlSuspensionReason { // The KMS key used by the instance is either revoked or denied access to KMS_KEY_ISSUE = 5; + + // The project is suspended due to abuse detected by Ares. + PROJECT_ABUSE = 8; } diff --git a/packages/google-cloud-sql/protos/google/cloud/sql/v1/cloud_sql_resources.proto b/packages/google-cloud-sql/protos/google/cloud/sql/v1/cloud_sql_resources.proto index 78da0b64640..4f2fa0a5fc9 100644 --- a/packages/google-cloud-sql/protos/google/cloud/sql/v1/cloud_sql_resources.proto +++ b/packages/google-cloud-sql/protos/google/cloud/sql/v1/cloud_sql_resources.proto @@ -929,6 +929,24 @@ message PscConfig { // authorized to connect via PSC interface. // format: projects/PROJECT/regions/REGION/networkAttachments/ID string network_attachment_uri = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicates whether PSC DNS automation is enabled for this + // instance. When enabled, Cloud SQL provisions a universal DNS record across + // all networks configured with Private Service Connect (PSC) + // auto-connections. This will default to true for new instances when Private + // Service Connect is enabled. + optional bool psc_auto_dns_enabled = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicates whether PSC write endpoint DNS automation is enabled + // for this instance. When enabled, Cloud SQL provisions a universal global + // DNS record across all networks configured with Private Service Connect + // (PSC) auto-connections that always points to the cluster primary instance. + // This feature is only supported for Enterprise Plus edition. + // This will default to true for new Enterprise Plus instances when + // `psc_auto_dns_enabled` is enabled. + optional bool psc_write_endpoint_dns_enabled = 6 + [(google.api.field_behavior) = OPTIONAL]; } // Settings for an automatically-setup Private Service Connect consumer endpoint @@ -937,7 +955,7 @@ message PscAutoConnectionConfig { // Optional. This is the project ID of consumer service project of this // consumer endpoint. // - // Optional. This is only applicable if consumer_network is a shared vpc + // This is only applicable if `consumer_network` is a shared VPC // network. string consumer_project = 1 [(google.api.field_behavior) = OPTIONAL]; @@ -1340,6 +1358,9 @@ message Operation { // Creates a Cloud SQL read pool instance. CREATE_READ_POOL = 53; + + // Pre-checks the major version upgrade operation. + PRE_CHECK_MAJOR_VERSION_UPGRADE = 54; } // The status of an operation. @@ -1769,6 +1790,11 @@ message Settings { optional ReadPoolAutoScaleConfig read_pool_auto_scale_config = 48 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Whether the replica is in accelerated mode. This feature is in + // private preview and requires allowlisting to take effect. + google.protobuf.BoolValue accelerated_replica_mode = 49 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. Cloud SQL for MySQL auto-upgrade configuration. When this // parameter is set to true, auto-upgrade is enabled for MySQL 8.0 minor // versions. The MySQL version must be 8.0.35 or higher. @@ -1789,31 +1815,32 @@ message Settings { [(google.api.field_behavior) = OPTIONAL]; } -// Performance Capture configuration. +// Performance capture configuration. message PerformanceCaptureConfig { - // Optional. Enable or disable the Performance Capture feature. + // Optional. Enables or disables the performance capture feature. optional bool enabled = 1 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The time interval in seconds between any two probes. + // Optional. Specifies the interval in seconds between consecutive probes that + // check if any trigger condition thresholds have been reached. optional int32 probing_interval_seconds = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The minimum number of consecutive readings above threshold that - // triggers instance state capture. + // Optional. Specifies the minimum number of consecutive probe threshold that + // triggers performance capture. optional int32 probe_threshold = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The minimum number of server threads running to trigger the - // capture on primary. + // Optional. Specifies the minimum number of MySQL `Threads_running` to + // trigger the performance capture on the primary instance. optional int32 running_threads_threshold = 4 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The minimum number of seconds replica must be lagging behind - // primary to trigger capture on replica. + // Optional. Specifies the minimum number of seconds replica must be lagging + // behind primary instance to trigger the performance capture on replica. optional int32 seconds_behind_source_threshold = 5 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The amount of time in seconds that a transaction needs to have - // been open before the watcher starts recording it. + // Optional. Specifies the amount of time in seconds that a transaction needs + // to have been open before the watcher starts recording it. optional int32 transaction_duration_threshold = 8 [(google.api.field_behavior) = OPTIONAL]; } @@ -2167,6 +2194,9 @@ enum SqlDatabaseVersion { // The database version is PostgreSQL 18. POSTGRES_18 = 557; + // The database version is PostgreSQL 19. + POSTGRES_19 = 684; + // The database version is SQL Server 2019 Standard. SQLSERVER_2019_STANDARD = 26; @@ -2190,6 +2220,15 @@ enum SqlDatabaseVersion { // The database version is SQL Server 2022 Web. SQLSERVER_2022_WEB = 202; + + // The database version is SQL Server 2025 Standard. + SQLSERVER_2025_STANDARD = 549; + + // The database version is SQL Server 2025 Enterprise. + SQLSERVER_2025_ENTERPRISE = 550; + + // The database version is SQL Server 2025 Express. + SQLSERVER_2025_EXPRESS = 551; } // The pricing plan for this instance. diff --git a/packages/google-cloud-sql/protos/google/cloud/sql/v1/cloud_sql_users.proto b/packages/google-cloud-sql/protos/google/cloud/sql/v1/cloud_sql_users.proto index 6a4011084e1..b74de3516d5 100644 --- a/packages/google-cloud-sql/protos/google/cloud/sql/v1/cloud_sql_users.proto +++ b/packages/google-cloud-sql/protos/google/cloud/sql/v1/cloud_sql_users.proto @@ -19,6 +19,7 @@ package google.cloud.sql.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; import "google/cloud/sql/v1/cloud_sql_resources.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; diff --git a/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql.proto b/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql.proto index ae82a77bea1..dbf6a25598d 100644 --- a/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql.proto +++ b/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql.proto @@ -910,7 +910,7 @@ message SqlInstancesCloneRequest { // include the project ID. string instance = 1; - // Project ID of the source as well as the clone Cloud SQL instance. + // Project ID of the source Cloud SQL instance. string project = 2; InstancesCloneRequest body = 100; @@ -1066,6 +1066,16 @@ message SqlInstancesPatchRequest { // Project ID of the project that contains the instance. string project = 2; + // Optional. Set PSC config to the same value as the existing config to + // reconcile the PSC networking. + optional bool reconcile_psc_networking = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Set PSC config to the same value as the existing config and force + // reconcile the PSC networking. + optional bool reconcile_psc_networking_force = 5 + [(google.api.field_behavior) = OPTIONAL]; + DatabaseInstance body = 100; } diff --git a/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql_connect.proto b/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql_connect.proto index dd71ca90f16..6a03cec9845 100644 --- a/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql_connect.proto +++ b/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql_connect.proto @@ -42,6 +42,15 @@ service SqlConnectService { }; } + // Retrieves connect settings about a Cloud SQL instance using the instance + // DNS name. + rpc ResolveConnectSettings(ResolveConnectSettingsRequest) + returns (ConnectSettings) { + option (google.api.http) = { + get: "/sql/v1beta4/locations/{location}/dns/{dns_name}:resolveConnectSettings" + }; + } + // Generates a short-lived X509 certificate containing the provided public key // and signed by a private key specific to the target instance. Users may use // the certificate to authenticate as themselves when connecting to the @@ -69,6 +78,15 @@ message GetConnectSettingsRequest { [(google.api.field_behavior) = OPTIONAL]; } +// Connect settings retrieval request. +message ResolveConnectSettingsRequest { + // Required. Cloud SQL instance ID. This does not include the project ID. + string dns_name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The region of the instance. + string location = 2 [(google.api.field_behavior) = REQUIRED]; +} + // Connect settings retrieval response. message ConnectSettings { // Various Certificate Authority (CA) modes for certificate signing. @@ -183,6 +201,13 @@ message ConnectSettings { (google.api.field_behavior) = OUTPUT_ONLY, (google.api.field_behavior) = OPTIONAL ]; + + // Optional. Output only. Connection name of the Cloud SQL instance used in + // connection strings, in the format project:region:instance. + string connection_name = 40 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = OPTIONAL + ]; } // Ephemeral certificate creation request. diff --git a/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql_data.proto b/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql_data.proto new file mode 100644 index 00000000000..bbc0f61fe21 --- /dev/null +++ b/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql_data.proto @@ -0,0 +1,221 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.sql.v1beta4; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/rpc/status.proto"; + +option go_package = "cloud.google.com/go/sql/apiv1beta4/sqlpb;sqlpb"; +option java_multiple_files = true; +option java_outer_classname = "CloudSqlDataProto"; +option java_package = "com.google.cloud.sql.v1beta4"; + +// Service for streaming data to and from Cloud SQL instances. +service SqlDataService { + option (google.api.default_host) = "sqladmin.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/sqlservice.admin"; + + // `StreamSqlData` establishes a bidirectional stream to a Cloud SQL instance, + // and then streams data to and from the instance. + // + // The first message from the client MUST be a `StreamSqlDataRequest` request + // with configuration settings, including required values for the + // `connection_settings` field. Subsequent messages from the client may + // contain the `payload` field. + // + // Messages from the server may contain the `payload` field. + // + // The `payload` fields of the request and response streams contain the raw + // data of the database's native wire protocol (e.g., PostgreSQL wire + // protocol). The database client is responsible for generating and parsing + // this data. + // + // Any errors on initial connection (e.g., connection failure, authorization + // issues, network problems) will result in the stream being terminated with + // an appropriate RPC status exception. + // + // After a successful connection is made, if an error occurs, then the server + // terminates connection and returns the appropriate RPC status exception. + // + // Add the request params headers to the request to ensure that + // the streaming request is routed to the correct service for your database. + // + // Use this format for the request params header: + // + // `x-goog-request-params`: + // location_id={location_path}&instance_id={instance_path}` + // + // `location_path` is `locations/{location_name}` + // `instance_path` is `projects/{project_name}/instances/{instance_name}` + // + // for example: + // `x-goog-request-params`: + // `location_id=locations/us-central1&instance_id=projects/myproject/instances/instancename` + rpc StreamSqlData(stream StreamSqlDataRequest) + returns (stream StreamSqlDataResponse) {} +} + +// Message sent from the client to `SqlDataService`. +message StreamSqlDataRequest { + // Optional. Acknowledges data received by the client. + Ack ack = 4 [(google.api.field_behavior) = OPTIONAL]; + + // The message to the server. + oneof message { + // Starts a new session. When starting a new session, this is the first + // message the client sends. + StartSession start_session = 5; + + // Continues an existing session. When continuing an existing session, this + // is the first message the client sends. + ContinueSession continue_session = 6; + + // Database data. + DataPacket data = 7; + + // Terminates the session. This closes the connection to the database. + TerminateSession terminate_session = 8; + } + + // Optional. Deprecated: Use `StartSession.instance_id` or + // `ContinueSession.instance_id` instead. + // The Cloud SQL instance resource name, for example: + // projects/example-project/instances/example-instance + string instance_id = 9 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "cloudsql.googleapis.com/Instance" + } + ]; +} + +// Start a new session. The client must send this as the first message to the +// server to start a new session. The client may immediately send Data messages +// without waiting for a reply from the server. +message StartSession { + // Required. `location_id` is used to route the + // request to a specific region. Use the same region which was used to create + // the instance. Use the format `locations/{location}`, for example: + // `locations/us-central1`. + string location_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Cloud SQL instance resource name, for example: + // projects/example-project/instances/example-instance + string instance_id = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudsql.googleapis.com/Instance" + } + ]; + + // Optional. The session id, chosen by the client. This should be an + // unguessable string. If the client does not intend to reconnect to this + // session, the client may leave session_id unset. + string session_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Reconnects to an existing session. The client must send this as the first +// message to the server to reconnect to an existing session. The client may +// immediately send Data messages without waiting for a reply from the server. +message ContinueSession { + // Required. `location_id` is used to route the + // request to a specific region. Use the same region which was used to create + // the instance. Use the format `locations/{location}`, for example: + // `locations/us-central1`. + string location_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Cloud SQL instance resource name, for example: + // projects/example-project/instances/example-instance + string instance_id = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudsql.googleapis.com/Instance" + } + ]; + + // Required. The id of the session to reconnect. + string session_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Message sent from SqlDataService back to the client. +message StreamSqlDataResponse { + // Acknowledges data received by the server. + Ack ack = 2; + + // A message from the server to the client. + oneof message { + // The first message from the server to the client, containing metadata + // about this session. + SessionMetadata session_metadata = 3; + + // Data from the database. + DataPacket data = 4; + + // Terminates the session. This indicates that the database connection + // is closed. When the client receives this message, it should not + // attempt to reconnect. + TerminateSession terminate_session = 5; + } +} + +// Metadata from the server to the client about the session. The server will +// always send this as the first message +message SessionMetadata { + // The features supported by the server for this session. This field is used + // by the client to determine which features are available on the server. + // The features supported by the server for this session. + repeated SqlDataFeature supported_features = 1; +} + +// Contains data being sent or received by the database. +message DataPacket { + // Optional. The absolute byte offset of the first byte in this payload. + // 0 for new connections or resumed connections that hasn't acked any bytes + // from server. Non-zero for resumed connections + int64 first_byte_offset = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Raw data being sent or received by the database. + bytes data = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Acknowledges data received by the client or server. +message Ack { + // Required. The absolute number of bytes processed in the session. + int64 received_offset = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Indicates that the session is permanently ended. +message TerminateSession { + // Required. The session termination status. + google.rpc.Status status = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The session features. The server must send the supported features in its +// first message to the client. +enum SqlDataFeature { + // The feature is not specified. This value should not be used. + SQL_DATA_FEATURE_UNSPECIFIED = 0; + + // The server supports reconnecting to the session. If this feature is not + // present, the client should not attempt to reconnect to the session. + SQL_DATA_FEATURE_RECONNECT = 1; +} diff --git a/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql_resources.proto b/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql_resources.proto index 4f48f2bf9f9..6f15bce476f 100644 --- a/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql_resources.proto +++ b/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql_resources.proto @@ -36,6 +36,14 @@ option (google.api.resource_definition) = { type: "compute.googleapis.com/Network" pattern: "projects/{project}/global/networks/{network}" }; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/ServiceConnectionPolicy" + pattern: "projects/{project}/regions/{region}/serviceConnectionPolicies/{service_connection_policy}" +}; +option (google.api.resource_definition) = { + type: "cloudsql.googleapis.com/Instance" + pattern: "projects/{project}/instances/{instance}" +}; // An entry for an Access Control list. message AclEntry { @@ -510,7 +518,7 @@ message CloneContext { [(google.api.field_behavior) = OPTIONAL]; // Optional. The fully qualified URI of the VPC network to which the cloned - // instance will be connected via Private Services Access for private IP. For + // instance will be connected via private services access for private IP. For // example:`projects/my-network-project/global/networks/my-network`. This // field is only required for cross-project cloning. optional string destination_network = 14 [ @@ -1855,6 +1863,20 @@ message PointInTimeRestoreContext { // instance. This value cannot be the same as the preferred_zone field. optional string preferred_secondary_zone = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the instance settings that will be overridden from the + // source instance. This field is only applicable for cross project PITRs. + DatabaseInstance target_instance_settings = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the instance settings that will be cleared from the + // source instance. This field is only applicable for cross project PITRs. + repeated string target_instance_clear_settings_field_names = 12 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The region of the target instance where the datasource will be + // restored. For example: "us-central1". + optional string region = 13 [(google.api.field_behavior) = OPTIONAL]; } // Perform disk shrink context. @@ -2340,6 +2362,44 @@ message PscConfig { // authorized to connect via PSC interface. // format: projects/PROJECT/regions/REGION/networkAttachments/ID string network_attachment_uri = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicates whether Private Service Connect DNS automation is + // enabled for this instance. When enabled, Cloud SQL provisions a universal + // DNS record across all networks configured with Private Service Connect + // auto-connections. This will default to true for new instances when + // Private Service Connect is enabled. + optional bool psc_auto_dns_enabled = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicates whether Private Service Connect write endpoint DNS + // automation is enabled for this instance. When enabled, Cloud SQL provisions + // a universal global DNS record across all networks configured with Private + // Service Connect auto-connections that points to the cluster primary + // instance. This feature is only supported for Enterprise Plus edition. This + // will default to true for new enterprise plus instances when + // `psc_auto_dns_enabled` is enabled. + optional bool psc_write_endpoint_dns_enabled = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether to set up the PSC service connection policy + // automatically. + optional bool psc_auto_connection_policy_enabled = 7 + [(google.api.field_behavior) = OPTIONAL]; +} + +// The status of automated DNS provisioning. +enum AutoDnsStatus { + // Unspecified status. This means status is missing from dependency service. + AUTO_DNS_STATUS_UNSPECIFIED = 0; + + // DNS provisioning is OK. + AUTO_DNS_OK = 1; + + // DNS provisioning failed. + AUTO_DNS_FAILED = 2; + + // DNS provisioning status is not recognized by Cloud SQL. + AUTO_DNS_UNKNOWN = 3; } // Settings for an automatically-setup Private Service Connect consumer endpoint @@ -2370,6 +2430,31 @@ message PscAutoConnectionConfig { // The connection policy status of the consumer network. optional string consumer_network_status = 5; + + // Output only. The service connection policy created automatically for the + // consumer network when `psc_auto_connection_policy_enabled` is true. It is + // in the format of: + // `projects/{project}/regions/{region}/serviceConnectionPolicies/{policy_id}` + // The `policy_id` is in format of `$NETWORK-$RANDOM`. + optional string service_connection_policy = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "compute.googleapis.com/ServiceConnectionPolicy" + } + ]; + + // Output only. The status of service connection policy creation. + optional string service_connection_policy_creation_result = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of automated DNS provisioning. + optional AutoDnsStatus instance_auto_dns_status = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of automated DNS provisioning for the write + // endpoint. + optional AutoDnsStatus write_endpoint_auto_dns_status = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Database instance IP mapping @@ -2813,6 +2898,17 @@ message Operation { // Creates a Cloud SQL read pool instance. CREATE_READ_POOL = 53; + + // Pre-checks for major version upgrade. + PRE_CHECK_MAJOR_VERSION_UPGRADE = 54; + + // This operation type represents individual steps in a multi-step setup + // migration workflow: including configuration, replication, + // switchover/back, and data reseeding, as defined by operation's intent. + SETUP_MIGRATION = 58; + + // Sends a message to a Cloud SQL agent. + AGENT_SEND_MESSAGE = 59; } // The status of an operation. @@ -3103,7 +3199,7 @@ message Settings { ON_DEMAND = 3 [deprecated = true]; } - // The edition of the instance. + // The list of Cloud SQL editions available to users. enum Edition { // The instance did not specify the edition. EDITION_UNSPECIFIED = 0; @@ -3113,6 +3209,9 @@ message Settings { // The instance is an Enterprise Plus edition. ENTERPRISE_PLUS = 3; + + // This instance is a Cloud SQL developer edition instance. + DEVELOPER = 5; } // The options for enforcing Cloud SQL connectors in the instance. @@ -3256,7 +3355,7 @@ message Settings { // SQL Server specific audit configuration. SqlServerAuditConfig sql_server_audit_config = 29; - // Optional. The edition of the instance. + // Optional. The edition type of the Cloud SQL instance. Edition edition = 38 [(google.api.field_behavior) = OPTIONAL]; // Specifies if connections must use Cloud SQL connectors. @@ -3331,6 +3430,11 @@ message Settings { optional ReadPoolAutoScaleConfig read_pool_auto_scale_config = 48 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Configures whether the replica is in accelerated mode. This + // feature is in private preview and requires allowlisting to take effect. + google.protobuf.BoolValue accelerated_replica_mode = 49 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. Cloud SQL for MySQL auto-upgrade configuration. When this // parameter is set to true, auto-upgrade is enabled for MySQL 8.0 minor // versions. The MySQL version must be 8.0.35 or higher. @@ -3351,33 +3455,103 @@ message Settings { [(google.api.field_behavior) = OPTIONAL]; } -// Performance Capture configuration. +// Performance capture configuration. message PerformanceCaptureConfig { - // Optional. Enable or disable the Performance Capture. + // Defines the categories of long-running transactions eligible for automatic + // termination by the Performance Capture. + enum TransactionKillType { + // Unspecified. + TRANSACTION_KILL_TYPE_UNSPECIFIED = 0; + + // Only read-only transactions are eligible for termination. + READ_ONLY_TRANSACTIONS = 1; + + // All transactions are eligible for termination, including those with write + // operations (such as INSERT, UPDATE, DELETE, or DDL). + ALL_TRANSACTIONS = 2; + } + + // Optional. Enables or disables the performance capture feature. optional bool enabled = 1 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The time interval in seconds between any two probes. + // Optional. Specifies the interval in seconds between consecutive probes that + // check if any trigger condition thresholds have been reached. optional int32 probing_interval_seconds = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The minimum number of consecutive readings above threshold that - // triggers instance state capture. + // Optional. Specifies the minimum number of consecutive probe threshold that + // triggers performance capture. optional int32 probe_threshold = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The minimum number of server threads running to trigger the - // capture on primary. + // Optional. Specifies the minimum number of MySQL `Threads_running` to + // trigger the performance capture on the primary instance. optional int32 running_threads_threshold = 4 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The minimum number of seconds replica must be lagging behind - // primary to trigger capture on replica. + // Optional. Specifies the minimum number of seconds replica must be lagging + // behind primary instance to trigger the performance capture on replica. optional int32 seconds_behind_source_threshold = 5 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The amount of time in seconds that a transaction needs to have - // been open before the watcher starts recording it. + // Optional. Specifies the amount of time in seconds that a transaction needs + // to have been open before the watcher starts recording it. optional int32 transaction_duration_threshold = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the minimum percentage of CPU utilization to trigger + // the performance capture. Valid integers range from `10` to `99`. Enter `0` + // to disable the check. + optional int32 cpu_utilization_threshold_percent = 9 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the minimum percentage of memory usage to trigger the + // performance capture. + // Valid integers range from `10` to `99`. Enter `0` to disable the check. + optional int32 memory_usage_threshold_percent = 10 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the minimum allowed number of transactions in lock wait + // state to trigger the performance capture. Valid integers range from `10` to + // `10000`. Enter `0` to disable the check. + optional int32 transaction_lock_wait_threshold_count = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the minimum allowed number of semaphore waits to + // trigger the performance capture. Valid integers range from `10` to `10000`. + // Enter `0` to disable the check. + optional int32 semaphore_wait_threshold_count = 12 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the minimum number of undo log entries in the history + // list length to trigger the performance capture. Valid integers range from + // `10000` to `10000000`. Enter `0` to disable the check. + optional int32 history_list_length_threshold_count = 13 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the amount of time in seconds that a transaction needs + // to have been open before the watcher starts terminating it. Valid integers + // range from `60` to `604800` (7 days). Enter `0` to disable. If enabled + // (i.e., > 0), this value must be greater than or equal to + // `transaction_duration_threshold`. Configurations where + // `0 < transaction_kill_threshold_seconds < transaction_duration_threshold` + // will be rejected. + optional int32 transaction_kill_threshold_seconds = 14 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies a customer-defined list of users to exclude from + // transaction termination. Entries can be in the format 'user@host' or just + // 'user'. A standalone 'user' implies 'user@%', excluding the user from any + // host. Wildcard '%' is allowed in the host part of the 'user@host' format. + // Example: `["app_user", "db_admin@10.1.2.3", "report_user@%"]` + repeated string transaction_kill_excluded_user_hosts = 16 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Determines which transactions are allowed to be terminated when + // they exceed `transaction_kill_threshold_seconds`. This allows protecting + // write-heavy transactions from auto-termination if desired. Defaults to + // `READ_ONLY_TRANSACTIONS` if unspecified. + optional TransactionKillType transaction_kill_type = 17 + [(google.api.field_behavior) = OPTIONAL]; } // Specifies options for controlling advanced machine features. @@ -3891,6 +4065,12 @@ enum SqlDatabaseVersion { // The database version is PostgreSQL 18. POSTGRES_18 = 557; + // The database version is PostgreSQL 19. + POSTGRES_19 = 684; + + // The database version is PostgreSQL 20. + POSTGRES_20 = 781; + // The database version is SQL Server 2019 Standard. SQLSERVER_2019_STANDARD = 26; @@ -3914,6 +4094,15 @@ enum SqlDatabaseVersion { // The database version is SQL Server 2022 Web. SQLSERVER_2022_WEB = 202; + + // The database version is SQL Server 2025 Standard. + SQLSERVER_2025_STANDARD = 549; + + // The database version is SQL Server 2025 Enterprise. + SQLSERVER_2025_ENTERPRISE = 550; + + // The database version is SQL Server 2025 Express. + SQLSERVER_2025_EXPRESS = 551; } // The suspension reason of the database instance if the state is SUSPENDED. @@ -3935,6 +4124,9 @@ enum SqlSuspensionReason { // The KMS key used by the instance is either revoked or denied access to KMS_KEY_ISSUE = 5; + + // The project is suspended due to abuse detected by Ares. + PROJECT_ABUSE = 8; } // The pricing plan for this instance. diff --git a/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql_users.proto b/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql_users.proto index bb4e20c993b..b5c5a272f8e 100644 --- a/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql_users.proto +++ b/packages/google-cloud-sql/protos/google/cloud/sql/v1beta4/cloud_sql_users.proto @@ -196,6 +196,10 @@ message User { // Cloud IAM group. CLOUD_IAM_GROUP_SERVICE_ACCOUNT = 5; + // Cloud IAM workforce identity user managed via workforce identity + // federation. + CLOUD_IAM_WORKFORCE_IDENTITY = 6; + // Microsoft Entra ID user. ENTRAID_USER = 7; } diff --git a/packages/google-cloud-sql/protos/protos.d.ts b/packages/google-cloud-sql/protos/protos.d.ts index 550fe4464ff..e97f3fb77ca 100644 --- a/packages/google-cloud-sql/protos/protos.d.ts +++ b/packages/google-cloud-sql/protos/protos.d.ts @@ -4715,6 +4715,12 @@ export namespace google { /** PscConfig networkAttachmentUri */ networkAttachmentUri?: (string|null); + + /** PscConfig pscAutoDnsEnabled */ + pscAutoDnsEnabled?: (boolean|null); + + /** PscConfig pscWriteEndpointDnsEnabled */ + pscWriteEndpointDnsEnabled?: (boolean|null); } /** Represents a PscConfig. */ @@ -4738,6 +4744,12 @@ export namespace google { /** PscConfig networkAttachmentUri. */ public networkAttachmentUri: string; + /** PscConfig pscAutoDnsEnabled. */ + public pscAutoDnsEnabled?: (boolean|null); + + /** PscConfig pscWriteEndpointDnsEnabled. */ + public pscWriteEndpointDnsEnabled?: (boolean|null); + /** * Creates a new PscConfig instance using the specified properties. * @param [properties] Properties to set @@ -6250,7 +6262,8 @@ export namespace google { MANAGE_BACKUP = 50, ENHANCED_BACKUP = 51, REPAIR_READ_POOL = 52, - CREATE_READ_POOL = 53 + CREATE_READ_POOL = 53, + PRE_CHECK_MAJOR_VERSION_UPGRADE = 54 } /** SqlOperationStatus enum. */ @@ -6942,6 +6955,9 @@ export namespace google { /** Settings readPoolAutoScaleConfig */ readPoolAutoScaleConfig?: (google.cloud.sql.v1.IReadPoolAutoScaleConfig|null); + /** Settings acceleratedReplicaMode */ + acceleratedReplicaMode?: (google.protobuf.IBoolValue|null); + /** Settings autoUpgradeEnabled */ autoUpgradeEnabled?: (boolean|null); @@ -7087,6 +7103,9 @@ export namespace google { /** Settings readPoolAutoScaleConfig. */ public readPoolAutoScaleConfig?: (google.cloud.sql.v1.IReadPoolAutoScaleConfig|null); + /** Settings acceleratedReplicaMode. */ + public acceleratedReplicaMode?: (google.protobuf.IBoolValue|null); + /** Settings autoUpgradeEnabled. */ public autoUpgradeEnabled?: (boolean|null); @@ -8556,6 +8575,7 @@ export namespace google { POSTGRES_16 = 272, POSTGRES_17 = 408, POSTGRES_18 = 557, + POSTGRES_19 = 684, SQLSERVER_2019_STANDARD = 26, SQLSERVER_2019_ENTERPRISE = 27, SQLSERVER_2019_EXPRESS = 28, @@ -8563,7 +8583,10 @@ export namespace google { SQLSERVER_2022_STANDARD = 199, SQLSERVER_2022_ENTERPRISE = 200, SQLSERVER_2022_EXPRESS = 201, - SQLSERVER_2022_WEB = 202 + SQLSERVER_2022_WEB = 202, + SQLSERVER_2025_STANDARD = 549, + SQLSERVER_2025_ENTERPRISE = 550, + SQLSERVER_2025_EXPRESS = 551 } /** SqlPricingPlan enum. */ @@ -17756,6 +17779,15 @@ export namespace google { /** PointInTimeRestoreContext preferredSecondaryZone */ preferredSecondaryZone?: (string|null); + + /** PointInTimeRestoreContext targetInstanceSettings */ + targetInstanceSettings?: (google.cloud.sql.v1.IDatabaseInstance|null); + + /** PointInTimeRestoreContext targetInstanceClearSettingsFieldNames */ + targetInstanceClearSettingsFieldNames?: (string[]|null); + + /** PointInTimeRestoreContext region */ + region?: (string|null); } /** Represents a PointInTimeRestoreContext. */ @@ -17788,6 +17820,15 @@ export namespace google { /** PointInTimeRestoreContext preferredSecondaryZone. */ public preferredSecondaryZone?: (string|null); + /** PointInTimeRestoreContext targetInstanceSettings. */ + public targetInstanceSettings?: (google.cloud.sql.v1.IDatabaseInstance|null); + + /** PointInTimeRestoreContext targetInstanceClearSettingsFieldNames. */ + public targetInstanceClearSettingsFieldNames: string[]; + + /** PointInTimeRestoreContext region. */ + public region?: (string|null); + /** * Creates a new PointInTimeRestoreContext instance using the specified properties. * @param [properties] Properties to set @@ -22351,7 +22392,8 @@ export namespace google { BILLING_ISSUE = 2, LEGAL_ISSUE = 3, OPERATIONAL_ISSUE = 4, - KMS_KEY_ISSUE = 5 + KMS_KEY_ISSUE = 5, + PROJECT_ABUSE = 8 } /** Represents a SqlConnectService */ @@ -32492,6 +32534,12 @@ export namespace google { /** SqlInstancesPatchRequest project */ project?: (string|null); + /** SqlInstancesPatchRequest reconcilePscNetworking */ + reconcilePscNetworking?: (boolean|null); + + /** SqlInstancesPatchRequest reconcilePscNetworkingForce */ + reconcilePscNetworkingForce?: (boolean|null); + /** SqlInstancesPatchRequest body */ body?: (google.cloud.sql.v1beta4.IDatabaseInstance|null); } @@ -32511,6 +32559,12 @@ export namespace google { /** SqlInstancesPatchRequest project. */ public project: string; + /** SqlInstancesPatchRequest reconcilePscNetworking. */ + public reconcilePscNetworking?: (boolean|null); + + /** SqlInstancesPatchRequest reconcilePscNetworkingForce. */ + public reconcilePscNetworkingForce?: (boolean|null); + /** SqlInstancesPatchRequest body. */ public body?: (google.cloud.sql.v1beta4.IDatabaseInstance|null); @@ -45663,6 +45717,15 @@ export namespace google { /** PointInTimeRestoreContext preferredSecondaryZone */ preferredSecondaryZone?: (string|null); + + /** PointInTimeRestoreContext targetInstanceSettings */ + targetInstanceSettings?: (google.cloud.sql.v1beta4.IDatabaseInstance|null); + + /** PointInTimeRestoreContext targetInstanceClearSettingsFieldNames */ + targetInstanceClearSettingsFieldNames?: (string[]|null); + + /** PointInTimeRestoreContext region */ + region?: (string|null); } /** Represents a PointInTimeRestoreContext. */ @@ -45695,6 +45758,15 @@ export namespace google { /** PointInTimeRestoreContext preferredSecondaryZone. */ public preferredSecondaryZone?: (string|null); + /** PointInTimeRestoreContext targetInstanceSettings. */ + public targetInstanceSettings?: (google.cloud.sql.v1beta4.IDatabaseInstance|null); + + /** PointInTimeRestoreContext targetInstanceClearSettingsFieldNames. */ + public targetInstanceClearSettingsFieldNames: string[]; + + /** PointInTimeRestoreContext region. */ + public region?: (string|null); + /** * Creates a new PointInTimeRestoreContext instance using the specified properties. * @param [properties] Properties to set @@ -46695,6 +46767,15 @@ export namespace google { /** PscConfig networkAttachmentUri */ networkAttachmentUri?: (string|null); + + /** PscConfig pscAutoDnsEnabled */ + pscAutoDnsEnabled?: (boolean|null); + + /** PscConfig pscWriteEndpointDnsEnabled */ + pscWriteEndpointDnsEnabled?: (boolean|null); + + /** PscConfig pscAutoConnectionPolicyEnabled */ + pscAutoConnectionPolicyEnabled?: (boolean|null); } /** Represents a PscConfig. */ @@ -46718,6 +46799,15 @@ export namespace google { /** PscConfig networkAttachmentUri. */ public networkAttachmentUri: string; + /** PscConfig pscAutoDnsEnabled. */ + public pscAutoDnsEnabled?: (boolean|null); + + /** PscConfig pscWriteEndpointDnsEnabled. */ + public pscWriteEndpointDnsEnabled?: (boolean|null); + + /** PscConfig pscAutoConnectionPolicyEnabled. */ + public pscAutoConnectionPolicyEnabled?: (boolean|null); + /** * Creates a new PscConfig instance using the specified properties. * @param [properties] Properties to set @@ -46796,6 +46886,14 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** AutoDnsStatus enum. */ + enum AutoDnsStatus { + AUTO_DNS_STATUS_UNSPECIFIED = 0, + AUTO_DNS_OK = 1, + AUTO_DNS_FAILED = 2, + AUTO_DNS_UNKNOWN = 3 + } + /** Properties of a PscAutoConnectionConfig. */ interface IPscAutoConnectionConfig { @@ -46813,6 +46911,18 @@ export namespace google { /** PscAutoConnectionConfig consumerNetworkStatus */ consumerNetworkStatus?: (string|null); + + /** PscAutoConnectionConfig serviceConnectionPolicy */ + serviceConnectionPolicy?: (string|null); + + /** PscAutoConnectionConfig serviceConnectionPolicyCreationResult */ + serviceConnectionPolicyCreationResult?: (string|null); + + /** PscAutoConnectionConfig instanceAutoDnsStatus */ + instanceAutoDnsStatus?: (google.cloud.sql.v1beta4.AutoDnsStatus|keyof typeof google.cloud.sql.v1beta4.AutoDnsStatus|null); + + /** PscAutoConnectionConfig writeEndpointAutoDnsStatus */ + writeEndpointAutoDnsStatus?: (google.cloud.sql.v1beta4.AutoDnsStatus|keyof typeof google.cloud.sql.v1beta4.AutoDnsStatus|null); } /** Represents a PscAutoConnectionConfig. */ @@ -46839,6 +46949,18 @@ export namespace google { /** PscAutoConnectionConfig consumerNetworkStatus. */ public consumerNetworkStatus?: (string|null); + /** PscAutoConnectionConfig serviceConnectionPolicy. */ + public serviceConnectionPolicy?: (string|null); + + /** PscAutoConnectionConfig serviceConnectionPolicyCreationResult. */ + public serviceConnectionPolicyCreationResult?: (string|null); + + /** PscAutoConnectionConfig instanceAutoDnsStatus. */ + public instanceAutoDnsStatus?: (google.cloud.sql.v1beta4.AutoDnsStatus|keyof typeof google.cloud.sql.v1beta4.AutoDnsStatus|null); + + /** PscAutoConnectionConfig writeEndpointAutoDnsStatus. */ + public writeEndpointAutoDnsStatus?: (google.cloud.sql.v1beta4.AutoDnsStatus|keyof typeof google.cloud.sql.v1beta4.AutoDnsStatus|null); + /** * Creates a new PscAutoConnectionConfig instance using the specified properties. * @param [properties] Properties to set @@ -48495,7 +48617,10 @@ export namespace google { MANAGE_BACKUP = 50, ENHANCED_BACKUP = 51, REPAIR_READ_POOL = 52, - CREATE_READ_POOL = 53 + CREATE_READ_POOL = 53, + PRE_CHECK_MAJOR_VERSION_UPGRADE = 54, + SETUP_MIGRATION = 58, + AGENT_SEND_MESSAGE = 59 } /** SqlOperationStatus enum. */ @@ -49835,6 +49960,9 @@ export namespace google { /** Settings readPoolAutoScaleConfig */ readPoolAutoScaleConfig?: (google.cloud.sql.v1beta4.IReadPoolAutoScaleConfig|null); + /** Settings acceleratedReplicaMode */ + acceleratedReplicaMode?: (google.protobuf.IBoolValue|null); + /** Settings autoUpgradeEnabled */ autoUpgradeEnabled?: (boolean|null); @@ -49980,6 +50108,9 @@ export namespace google { /** Settings readPoolAutoScaleConfig. */ public readPoolAutoScaleConfig?: (google.cloud.sql.v1beta4.IReadPoolAutoScaleConfig|null); + /** Settings acceleratedReplicaMode. */ + public acceleratedReplicaMode?: (google.protobuf.IBoolValue|null); + /** Settings autoUpgradeEnabled. */ public autoUpgradeEnabled?: (boolean|null); @@ -50084,7 +50215,8 @@ export namespace google { enum Edition { EDITION_UNSPECIFIED = 0, ENTERPRISE = 2, - ENTERPRISE_PLUS = 3 + ENTERPRISE_PLUS = 3, + DEVELOPER = 5 } /** ConnectorEnforcement enum. */ @@ -50122,6 +50254,30 @@ export namespace google { /** PerformanceCaptureConfig transactionDurationThreshold */ transactionDurationThreshold?: (number|null); + + /** PerformanceCaptureConfig cpuUtilizationThresholdPercent */ + cpuUtilizationThresholdPercent?: (number|null); + + /** PerformanceCaptureConfig memoryUsageThresholdPercent */ + memoryUsageThresholdPercent?: (number|null); + + /** PerformanceCaptureConfig transactionLockWaitThresholdCount */ + transactionLockWaitThresholdCount?: (number|null); + + /** PerformanceCaptureConfig semaphoreWaitThresholdCount */ + semaphoreWaitThresholdCount?: (number|null); + + /** PerformanceCaptureConfig historyListLengthThresholdCount */ + historyListLengthThresholdCount?: (number|null); + + /** PerformanceCaptureConfig transactionKillThresholdSeconds */ + transactionKillThresholdSeconds?: (number|null); + + /** PerformanceCaptureConfig transactionKillExcludedUserHosts */ + transactionKillExcludedUserHosts?: (string[]|null); + + /** PerformanceCaptureConfig transactionKillType */ + transactionKillType?: (google.cloud.sql.v1beta4.PerformanceCaptureConfig.TransactionKillType|keyof typeof google.cloud.sql.v1beta4.PerformanceCaptureConfig.TransactionKillType|null); } /** Represents a PerformanceCaptureConfig. */ @@ -50151,6 +50307,30 @@ export namespace google { /** PerformanceCaptureConfig transactionDurationThreshold. */ public transactionDurationThreshold?: (number|null); + /** PerformanceCaptureConfig cpuUtilizationThresholdPercent. */ + public cpuUtilizationThresholdPercent?: (number|null); + + /** PerformanceCaptureConfig memoryUsageThresholdPercent. */ + public memoryUsageThresholdPercent?: (number|null); + + /** PerformanceCaptureConfig transactionLockWaitThresholdCount. */ + public transactionLockWaitThresholdCount?: (number|null); + + /** PerformanceCaptureConfig semaphoreWaitThresholdCount. */ + public semaphoreWaitThresholdCount?: (number|null); + + /** PerformanceCaptureConfig historyListLengthThresholdCount. */ + public historyListLengthThresholdCount?: (number|null); + + /** PerformanceCaptureConfig transactionKillThresholdSeconds. */ + public transactionKillThresholdSeconds?: (number|null); + + /** PerformanceCaptureConfig transactionKillExcludedUserHosts. */ + public transactionKillExcludedUserHosts: string[]; + + /** PerformanceCaptureConfig transactionKillType. */ + public transactionKillType?: (google.cloud.sql.v1beta4.PerformanceCaptureConfig.TransactionKillType|keyof typeof google.cloud.sql.v1beta4.PerformanceCaptureConfig.TransactionKillType|null); + /** * Creates a new PerformanceCaptureConfig instance using the specified properties. * @param [properties] Properties to set @@ -50229,6 +50409,16 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + namespace PerformanceCaptureConfig { + + /** TransactionKillType enum. */ + enum TransactionKillType { + TRANSACTION_KILL_TYPE_UNSPECIFIED = 0, + READ_ONLY_TRANSACTIONS = 1, + ALL_TRANSACTIONS = 2 + } + } + /** Properties of an AdvancedMachineFeatures. */ interface IAdvancedMachineFeatures { @@ -52218,6 +52408,8 @@ export namespace google { POSTGRES_16 = 272, POSTGRES_17 = 408, POSTGRES_18 = 557, + POSTGRES_19 = 684, + POSTGRES_20 = 781, SQLSERVER_2019_STANDARD = 26, SQLSERVER_2019_ENTERPRISE = 27, SQLSERVER_2019_EXPRESS = 28, @@ -52225,7 +52417,10 @@ export namespace google { SQLSERVER_2022_STANDARD = 199, SQLSERVER_2022_ENTERPRISE = 200, SQLSERVER_2022_EXPRESS = 201, - SQLSERVER_2022_WEB = 202 + SQLSERVER_2022_WEB = 202, + SQLSERVER_2025_STANDARD = 549, + SQLSERVER_2025_ENTERPRISE = 550, + SQLSERVER_2025_EXPRESS = 551 } /** SqlSuspensionReason enum. */ @@ -52234,7 +52429,8 @@ export namespace google { BILLING_ISSUE = 2, LEGAL_ISSUE = 3, OPERATIONAL_ISSUE = 4, - KMS_KEY_ISSUE = 5 + KMS_KEY_ISSUE = 5, + PROJECT_ABUSE = 8 } /** SqlPricingPlan enum. */ @@ -52443,6 +52639,20 @@ export namespace google { */ public getConnectSettings(request: google.cloud.sql.v1beta4.IGetConnectSettingsRequest): Promise; + /** + * Calls ResolveConnectSettings. + * @param request ResolveConnectSettingsRequest message or plain object + * @param callback Node-style callback called with the error, if any, and ConnectSettings + */ + public resolveConnectSettings(request: google.cloud.sql.v1beta4.IResolveConnectSettingsRequest, callback: google.cloud.sql.v1beta4.SqlConnectService.ResolveConnectSettingsCallback): void; + + /** + * Calls ResolveConnectSettings. + * @param request ResolveConnectSettingsRequest message or plain object + * @returns Promise + */ + public resolveConnectSettings(request: google.cloud.sql.v1beta4.IResolveConnectSettingsRequest): Promise; + /** * Calls GenerateEphemeralCert. * @param request GenerateEphemeralCertRequest message or plain object @@ -52467,6 +52677,13 @@ export namespace google { */ type GetConnectSettingsCallback = (error: (Error|null), response?: google.cloud.sql.v1beta4.ConnectSettings) => void; + /** + * Callback as used by {@link google.cloud.sql.v1beta4.SqlConnectService|resolveConnectSettings}. + * @param error Error, if any + * @param [response] ConnectSettings + */ + type ResolveConnectSettingsCallback = (error: (Error|null), response?: google.cloud.sql.v1beta4.ConnectSettings) => void; + /** * Callback as used by {@link google.cloud.sql.v1beta4.SqlConnectService|generateEphemeralCert}. * @param error Error, if any @@ -52584,6 +52801,109 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a ResolveConnectSettingsRequest. */ + interface IResolveConnectSettingsRequest { + + /** ResolveConnectSettingsRequest dnsName */ + dnsName?: (string|null); + + /** ResolveConnectSettingsRequest location */ + location?: (string|null); + } + + /** Represents a ResolveConnectSettingsRequest. */ + class ResolveConnectSettingsRequest implements IResolveConnectSettingsRequest { + + /** + * Constructs a new ResolveConnectSettingsRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.sql.v1beta4.IResolveConnectSettingsRequest); + + /** ResolveConnectSettingsRequest dnsName. */ + public dnsName: string; + + /** ResolveConnectSettingsRequest location. */ + public location: string; + + /** + * Creates a new ResolveConnectSettingsRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns ResolveConnectSettingsRequest instance + */ + public static create(properties?: google.cloud.sql.v1beta4.IResolveConnectSettingsRequest): google.cloud.sql.v1beta4.ResolveConnectSettingsRequest; + + /** + * Encodes the specified ResolveConnectSettingsRequest message. Does not implicitly {@link google.cloud.sql.v1beta4.ResolveConnectSettingsRequest.verify|verify} messages. + * @param message ResolveConnectSettingsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.sql.v1beta4.IResolveConnectSettingsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ResolveConnectSettingsRequest message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.ResolveConnectSettingsRequest.verify|verify} messages. + * @param message ResolveConnectSettingsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.sql.v1beta4.IResolveConnectSettingsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ResolveConnectSettingsRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ResolveConnectSettingsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.sql.v1beta4.ResolveConnectSettingsRequest; + + /** + * Decodes a ResolveConnectSettingsRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ResolveConnectSettingsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.sql.v1beta4.ResolveConnectSettingsRequest; + + /** + * Verifies a ResolveConnectSettingsRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ResolveConnectSettingsRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ResolveConnectSettingsRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.sql.v1beta4.ResolveConnectSettingsRequest; + + /** + * Creates a plain object from a ResolveConnectSettingsRequest message. Also converts values to other types if specified. + * @param message ResolveConnectSettingsRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.sql.v1beta4.ResolveConnectSettingsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ResolveConnectSettingsRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ResolveConnectSettingsRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of a ConnectSettings. */ interface IConnectSettings { @@ -52628,6 +52948,9 @@ export namespace google { /** ConnectSettings mdxProtocolSupport */ mdxProtocolSupport?: (google.cloud.sql.v1beta4.ConnectSettings.MdxProtocolSupport[]|null); + + /** ConnectSettings connectionName */ + connectionName?: (string|null); } /** Represents a ConnectSettings. */ @@ -52681,6 +53004,9 @@ export namespace google { /** ConnectSettings mdxProtocolSupport. */ public mdxProtocolSupport: google.cloud.sql.v1beta4.ConnectSettings.MdxProtocolSupport[]; + /** ConnectSettings connectionName. */ + public connectionName: string; + /** * Creates a new ConnectSettings instance using the specified properties. * @param [properties] Properties to set @@ -53115,6 +53441,917 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Represents a SqlDataService */ + class SqlDataService extends $protobuf.rpc.Service { + + /** + * Constructs a new SqlDataService service. + * @param rpcImpl RPC implementation + * @param [requestDelimited=false] Whether requests are length-delimited + * @param [responseDelimited=false] Whether responses are length-delimited + */ + constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean); + + /** + * Creates new SqlDataService service using the specified rpc implementation. + * @param rpcImpl RPC implementation + * @param [requestDelimited=false] Whether requests are length-delimited + * @param [responseDelimited=false] Whether responses are length-delimited + * @returns RPC service. Useful where requests and/or responses are streamed. + */ + public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): SqlDataService; + + /** + * Calls StreamSqlData. + * @param request StreamSqlDataRequest message or plain object + * @param callback Node-style callback called with the error, if any, and StreamSqlDataResponse + */ + public streamSqlData(request: google.cloud.sql.v1beta4.IStreamSqlDataRequest, callback: google.cloud.sql.v1beta4.SqlDataService.StreamSqlDataCallback): void; + + /** + * Calls StreamSqlData. + * @param request StreamSqlDataRequest message or plain object + * @returns Promise + */ + public streamSqlData(request: google.cloud.sql.v1beta4.IStreamSqlDataRequest): Promise; + } + + namespace SqlDataService { + + /** + * Callback as used by {@link google.cloud.sql.v1beta4.SqlDataService|streamSqlData}. + * @param error Error, if any + * @param [response] StreamSqlDataResponse + */ + type StreamSqlDataCallback = (error: (Error|null), response?: google.cloud.sql.v1beta4.StreamSqlDataResponse) => void; + } + + /** Properties of a StreamSqlDataRequest. */ + interface IStreamSqlDataRequest { + + /** StreamSqlDataRequest ack */ + ack?: (google.cloud.sql.v1beta4.IAck|null); + + /** StreamSqlDataRequest startSession */ + startSession?: (google.cloud.sql.v1beta4.IStartSession|null); + + /** StreamSqlDataRequest continueSession */ + continueSession?: (google.cloud.sql.v1beta4.IContinueSession|null); + + /** StreamSqlDataRequest data */ + data?: (google.cloud.sql.v1beta4.IDataPacket|null); + + /** StreamSqlDataRequest terminateSession */ + terminateSession?: (google.cloud.sql.v1beta4.ITerminateSession|null); + + /** StreamSqlDataRequest instanceId */ + instanceId?: (string|null); + } + + /** Represents a StreamSqlDataRequest. */ + class StreamSqlDataRequest implements IStreamSqlDataRequest { + + /** + * Constructs a new StreamSqlDataRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.sql.v1beta4.IStreamSqlDataRequest); + + /** StreamSqlDataRequest ack. */ + public ack?: (google.cloud.sql.v1beta4.IAck|null); + + /** StreamSqlDataRequest startSession. */ + public startSession?: (google.cloud.sql.v1beta4.IStartSession|null); + + /** StreamSqlDataRequest continueSession. */ + public continueSession?: (google.cloud.sql.v1beta4.IContinueSession|null); + + /** StreamSqlDataRequest data. */ + public data?: (google.cloud.sql.v1beta4.IDataPacket|null); + + /** StreamSqlDataRequest terminateSession. */ + public terminateSession?: (google.cloud.sql.v1beta4.ITerminateSession|null); + + /** StreamSqlDataRequest instanceId. */ + public instanceId: string; + + /** StreamSqlDataRequest message. */ + public message?: ("startSession"|"continueSession"|"data"|"terminateSession"); + + /** + * Creates a new StreamSqlDataRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns StreamSqlDataRequest instance + */ + public static create(properties?: google.cloud.sql.v1beta4.IStreamSqlDataRequest): google.cloud.sql.v1beta4.StreamSqlDataRequest; + + /** + * Encodes the specified StreamSqlDataRequest message. Does not implicitly {@link google.cloud.sql.v1beta4.StreamSqlDataRequest.verify|verify} messages. + * @param message StreamSqlDataRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.sql.v1beta4.IStreamSqlDataRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified StreamSqlDataRequest message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.StreamSqlDataRequest.verify|verify} messages. + * @param message StreamSqlDataRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.sql.v1beta4.IStreamSqlDataRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a StreamSqlDataRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns StreamSqlDataRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.sql.v1beta4.StreamSqlDataRequest; + + /** + * Decodes a StreamSqlDataRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns StreamSqlDataRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.sql.v1beta4.StreamSqlDataRequest; + + /** + * Verifies a StreamSqlDataRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a StreamSqlDataRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns StreamSqlDataRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.sql.v1beta4.StreamSqlDataRequest; + + /** + * Creates a plain object from a StreamSqlDataRequest message. Also converts values to other types if specified. + * @param message StreamSqlDataRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.sql.v1beta4.StreamSqlDataRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this StreamSqlDataRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for StreamSqlDataRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a StartSession. */ + interface IStartSession { + + /** StartSession locationId */ + locationId?: (string|null); + + /** StartSession instanceId */ + instanceId?: (string|null); + + /** StartSession sessionId */ + sessionId?: (string|null); + } + + /** Represents a StartSession. */ + class StartSession implements IStartSession { + + /** + * Constructs a new StartSession. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.sql.v1beta4.IStartSession); + + /** StartSession locationId. */ + public locationId: string; + + /** StartSession instanceId. */ + public instanceId: string; + + /** StartSession sessionId. */ + public sessionId: string; + + /** + * Creates a new StartSession instance using the specified properties. + * @param [properties] Properties to set + * @returns StartSession instance + */ + public static create(properties?: google.cloud.sql.v1beta4.IStartSession): google.cloud.sql.v1beta4.StartSession; + + /** + * Encodes the specified StartSession message. Does not implicitly {@link google.cloud.sql.v1beta4.StartSession.verify|verify} messages. + * @param message StartSession message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.sql.v1beta4.IStartSession, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified StartSession message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.StartSession.verify|verify} messages. + * @param message StartSession message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.sql.v1beta4.IStartSession, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a StartSession message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns StartSession + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.sql.v1beta4.StartSession; + + /** + * Decodes a StartSession message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns StartSession + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.sql.v1beta4.StartSession; + + /** + * Verifies a StartSession message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a StartSession message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns StartSession + */ + public static fromObject(object: { [k: string]: any }): google.cloud.sql.v1beta4.StartSession; + + /** + * Creates a plain object from a StartSession message. Also converts values to other types if specified. + * @param message StartSession + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.sql.v1beta4.StartSession, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this StartSession to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for StartSession + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a ContinueSession. */ + interface IContinueSession { + + /** ContinueSession locationId */ + locationId?: (string|null); + + /** ContinueSession instanceId */ + instanceId?: (string|null); + + /** ContinueSession sessionId */ + sessionId?: (string|null); + } + + /** Represents a ContinueSession. */ + class ContinueSession implements IContinueSession { + + /** + * Constructs a new ContinueSession. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.sql.v1beta4.IContinueSession); + + /** ContinueSession locationId. */ + public locationId: string; + + /** ContinueSession instanceId. */ + public instanceId: string; + + /** ContinueSession sessionId. */ + public sessionId: string; + + /** + * Creates a new ContinueSession instance using the specified properties. + * @param [properties] Properties to set + * @returns ContinueSession instance + */ + public static create(properties?: google.cloud.sql.v1beta4.IContinueSession): google.cloud.sql.v1beta4.ContinueSession; + + /** + * Encodes the specified ContinueSession message. Does not implicitly {@link google.cloud.sql.v1beta4.ContinueSession.verify|verify} messages. + * @param message ContinueSession message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.sql.v1beta4.IContinueSession, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ContinueSession message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.ContinueSession.verify|verify} messages. + * @param message ContinueSession message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.sql.v1beta4.IContinueSession, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ContinueSession message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ContinueSession + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.sql.v1beta4.ContinueSession; + + /** + * Decodes a ContinueSession message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ContinueSession + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.sql.v1beta4.ContinueSession; + + /** + * Verifies a ContinueSession message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ContinueSession message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ContinueSession + */ + public static fromObject(object: { [k: string]: any }): google.cloud.sql.v1beta4.ContinueSession; + + /** + * Creates a plain object from a ContinueSession message. Also converts values to other types if specified. + * @param message ContinueSession + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.sql.v1beta4.ContinueSession, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ContinueSession to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ContinueSession + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a StreamSqlDataResponse. */ + interface IStreamSqlDataResponse { + + /** StreamSqlDataResponse ack */ + ack?: (google.cloud.sql.v1beta4.IAck|null); + + /** StreamSqlDataResponse sessionMetadata */ + sessionMetadata?: (google.cloud.sql.v1beta4.ISessionMetadata|null); + + /** StreamSqlDataResponse data */ + data?: (google.cloud.sql.v1beta4.IDataPacket|null); + + /** StreamSqlDataResponse terminateSession */ + terminateSession?: (google.cloud.sql.v1beta4.ITerminateSession|null); + } + + /** Represents a StreamSqlDataResponse. */ + class StreamSqlDataResponse implements IStreamSqlDataResponse { + + /** + * Constructs a new StreamSqlDataResponse. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.sql.v1beta4.IStreamSqlDataResponse); + + /** StreamSqlDataResponse ack. */ + public ack?: (google.cloud.sql.v1beta4.IAck|null); + + /** StreamSqlDataResponse sessionMetadata. */ + public sessionMetadata?: (google.cloud.sql.v1beta4.ISessionMetadata|null); + + /** StreamSqlDataResponse data. */ + public data?: (google.cloud.sql.v1beta4.IDataPacket|null); + + /** StreamSqlDataResponse terminateSession. */ + public terminateSession?: (google.cloud.sql.v1beta4.ITerminateSession|null); + + /** StreamSqlDataResponse message. */ + public message?: ("sessionMetadata"|"data"|"terminateSession"); + + /** + * Creates a new StreamSqlDataResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns StreamSqlDataResponse instance + */ + public static create(properties?: google.cloud.sql.v1beta4.IStreamSqlDataResponse): google.cloud.sql.v1beta4.StreamSqlDataResponse; + + /** + * Encodes the specified StreamSqlDataResponse message. Does not implicitly {@link google.cloud.sql.v1beta4.StreamSqlDataResponse.verify|verify} messages. + * @param message StreamSqlDataResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.sql.v1beta4.IStreamSqlDataResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified StreamSqlDataResponse message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.StreamSqlDataResponse.verify|verify} messages. + * @param message StreamSqlDataResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.sql.v1beta4.IStreamSqlDataResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a StreamSqlDataResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns StreamSqlDataResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.sql.v1beta4.StreamSqlDataResponse; + + /** + * Decodes a StreamSqlDataResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns StreamSqlDataResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.sql.v1beta4.StreamSqlDataResponse; + + /** + * Verifies a StreamSqlDataResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a StreamSqlDataResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns StreamSqlDataResponse + */ + public static fromObject(object: { [k: string]: any }): google.cloud.sql.v1beta4.StreamSqlDataResponse; + + /** + * Creates a plain object from a StreamSqlDataResponse message. Also converts values to other types if specified. + * @param message StreamSqlDataResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.sql.v1beta4.StreamSqlDataResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this StreamSqlDataResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for StreamSqlDataResponse + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a SessionMetadata. */ + interface ISessionMetadata { + + /** SessionMetadata supportedFeatures */ + supportedFeatures?: (google.cloud.sql.v1beta4.SqlDataFeature[]|null); + } + + /** Represents a SessionMetadata. */ + class SessionMetadata implements ISessionMetadata { + + /** + * Constructs a new SessionMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.sql.v1beta4.ISessionMetadata); + + /** SessionMetadata supportedFeatures. */ + public supportedFeatures: google.cloud.sql.v1beta4.SqlDataFeature[]; + + /** + * Creates a new SessionMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns SessionMetadata instance + */ + public static create(properties?: google.cloud.sql.v1beta4.ISessionMetadata): google.cloud.sql.v1beta4.SessionMetadata; + + /** + * Encodes the specified SessionMetadata message. Does not implicitly {@link google.cloud.sql.v1beta4.SessionMetadata.verify|verify} messages. + * @param message SessionMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.sql.v1beta4.ISessionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SessionMetadata message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.SessionMetadata.verify|verify} messages. + * @param message SessionMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.sql.v1beta4.ISessionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SessionMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SessionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.sql.v1beta4.SessionMetadata; + + /** + * Decodes a SessionMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SessionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.sql.v1beta4.SessionMetadata; + + /** + * Verifies a SessionMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SessionMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SessionMetadata + */ + public static fromObject(object: { [k: string]: any }): google.cloud.sql.v1beta4.SessionMetadata; + + /** + * Creates a plain object from a SessionMetadata message. Also converts values to other types if specified. + * @param message SessionMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.sql.v1beta4.SessionMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SessionMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for SessionMetadata + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a DataPacket. */ + interface IDataPacket { + + /** DataPacket firstByteOffset */ + firstByteOffset?: (number|Long|string|null); + + /** DataPacket data */ + data?: (Uint8Array|Buffer|string|null); + } + + /** Represents a DataPacket. */ + class DataPacket implements IDataPacket { + + /** + * Constructs a new DataPacket. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.sql.v1beta4.IDataPacket); + + /** DataPacket firstByteOffset. */ + public firstByteOffset: (number|Long|string); + + /** DataPacket data. */ + public data: (Uint8Array|Buffer|string); + + /** + * Creates a new DataPacket instance using the specified properties. + * @param [properties] Properties to set + * @returns DataPacket instance + */ + public static create(properties?: google.cloud.sql.v1beta4.IDataPacket): google.cloud.sql.v1beta4.DataPacket; + + /** + * Encodes the specified DataPacket message. Does not implicitly {@link google.cloud.sql.v1beta4.DataPacket.verify|verify} messages. + * @param message DataPacket message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.sql.v1beta4.IDataPacket, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DataPacket message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.DataPacket.verify|verify} messages. + * @param message DataPacket message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.sql.v1beta4.IDataPacket, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DataPacket message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DataPacket + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.sql.v1beta4.DataPacket; + + /** + * Decodes a DataPacket message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DataPacket + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.sql.v1beta4.DataPacket; + + /** + * Verifies a DataPacket message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a DataPacket message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DataPacket + */ + public static fromObject(object: { [k: string]: any }): google.cloud.sql.v1beta4.DataPacket; + + /** + * Creates a plain object from a DataPacket message. Also converts values to other types if specified. + * @param message DataPacket + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.sql.v1beta4.DataPacket, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DataPacket to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for DataPacket + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of an Ack. */ + interface IAck { + + /** Ack receivedOffset */ + receivedOffset?: (number|Long|string|null); + } + + /** Represents an Ack. */ + class Ack implements IAck { + + /** + * Constructs a new Ack. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.sql.v1beta4.IAck); + + /** Ack receivedOffset. */ + public receivedOffset: (number|Long|string); + + /** + * Creates a new Ack instance using the specified properties. + * @param [properties] Properties to set + * @returns Ack instance + */ + public static create(properties?: google.cloud.sql.v1beta4.IAck): google.cloud.sql.v1beta4.Ack; + + /** + * Encodes the specified Ack message. Does not implicitly {@link google.cloud.sql.v1beta4.Ack.verify|verify} messages. + * @param message Ack message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.sql.v1beta4.IAck, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Ack message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.Ack.verify|verify} messages. + * @param message Ack message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.sql.v1beta4.IAck, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an Ack message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Ack + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.sql.v1beta4.Ack; + + /** + * Decodes an Ack message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Ack + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.sql.v1beta4.Ack; + + /** + * Verifies an Ack message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an Ack message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Ack + */ + public static fromObject(object: { [k: string]: any }): google.cloud.sql.v1beta4.Ack; + + /** + * Creates a plain object from an Ack message. Also converts values to other types if specified. + * @param message Ack + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.sql.v1beta4.Ack, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Ack to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Ack + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a TerminateSession. */ + interface ITerminateSession { + + /** TerminateSession status */ + status?: (google.rpc.IStatus|null); + } + + /** Represents a TerminateSession. */ + class TerminateSession implements ITerminateSession { + + /** + * Constructs a new TerminateSession. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.sql.v1beta4.ITerminateSession); + + /** TerminateSession status. */ + public status?: (google.rpc.IStatus|null); + + /** + * Creates a new TerminateSession instance using the specified properties. + * @param [properties] Properties to set + * @returns TerminateSession instance + */ + public static create(properties?: google.cloud.sql.v1beta4.ITerminateSession): google.cloud.sql.v1beta4.TerminateSession; + + /** + * Encodes the specified TerminateSession message. Does not implicitly {@link google.cloud.sql.v1beta4.TerminateSession.verify|verify} messages. + * @param message TerminateSession message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.sql.v1beta4.ITerminateSession, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified TerminateSession message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.TerminateSession.verify|verify} messages. + * @param message TerminateSession message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.sql.v1beta4.ITerminateSession, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a TerminateSession message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns TerminateSession + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.sql.v1beta4.TerminateSession; + + /** + * Decodes a TerminateSession message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns TerminateSession + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.sql.v1beta4.TerminateSession; + + /** + * Verifies a TerminateSession message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a TerminateSession message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns TerminateSession + */ + public static fromObject(object: { [k: string]: any }): google.cloud.sql.v1beta4.TerminateSession; + + /** + * Creates a plain object from a TerminateSession message. Also converts values to other types if specified. + * @param message TerminateSession + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.sql.v1beta4.TerminateSession, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this TerminateSession to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for TerminateSession + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** SqlDataFeature enum. */ + enum SqlDataFeature { + SQL_DATA_FEATURE_UNSPECIFIED = 0, + SQL_DATA_FEATURE_RECONNECT = 1 + } + /** Represents a SqlIamPoliciesService */ class SqlIamPoliciesService extends $protobuf.rpc.Service { @@ -54618,6 +55855,7 @@ export namespace google { CLOUD_IAM_GROUP = 3, CLOUD_IAM_GROUP_USER = 4, CLOUD_IAM_GROUP_SERVICE_ACCOUNT = 5, + CLOUD_IAM_WORKFORCE_IDENTITY = 6, ENTRAID_USER = 7 } @@ -55223,6 +56461,9 @@ export namespace google { /** CommonLanguageSettings destinations */ destinations?: (google.api.ClientLibraryDestination[]|null); + + /** CommonLanguageSettings selectiveGapicGeneration */ + selectiveGapicGeneration?: (google.api.ISelectiveGapicGeneration|null); } /** Represents a CommonLanguageSettings. */ @@ -55240,6 +56481,9 @@ export namespace google { /** CommonLanguageSettings destinations. */ public destinations: google.api.ClientLibraryDestination[]; + /** CommonLanguageSettings selectiveGapicGeneration. */ + public selectiveGapicGeneration?: (google.api.ISelectiveGapicGeneration|null); + /** * Creates a new CommonLanguageSettings instance using the specified properties. * @param [properties] Properties to set @@ -55940,6 +57184,9 @@ export namespace google { /** PythonSettings common */ common?: (google.api.ICommonLanguageSettings|null); + + /** PythonSettings experimentalFeatures */ + experimentalFeatures?: (google.api.PythonSettings.IExperimentalFeatures|null); } /** Represents a PythonSettings. */ @@ -55954,6 +57201,9 @@ export namespace google { /** PythonSettings common. */ public common?: (google.api.ICommonLanguageSettings|null); + /** PythonSettings experimentalFeatures. */ + public experimentalFeatures?: (google.api.PythonSettings.IExperimentalFeatures|null); + /** * Creates a new PythonSettings instance using the specified properties. * @param [properties] Properties to set @@ -56032,6 +57282,118 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + namespace PythonSettings { + + /** Properties of an ExperimentalFeatures. */ + interface IExperimentalFeatures { + + /** ExperimentalFeatures restAsyncIoEnabled */ + restAsyncIoEnabled?: (boolean|null); + + /** ExperimentalFeatures protobufPythonicTypesEnabled */ + protobufPythonicTypesEnabled?: (boolean|null); + + /** ExperimentalFeatures unversionedPackageDisabled */ + unversionedPackageDisabled?: (boolean|null); + } + + /** Represents an ExperimentalFeatures. */ + class ExperimentalFeatures implements IExperimentalFeatures { + + /** + * Constructs a new ExperimentalFeatures. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.PythonSettings.IExperimentalFeatures); + + /** ExperimentalFeatures restAsyncIoEnabled. */ + public restAsyncIoEnabled: boolean; + + /** ExperimentalFeatures protobufPythonicTypesEnabled. */ + public protobufPythonicTypesEnabled: boolean; + + /** ExperimentalFeatures unversionedPackageDisabled. */ + public unversionedPackageDisabled: boolean; + + /** + * Creates a new ExperimentalFeatures instance using the specified properties. + * @param [properties] Properties to set + * @returns ExperimentalFeatures instance + */ + public static create(properties?: google.api.PythonSettings.IExperimentalFeatures): google.api.PythonSettings.ExperimentalFeatures; + + /** + * Encodes the specified ExperimentalFeatures message. Does not implicitly {@link google.api.PythonSettings.ExperimentalFeatures.verify|verify} messages. + * @param message ExperimentalFeatures message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.api.PythonSettings.IExperimentalFeatures, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ExperimentalFeatures message, length delimited. Does not implicitly {@link google.api.PythonSettings.ExperimentalFeatures.verify|verify} messages. + * @param message ExperimentalFeatures message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.api.PythonSettings.IExperimentalFeatures, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an ExperimentalFeatures message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ExperimentalFeatures + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.PythonSettings.ExperimentalFeatures; + + /** + * Decodes an ExperimentalFeatures message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ExperimentalFeatures + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.PythonSettings.ExperimentalFeatures; + + /** + * Verifies an ExperimentalFeatures message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an ExperimentalFeatures message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ExperimentalFeatures + */ + public static fromObject(object: { [k: string]: any }): google.api.PythonSettings.ExperimentalFeatures; + + /** + * Creates a plain object from an ExperimentalFeatures message. Also converts values to other types if specified. + * @param message ExperimentalFeatures + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.PythonSettings.ExperimentalFeatures, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ExperimentalFeatures to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ExperimentalFeatures + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + } + /** Properties of a NodeSettings. */ interface INodeSettings { @@ -56358,6 +57720,9 @@ export namespace google { /** GoSettings common */ common?: (google.api.ICommonLanguageSettings|null); + + /** GoSettings renamedServices */ + renamedServices?: ({ [k: string]: string }|null); } /** Represents a GoSettings. */ @@ -56372,6 +57737,9 @@ export namespace google { /** GoSettings common. */ public common?: (google.api.ICommonLanguageSettings|null); + /** GoSettings renamedServices. */ + public renamedServices: { [k: string]: string }; + /** * Creates a new GoSettings instance using the specified properties. * @param [properties] Properties to set @@ -56696,6 +58064,109 @@ export namespace google { PACKAGE_MANAGER = 20 } + /** Properties of a SelectiveGapicGeneration. */ + interface ISelectiveGapicGeneration { + + /** SelectiveGapicGeneration methods */ + methods?: (string[]|null); + + /** SelectiveGapicGeneration generateOmittedAsInternal */ + generateOmittedAsInternal?: (boolean|null); + } + + /** Represents a SelectiveGapicGeneration. */ + class SelectiveGapicGeneration implements ISelectiveGapicGeneration { + + /** + * Constructs a new SelectiveGapicGeneration. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.ISelectiveGapicGeneration); + + /** SelectiveGapicGeneration methods. */ + public methods: string[]; + + /** SelectiveGapicGeneration generateOmittedAsInternal. */ + public generateOmittedAsInternal: boolean; + + /** + * Creates a new SelectiveGapicGeneration instance using the specified properties. + * @param [properties] Properties to set + * @returns SelectiveGapicGeneration instance + */ + public static create(properties?: google.api.ISelectiveGapicGeneration): google.api.SelectiveGapicGeneration; + + /** + * Encodes the specified SelectiveGapicGeneration message. Does not implicitly {@link google.api.SelectiveGapicGeneration.verify|verify} messages. + * @param message SelectiveGapicGeneration message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.api.ISelectiveGapicGeneration, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SelectiveGapicGeneration message, length delimited. Does not implicitly {@link google.api.SelectiveGapicGeneration.verify|verify} messages. + * @param message SelectiveGapicGeneration message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.api.ISelectiveGapicGeneration, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SelectiveGapicGeneration message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SelectiveGapicGeneration + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.SelectiveGapicGeneration; + + /** + * Decodes a SelectiveGapicGeneration message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SelectiveGapicGeneration + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.SelectiveGapicGeneration; + + /** + * Verifies a SelectiveGapicGeneration message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SelectiveGapicGeneration message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SelectiveGapicGeneration + */ + public static fromObject(object: { [k: string]: any }): google.api.SelectiveGapicGeneration; + + /** + * Creates a plain object from a SelectiveGapicGeneration message. Also converts values to other types if specified. + * @param message SelectiveGapicGeneration + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.SelectiveGapicGeneration, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SelectiveGapicGeneration to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for SelectiveGapicGeneration + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** LaunchStage enum. */ enum LaunchStage { LAUNCH_STAGE_UNSPECIFIED = 0, @@ -56978,6 +58449,9 @@ export namespace google { /** FieldInfo format */ format?: (google.api.FieldInfo.Format|keyof typeof google.api.FieldInfo.Format|null); + + /** FieldInfo referencedTypes */ + referencedTypes?: (google.api.ITypeReference[]|null); } /** Represents a FieldInfo. */ @@ -56992,6 +58466,9 @@ export namespace google { /** FieldInfo format. */ public format: (google.api.FieldInfo.Format|keyof typeof google.api.FieldInfo.Format); + /** FieldInfo referencedTypes. */ + public referencedTypes: google.api.ITypeReference[]; + /** * Creates a new FieldInfo instance using the specified properties. * @param [properties] Properties to set @@ -57081,6 +58558,103 @@ export namespace google { IPV4_OR_IPV6 = 4 } } + + /** Properties of a TypeReference. */ + interface ITypeReference { + + /** TypeReference typeName */ + typeName?: (string|null); + } + + /** Represents a TypeReference. */ + class TypeReference implements ITypeReference { + + /** + * Constructs a new TypeReference. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.ITypeReference); + + /** TypeReference typeName. */ + public typeName: string; + + /** + * Creates a new TypeReference instance using the specified properties. + * @param [properties] Properties to set + * @returns TypeReference instance + */ + public static create(properties?: google.api.ITypeReference): google.api.TypeReference; + + /** + * Encodes the specified TypeReference message. Does not implicitly {@link google.api.TypeReference.verify|verify} messages. + * @param message TypeReference message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.api.ITypeReference, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified TypeReference message, length delimited. Does not implicitly {@link google.api.TypeReference.verify|verify} messages. + * @param message TypeReference message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.api.ITypeReference, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a TypeReference message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns TypeReference + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.TypeReference; + + /** + * Decodes a TypeReference message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns TypeReference + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.TypeReference; + + /** + * Verifies a TypeReference message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a TypeReference message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns TypeReference + */ + public static fromObject(object: { [k: string]: any }): google.api.TypeReference; + + /** + * Creates a plain object from a TypeReference message. Also converts values to other types if specified. + * @param message TypeReference + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.TypeReference, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this TypeReference to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for TypeReference + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } } /** Namespace protobuf. */ @@ -57186,6 +58760,7 @@ export namespace google { /** Edition enum. */ enum Edition { EDITION_UNKNOWN = 0, + EDITION_LEGACY = 900, EDITION_PROTO2 = 998, EDITION_PROTO3 = 999, EDITION_2023 = 1000, @@ -57216,6 +58791,9 @@ export namespace google { /** FileDescriptorProto weakDependency */ weakDependency?: (number[]|null); + /** FileDescriptorProto optionDependency */ + optionDependency?: (string[]|null); + /** FileDescriptorProto messageType */ messageType?: (google.protobuf.IDescriptorProto[]|null); @@ -57265,6 +58843,9 @@ export namespace google { /** FileDescriptorProto weakDependency. */ public weakDependency: number[]; + /** FileDescriptorProto optionDependency. */ + public optionDependency: string[]; + /** FileDescriptorProto messageType. */ public messageType: google.protobuf.IDescriptorProto[]; @@ -57399,6 +58980,9 @@ export namespace google { /** DescriptorProto reservedName */ reservedName?: (string[]|null); + + /** DescriptorProto visibility */ + visibility?: (google.protobuf.SymbolVisibility|keyof typeof google.protobuf.SymbolVisibility|null); } /** Represents a DescriptorProto. */ @@ -57440,6 +59024,9 @@ export namespace google { /** DescriptorProto reservedName. */ public reservedName: string[]; + /** DescriptorProto visibility. */ + public visibility: (google.protobuf.SymbolVisibility|keyof typeof google.protobuf.SymbolVisibility); + /** * Creates a new DescriptorProto instance using the specified properties. * @param [properties] Properties to set @@ -58287,6 +59874,9 @@ export namespace google { /** EnumDescriptorProto reservedName */ reservedName?: (string[]|null); + + /** EnumDescriptorProto visibility */ + visibility?: (google.protobuf.SymbolVisibility|keyof typeof google.protobuf.SymbolVisibility|null); } /** Represents an EnumDescriptorProto. */ @@ -58313,6 +59903,9 @@ export namespace google { /** EnumDescriptorProto reservedName. */ public reservedName: string[]; + /** EnumDescriptorProto visibility. */ + public visibility: (google.protobuf.SymbolVisibility|keyof typeof google.protobuf.SymbolVisibility); + /** * Creates a new EnumDescriptorProto instance using the specified properties. * @param [properties] Properties to set @@ -59247,6 +60840,9 @@ export namespace google { /** FieldOptions features */ features?: (google.protobuf.IFeatureSet|null); + /** FieldOptions featureSupport */ + featureSupport?: (google.protobuf.FieldOptions.IFeatureSupport|null); + /** FieldOptions uninterpretedOption */ uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); @@ -59305,6 +60901,9 @@ export namespace google { /** FieldOptions features. */ public features?: (google.protobuf.IFeatureSet|null); + /** FieldOptions featureSupport. */ + public featureSupport?: (google.protobuf.FieldOptions.IFeatureSupport|null); + /** FieldOptions uninterpretedOption. */ public uninterpretedOption: google.protobuf.IUninterpretedOption[]; @@ -59525,6 +61124,121 @@ export namespace google { */ public static getTypeUrl(typeUrlPrefix?: string): string; } + + /** Properties of a FeatureSupport. */ + interface IFeatureSupport { + + /** FeatureSupport editionIntroduced */ + editionIntroduced?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null); + + /** FeatureSupport editionDeprecated */ + editionDeprecated?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null); + + /** FeatureSupport deprecationWarning */ + deprecationWarning?: (string|null); + + /** FeatureSupport editionRemoved */ + editionRemoved?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null); + } + + /** Represents a FeatureSupport. */ + class FeatureSupport implements IFeatureSupport { + + /** + * Constructs a new FeatureSupport. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.FieldOptions.IFeatureSupport); + + /** FeatureSupport editionIntroduced. */ + public editionIntroduced: (google.protobuf.Edition|keyof typeof google.protobuf.Edition); + + /** FeatureSupport editionDeprecated. */ + public editionDeprecated: (google.protobuf.Edition|keyof typeof google.protobuf.Edition); + + /** FeatureSupport deprecationWarning. */ + public deprecationWarning: string; + + /** FeatureSupport editionRemoved. */ + public editionRemoved: (google.protobuf.Edition|keyof typeof google.protobuf.Edition); + + /** + * Creates a new FeatureSupport instance using the specified properties. + * @param [properties] Properties to set + * @returns FeatureSupport instance + */ + public static create(properties?: google.protobuf.FieldOptions.IFeatureSupport): google.protobuf.FieldOptions.FeatureSupport; + + /** + * Encodes the specified FeatureSupport message. Does not implicitly {@link google.protobuf.FieldOptions.FeatureSupport.verify|verify} messages. + * @param message FeatureSupport message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.FieldOptions.IFeatureSupport, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified FeatureSupport message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.FeatureSupport.verify|verify} messages. + * @param message FeatureSupport message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.FieldOptions.IFeatureSupport, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a FeatureSupport message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FeatureSupport + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldOptions.FeatureSupport; + + /** + * Decodes a FeatureSupport message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FeatureSupport + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldOptions.FeatureSupport; + + /** + * Verifies a FeatureSupport message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a FeatureSupport message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FeatureSupport + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.FieldOptions.FeatureSupport; + + /** + * Creates a plain object from a FeatureSupport message. Also converts values to other types if specified. + * @param message FeatureSupport + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.FieldOptions.FeatureSupport, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this FeatureSupport to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for FeatureSupport + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } } /** Properties of an OneofOptions. */ @@ -59763,6 +61477,9 @@ export namespace google { /** EnumValueOptions debugRedact */ debugRedact?: (boolean|null); + /** EnumValueOptions featureSupport */ + featureSupport?: (google.protobuf.FieldOptions.IFeatureSupport|null); + /** EnumValueOptions uninterpretedOption */ uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); } @@ -59785,6 +61502,9 @@ export namespace google { /** EnumValueOptions debugRedact. */ public debugRedact: boolean; + /** EnumValueOptions featureSupport. */ + public featureSupport?: (google.protobuf.FieldOptions.IFeatureSupport|null); + /** EnumValueOptions uninterpretedOption. */ public uninterpretedOption: google.protobuf.IUninterpretedOption[]; @@ -60374,6 +62094,12 @@ export namespace google { /** FeatureSet jsonFormat */ jsonFormat?: (google.protobuf.FeatureSet.JsonFormat|keyof typeof google.protobuf.FeatureSet.JsonFormat|null); + + /** FeatureSet enforceNamingStyle */ + enforceNamingStyle?: (google.protobuf.FeatureSet.EnforceNamingStyle|keyof typeof google.protobuf.FeatureSet.EnforceNamingStyle|null); + + /** FeatureSet defaultSymbolVisibility */ + defaultSymbolVisibility?: (google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility|keyof typeof google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility|null); } /** Represents a FeatureSet. */ @@ -60403,6 +62129,12 @@ export namespace google { /** FeatureSet jsonFormat. */ public jsonFormat: (google.protobuf.FeatureSet.JsonFormat|keyof typeof google.protobuf.FeatureSet.JsonFormat); + /** FeatureSet enforceNamingStyle. */ + public enforceNamingStyle: (google.protobuf.FeatureSet.EnforceNamingStyle|keyof typeof google.protobuf.FeatureSet.EnforceNamingStyle); + + /** FeatureSet defaultSymbolVisibility. */ + public defaultSymbolVisibility: (google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility|keyof typeof google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility); + /** * Creates a new FeatureSet instance using the specified properties. * @param [properties] Properties to set @@ -60525,6 +62257,116 @@ export namespace google { ALLOW = 1, LEGACY_BEST_EFFORT = 2 } + + /** EnforceNamingStyle enum. */ + enum EnforceNamingStyle { + ENFORCE_NAMING_STYLE_UNKNOWN = 0, + STYLE2024 = 1, + STYLE_LEGACY = 2 + } + + /** Properties of a VisibilityFeature. */ + interface IVisibilityFeature { + } + + /** Represents a VisibilityFeature. */ + class VisibilityFeature implements IVisibilityFeature { + + /** + * Constructs a new VisibilityFeature. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.FeatureSet.IVisibilityFeature); + + /** + * Creates a new VisibilityFeature instance using the specified properties. + * @param [properties] Properties to set + * @returns VisibilityFeature instance + */ + public static create(properties?: google.protobuf.FeatureSet.IVisibilityFeature): google.protobuf.FeatureSet.VisibilityFeature; + + /** + * Encodes the specified VisibilityFeature message. Does not implicitly {@link google.protobuf.FeatureSet.VisibilityFeature.verify|verify} messages. + * @param message VisibilityFeature message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.FeatureSet.IVisibilityFeature, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified VisibilityFeature message, length delimited. Does not implicitly {@link google.protobuf.FeatureSet.VisibilityFeature.verify|verify} messages. + * @param message VisibilityFeature message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.FeatureSet.IVisibilityFeature, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a VisibilityFeature message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns VisibilityFeature + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FeatureSet.VisibilityFeature; + + /** + * Decodes a VisibilityFeature message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns VisibilityFeature + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FeatureSet.VisibilityFeature; + + /** + * Verifies a VisibilityFeature message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a VisibilityFeature message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns VisibilityFeature + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.FeatureSet.VisibilityFeature; + + /** + * Creates a plain object from a VisibilityFeature message. Also converts values to other types if specified. + * @param message VisibilityFeature + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.FeatureSet.VisibilityFeature, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this VisibilityFeature to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for VisibilityFeature + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace VisibilityFeature { + + /** DefaultSymbolVisibility enum. */ + enum DefaultSymbolVisibility { + DEFAULT_SYMBOL_VISIBILITY_UNKNOWN = 0, + EXPORT_ALL = 1, + EXPORT_TOP_LEVEL = 2, + LOCAL_ALL = 3, + STRICT = 4 + } + } } /** Properties of a FeatureSetDefaults. */ @@ -60644,8 +62486,11 @@ export namespace google { /** FeatureSetEditionDefault edition */ edition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null); - /** FeatureSetEditionDefault features */ - features?: (google.protobuf.IFeatureSet|null); + /** FeatureSetEditionDefault overridableFeatures */ + overridableFeatures?: (google.protobuf.IFeatureSet|null); + + /** FeatureSetEditionDefault fixedFeatures */ + fixedFeatures?: (google.protobuf.IFeatureSet|null); } /** Represents a FeatureSetEditionDefault. */ @@ -60660,8 +62505,11 @@ export namespace google { /** FeatureSetEditionDefault edition. */ public edition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition); - /** FeatureSetEditionDefault features. */ - public features?: (google.protobuf.IFeatureSet|null); + /** FeatureSetEditionDefault overridableFeatures. */ + public overridableFeatures?: (google.protobuf.IFeatureSet|null); + + /** FeatureSetEditionDefault fixedFeatures. */ + public fixedFeatures?: (google.protobuf.IFeatureSet|null); /** * Creates a new FeatureSetEditionDefault instance using the specified properties. @@ -61194,6 +63042,13 @@ export namespace google { } } + /** SymbolVisibility enum. */ + enum SymbolVisibility { + VISIBILITY_UNSET = 0, + VISIBILITY_LOCAL = 1, + VISIBILITY_EXPORT = 2 + } + /** Properties of a Duration. */ interface IDuration { diff --git a/packages/google-cloud-sql/protos/protos.js b/packages/google-cloud-sql/protos/protos.js index e2514df6638..06ae630a0bd 100644 --- a/packages/google-cloud-sql/protos/protos.js +++ b/packages/google-cloud-sql/protos/protos.js @@ -28,7 +28,7 @@ var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util; // Exported root namespace - var $root = $protobuf.roots._google_cloud_sql_protos || ($protobuf.roots._google_cloud_sql_protos = {}); + var $root = $protobuf.roots["_google_cloud_sql_protos"] || ($protobuf.roots["_google_cloud_sql_protos"] = {}); $root.google = (function() { @@ -153,7 +153,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupRunsService.prototype["delete"] = function delete_(request, callback) { - return this.rpcCall(delete_, $root.google.cloud.sql.v1.SqlBackupRunsDeleteRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, delete_, $root.google.cloud.sql.v1.SqlBackupRunsDeleteRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Delete" }); /** @@ -186,7 +186,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupRunsService.prototype.get = function get(request, callback) { - return this.rpcCall(get, $root.google.cloud.sql.v1.SqlBackupRunsGetRequest, $root.google.cloud.sql.v1.BackupRun, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, get, $root.google.cloud.sql.v1.SqlBackupRunsGetRequest, $root.google.cloud.sql.v1.BackupRun, request, callback); }, "name", { value: "Get" }); /** @@ -219,7 +219,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupRunsService.prototype.insert = function insert(request, callback) { - return this.rpcCall(insert, $root.google.cloud.sql.v1.SqlBackupRunsInsertRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, insert, $root.google.cloud.sql.v1.SqlBackupRunsInsertRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Insert" }); /** @@ -252,7 +252,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupRunsService.prototype.list = function list(request, callback) { - return this.rpcCall(list, $root.google.cloud.sql.v1.SqlBackupRunsListRequest, $root.google.cloud.sql.v1.BackupRunsListResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, list, $root.google.cloud.sql.v1.SqlBackupRunsListRequest, $root.google.cloud.sql.v1.BackupRunsListResponse, request, callback); }, "name", { value: "List" }); /** @@ -290,7 +290,7 @@ function SqlBackupRunsDeleteRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -339,9 +339,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlBackupRunsDeleteRequest.encode = function encode(message, writer) { + SqlBackupRunsDeleteRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.id != null && Object.hasOwnProperty.call(message, "id")) writer.uint32(/* id 1, wireType 0 =*/8).int64(message.id); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) @@ -361,7 +365,7 @@ * @returns {$protobuf.Writer} Writer */ SqlBackupRunsDeleteRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -375,9 +379,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlBackupRunsDeleteRequest.decode = function decode(reader, length, error) { + SqlBackupRunsDeleteRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlBackupRunsDeleteRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -397,7 +405,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -428,16 +436,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlBackupRunsDeleteRequest.verify = function verify(message) { + SqlBackupRunsDeleteRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.id != null && message.hasOwnProperty("id")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.id != null && Object.hasOwnProperty.call(message, "id")) if (!$util.isInteger(message.id) && !(message.id && $util.isInteger(message.id.low) && $util.isInteger(message.id.high))) return "id: integer|Long expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -451,13 +463,19 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlBackupRunsDeleteRequest} SqlBackupRunsDeleteRequest */ - SqlBackupRunsDeleteRequest.fromObject = function fromObject(object) { + SqlBackupRunsDeleteRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlBackupRunsDeleteRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlBackupRunsDeleteRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlBackupRunsDeleteRequest(); if (object.id != null) if ($util.Long) - (message.id = $util.Long.fromValue(object.id)).unsigned = false; + message.id = $util.Long.fromValue(object.id, false); else if (typeof object.id === "string") message.id = parseInt(object.id, 10); else if (typeof object.id === "number") @@ -480,27 +498,33 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlBackupRunsDeleteRequest.toObject = function toObject(message, options) { + SqlBackupRunsDeleteRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { if ($util.Long) { var long = new $util.Long(0, 0, false); - object.id = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.id = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.id = options.longs === String ? "0" : 0; + object.id = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.instance = ""; object.project = ""; } - if (message.id != null && message.hasOwnProperty("id")) - if (typeof message.id === "number") + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.id = typeof message.id === "number" ? BigInt(message.id) : $util.Long.fromBits(message.id.low >>> 0, message.id.high >>> 0, false).toBigInt(); + else if (typeof message.id === "number") object.id = options.longs === String ? String(message.id) : message.id; else object.id = options.longs === String ? $util.Long.prototype.toString.call(message.id) : options.longs === Number ? new $util.LongBits(message.id.low >>> 0, message.id.high >>> 0).toNumber() : message.id; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -556,7 +580,7 @@ function SqlBackupRunsGetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -605,9 +629,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlBackupRunsGetRequest.encode = function encode(message, writer) { + SqlBackupRunsGetRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.id != null && Object.hasOwnProperty.call(message, "id")) writer.uint32(/* id 1, wireType 0 =*/8).int64(message.id); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) @@ -627,7 +655,7 @@ * @returns {$protobuf.Writer} Writer */ SqlBackupRunsGetRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -641,9 +669,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlBackupRunsGetRequest.decode = function decode(reader, length, error) { + SqlBackupRunsGetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlBackupRunsGetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -663,7 +695,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -694,16 +726,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlBackupRunsGetRequest.verify = function verify(message) { + SqlBackupRunsGetRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.id != null && message.hasOwnProperty("id")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.id != null && Object.hasOwnProperty.call(message, "id")) if (!$util.isInteger(message.id) && !(message.id && $util.isInteger(message.id.low) && $util.isInteger(message.id.high))) return "id: integer|Long expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -717,13 +753,19 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlBackupRunsGetRequest} SqlBackupRunsGetRequest */ - SqlBackupRunsGetRequest.fromObject = function fromObject(object) { + SqlBackupRunsGetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlBackupRunsGetRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlBackupRunsGetRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlBackupRunsGetRequest(); if (object.id != null) if ($util.Long) - (message.id = $util.Long.fromValue(object.id)).unsigned = false; + message.id = $util.Long.fromValue(object.id, false); else if (typeof object.id === "string") message.id = parseInt(object.id, 10); else if (typeof object.id === "number") @@ -746,27 +788,33 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlBackupRunsGetRequest.toObject = function toObject(message, options) { + SqlBackupRunsGetRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { if ($util.Long) { var long = new $util.Long(0, 0, false); - object.id = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.id = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.id = options.longs === String ? "0" : 0; + object.id = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.instance = ""; object.project = ""; } - if (message.id != null && message.hasOwnProperty("id")) - if (typeof message.id === "number") + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.id = typeof message.id === "number" ? BigInt(message.id) : $util.Long.fromBits(message.id.low >>> 0, message.id.high >>> 0, false).toBigInt(); + else if (typeof message.id === "number") object.id = options.longs === String ? String(message.id) : message.id; else object.id = options.longs === String ? $util.Long.prototype.toString.call(message.id) : options.longs === Number ? new $util.LongBits(message.id.low >>> 0, message.id.high >>> 0).toNumber() : message.id; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -822,7 +870,7 @@ function SqlBackupRunsInsertRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -871,15 +919,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlBackupRunsInsertRequest.encode = function encode(message, writer) { + SqlBackupRunsInsertRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.BackupRun.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.BackupRun.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -893,7 +945,7 @@ * @returns {$protobuf.Writer} Writer */ SqlBackupRunsInsertRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -907,9 +959,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlBackupRunsInsertRequest.decode = function decode(reader, length, error) { + SqlBackupRunsInsertRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlBackupRunsInsertRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -925,11 +981,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.BackupRun.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.BackupRun.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -960,17 +1016,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlBackupRunsInsertRequest.verify = function verify(message) { + SqlBackupRunsInsertRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.BackupRun.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.BackupRun.verify(message.body, long + 1); if (error) return "body." + error; } @@ -985,18 +1045,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlBackupRunsInsertRequest} SqlBackupRunsInsertRequest */ - SqlBackupRunsInsertRequest.fromObject = function fromObject(object) { + SqlBackupRunsInsertRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlBackupRunsInsertRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlBackupRunsInsertRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlBackupRunsInsertRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlBackupRunsInsertRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.BackupRun.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.BackupRun.fromObject(object.body, long + 1); } return message; }; @@ -1010,21 +1076,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlBackupRunsInsertRequest.toObject = function toObject(message, options) { + SqlBackupRunsInsertRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.BackupRun.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.BackupRun.toObject(message.body, options, q + 1); return object; }; @@ -1080,7 +1150,7 @@ function SqlBackupRunsListRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -1137,9 +1207,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlBackupRunsListRequest.encode = function encode(message, writer) { + SqlBackupRunsListRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) @@ -1161,7 +1235,7 @@ * @returns {$protobuf.Writer} Writer */ SqlBackupRunsListRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -1175,9 +1249,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlBackupRunsListRequest.decode = function decode(reader, length, error) { + SqlBackupRunsListRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlBackupRunsListRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -1201,7 +1279,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1232,19 +1310,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlBackupRunsListRequest.verify = function verify(message) { + SqlBackupRunsListRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.maxResults != null && message.hasOwnProperty("maxResults")) + if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) if (!$util.isInteger(message.maxResults)) return "maxResults: integer expected"; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) if (!$util.isString(message.pageToken)) return "pageToken: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -1258,9 +1340,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlBackupRunsListRequest} SqlBackupRunsListRequest */ - SqlBackupRunsListRequest.fromObject = function fromObject(object) { + SqlBackupRunsListRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlBackupRunsListRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlBackupRunsListRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlBackupRunsListRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -1282,9 +1370,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlBackupRunsListRequest.toObject = function toObject(message, options) { + SqlBackupRunsListRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; @@ -1292,13 +1384,13 @@ object.pageToken = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.maxResults != null && message.hasOwnProperty("maxResults")) + if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) object.maxResults = message.maxResults; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) object.pageToken = message.pageToken; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -1370,7 +1462,7 @@ function BackupRun(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -1556,29 +1648,33 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BackupRun.encode = function encode(message, writer) { + BackupRun.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.status != null && Object.hasOwnProperty.call(message, "status")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.status); if (message.enqueuedTime != null && Object.hasOwnProperty.call(message, "enqueuedTime")) - $root.google.protobuf.Timestamp.encode(message.enqueuedTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.enqueuedTime, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.id != null && Object.hasOwnProperty.call(message, "id")) writer.uint32(/* id 4, wireType 0 =*/32).int64(message.id); if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) - $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) - $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.error != null && Object.hasOwnProperty.call(message, "error")) - $root.google.cloud.sql.v1.OperationError.encode(message.error, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.cloud.sql.v1.OperationError.encode(message.error, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.type != null && Object.hasOwnProperty.call(message, "type")) writer.uint32(/* id 8, wireType 0 =*/64).int32(message.type); if (message.description != null && Object.hasOwnProperty.call(message, "description")) writer.uint32(/* id 9, wireType 2 =*/74).string(message.description); if (message.windowStartTime != null && Object.hasOwnProperty.call(message, "windowStartTime")) - $root.google.protobuf.Timestamp.encode(message.windowStartTime, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.windowStartTime, writer.uint32(/* id 10, wireType 2 =*/82).fork(), q + 1).ldelim(); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 11, wireType 2 =*/90).string(message.instance); if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) @@ -1588,9 +1684,9 @@ if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) writer.uint32(/* id 15, wireType 0 =*/120).int32(message.databaseVersion); if (message.diskEncryptionConfiguration != null && Object.hasOwnProperty.call(message, "diskEncryptionConfiguration")) - $root.google.cloud.sql.v1.DiskEncryptionConfiguration.encode(message.diskEncryptionConfiguration, writer.uint32(/* id 16, wireType 2 =*/130).fork()).ldelim(); + $root.google.cloud.sql.v1.DiskEncryptionConfiguration.encode(message.diskEncryptionConfiguration, writer.uint32(/* id 16, wireType 2 =*/130).fork(), q + 1).ldelim(); if (message.diskEncryptionStatus != null && Object.hasOwnProperty.call(message, "diskEncryptionStatus")) - $root.google.cloud.sql.v1.DiskEncryptionStatus.encode(message.diskEncryptionStatus, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); + $root.google.cloud.sql.v1.DiskEncryptionStatus.encode(message.diskEncryptionStatus, writer.uint32(/* id 17, wireType 2 =*/138).fork(), q + 1).ldelim(); if (message.backupKind != null && Object.hasOwnProperty.call(message, "backupKind")) writer.uint32(/* id 19, wireType 0 =*/152).int32(message.backupKind); if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) @@ -1610,7 +1706,7 @@ * @returns {$protobuf.Writer} Writer */ BackupRun.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -1624,9 +1720,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BackupRun.decode = function decode(reader, length, error) { + BackupRun.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.BackupRun(); while (reader.pos < end) { var tag = reader.uint32(); @@ -1642,7 +1742,7 @@ break; } case 3: { - message.enqueuedTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.enqueuedTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { @@ -1650,15 +1750,15 @@ break; } case 5: { - message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { - message.error = $root.google.cloud.sql.v1.OperationError.decode(reader, reader.uint32()); + message.error = $root.google.cloud.sql.v1.OperationError.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { @@ -1670,7 +1770,7 @@ break; } case 10: { - message.windowStartTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.windowStartTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { @@ -1690,11 +1790,11 @@ break; } case 16: { - message.diskEncryptionConfiguration = $root.google.cloud.sql.v1.DiskEncryptionConfiguration.decode(reader, reader.uint32()); + message.diskEncryptionConfiguration = $root.google.cloud.sql.v1.DiskEncryptionConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 17: { - message.diskEncryptionStatus = $root.google.cloud.sql.v1.DiskEncryptionStatus.decode(reader, reader.uint32()); + message.diskEncryptionStatus = $root.google.cloud.sql.v1.DiskEncryptionStatus.decode(reader, reader.uint32(), undefined, long + 1); break; } case 19: { @@ -1710,7 +1810,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1741,14 +1841,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BackupRun.verify = function verify(message) { + BackupRun.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.status != null && message.hasOwnProperty("status")) + if (message.status != null && Object.hasOwnProperty.call(message, "status")) switch (message.status) { default: return "status: enum value expected"; @@ -1764,30 +1868,30 @@ case 9: break; } - if (message.enqueuedTime != null && message.hasOwnProperty("enqueuedTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.enqueuedTime); + if (message.enqueuedTime != null && Object.hasOwnProperty.call(message, "enqueuedTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.enqueuedTime, long + 1); if (error) return "enqueuedTime." + error; } - if (message.id != null && message.hasOwnProperty("id")) + if (message.id != null && Object.hasOwnProperty.call(message, "id")) if (!$util.isInteger(message.id) && !(message.id && $util.isInteger(message.id.low) && $util.isInteger(message.id.high))) return "id: integer|Long expected"; - if (message.startTime != null && message.hasOwnProperty("startTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.startTime); + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.startTime, long + 1); if (error) return "startTime." + error; } - if (message.endTime != null && message.hasOwnProperty("endTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.endTime); + if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.endTime, long + 1); if (error) return "endTime." + error; } - if (message.error != null && message.hasOwnProperty("error")) { - var error = $root.google.cloud.sql.v1.OperationError.verify(message.error); + if (message.error != null && Object.hasOwnProperty.call(message, "error")) { + var error = $root.google.cloud.sql.v1.OperationError.verify(message.error, long + 1); if (error) return "error." + error; } - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) switch (message.type) { default: return "type: enum value expected"; @@ -1796,24 +1900,24 @@ case 2: break; } - if (message.description != null && message.hasOwnProperty("description")) + if (message.description != null && Object.hasOwnProperty.call(message, "description")) if (!$util.isString(message.description)) return "description: string expected"; - if (message.windowStartTime != null && message.hasOwnProperty("windowStartTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.windowStartTime); + if (message.windowStartTime != null && Object.hasOwnProperty.call(message, "windowStartTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.windowStartTime, long + 1); if (error) return "windowStartTime." + error; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) if (!$util.isString(message.selfLink)) return "selfLink: string expected"; - if (message.location != null && message.hasOwnProperty("location")) + if (message.location != null && Object.hasOwnProperty.call(message, "location")) if (!$util.isString(message.location)) return "location: string expected"; - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) switch (message.databaseVersion) { default: return "databaseVersion: enum value expected"; @@ -1860,6 +1964,7 @@ case 272: case 408: case 557: + case 684: case 26: case 27: case 28: @@ -1868,19 +1973,22 @@ case 200: case 201: case 202: + case 549: + case 550: + case 551: break; } - if (message.diskEncryptionConfiguration != null && message.hasOwnProperty("diskEncryptionConfiguration")) { - var error = $root.google.cloud.sql.v1.DiskEncryptionConfiguration.verify(message.diskEncryptionConfiguration); + if (message.diskEncryptionConfiguration != null && Object.hasOwnProperty.call(message, "diskEncryptionConfiguration")) { + var error = $root.google.cloud.sql.v1.DiskEncryptionConfiguration.verify(message.diskEncryptionConfiguration, long + 1); if (error) return "diskEncryptionConfiguration." + error; } - if (message.diskEncryptionStatus != null && message.hasOwnProperty("diskEncryptionStatus")) { - var error = $root.google.cloud.sql.v1.DiskEncryptionStatus.verify(message.diskEncryptionStatus); + if (message.diskEncryptionStatus != null && Object.hasOwnProperty.call(message, "diskEncryptionStatus")) { + var error = $root.google.cloud.sql.v1.DiskEncryptionStatus.verify(message.diskEncryptionStatus, long + 1); if (error) return "diskEncryptionStatus." + error; } - if (message.backupKind != null && message.hasOwnProperty("backupKind")) + if (message.backupKind != null && Object.hasOwnProperty.call(message, "backupKind")) switch (message.backupKind) { default: return "backupKind: enum value expected"; @@ -1889,10 +1997,10 @@ case 2: break; } - if (message.timeZone != null && message.hasOwnProperty("timeZone")) + if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) if (!$util.isString(message.timeZone)) return "timeZone: string expected"; - if (message.maxChargeableBytes != null && message.hasOwnProperty("maxChargeableBytes")) { + if (message.maxChargeableBytes != null && Object.hasOwnProperty.call(message, "maxChargeableBytes")) { properties._maxChargeableBytes = 1; if (!$util.isInteger(message.maxChargeableBytes) && !(message.maxChargeableBytes && $util.isInteger(message.maxChargeableBytes.low) && $util.isInteger(message.maxChargeableBytes.high))) return "maxChargeableBytes: integer|Long expected"; @@ -1908,9 +2016,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.BackupRun} BackupRun */ - BackupRun.fromObject = function fromObject(object) { + BackupRun.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.BackupRun) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.BackupRun: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.BackupRun(); if (object.kind != null) message.kind = String(object.kind); @@ -1963,13 +2077,13 @@ break; } if (object.enqueuedTime != null) { - if (typeof object.enqueuedTime !== "object") + if (!$util.isObject(object.enqueuedTime)) throw TypeError(".google.cloud.sql.v1.BackupRun.enqueuedTime: object expected"); - message.enqueuedTime = $root.google.protobuf.Timestamp.fromObject(object.enqueuedTime); + message.enqueuedTime = $root.google.protobuf.Timestamp.fromObject(object.enqueuedTime, long + 1); } if (object.id != null) if ($util.Long) - (message.id = $util.Long.fromValue(object.id)).unsigned = false; + message.id = $util.Long.fromValue(object.id, false); else if (typeof object.id === "string") message.id = parseInt(object.id, 10); else if (typeof object.id === "number") @@ -1977,19 +2091,19 @@ else if (typeof object.id === "object") message.id = new $util.LongBits(object.id.low >>> 0, object.id.high >>> 0).toNumber(); if (object.startTime != null) { - if (typeof object.startTime !== "object") + if (!$util.isObject(object.startTime)) throw TypeError(".google.cloud.sql.v1.BackupRun.startTime: object expected"); - message.startTime = $root.google.protobuf.Timestamp.fromObject(object.startTime); + message.startTime = $root.google.protobuf.Timestamp.fromObject(object.startTime, long + 1); } if (object.endTime != null) { - if (typeof object.endTime !== "object") + if (!$util.isObject(object.endTime)) throw TypeError(".google.cloud.sql.v1.BackupRun.endTime: object expected"); - message.endTime = $root.google.protobuf.Timestamp.fromObject(object.endTime); + message.endTime = $root.google.protobuf.Timestamp.fromObject(object.endTime, long + 1); } if (object.error != null) { - if (typeof object.error !== "object") + if (!$util.isObject(object.error)) throw TypeError(".google.cloud.sql.v1.BackupRun.error: object expected"); - message.error = $root.google.cloud.sql.v1.OperationError.fromObject(object.error); + message.error = $root.google.cloud.sql.v1.OperationError.fromObject(object.error, long + 1); } switch (object.type) { default: @@ -2014,9 +2128,9 @@ if (object.description != null) message.description = String(object.description); if (object.windowStartTime != null) { - if (typeof object.windowStartTime !== "object") + if (!$util.isObject(object.windowStartTime)) throw TypeError(".google.cloud.sql.v1.BackupRun.windowStartTime: object expected"); - message.windowStartTime = $root.google.protobuf.Timestamp.fromObject(object.windowStartTime); + message.windowStartTime = $root.google.protobuf.Timestamp.fromObject(object.windowStartTime, long + 1); } if (object.instance != null) message.instance = String(object.instance); @@ -2203,6 +2317,10 @@ case 557: message.databaseVersion = 557; break; + case "POSTGRES_19": + case 684: + message.databaseVersion = 684; + break; case "SQLSERVER_2019_STANDARD": case 26: message.databaseVersion = 26; @@ -2235,16 +2353,28 @@ case 202: message.databaseVersion = 202; break; + case "SQLSERVER_2025_STANDARD": + case 549: + message.databaseVersion = 549; + break; + case "SQLSERVER_2025_ENTERPRISE": + case 550: + message.databaseVersion = 550; + break; + case "SQLSERVER_2025_EXPRESS": + case 551: + message.databaseVersion = 551; + break; } if (object.diskEncryptionConfiguration != null) { - if (typeof object.diskEncryptionConfiguration !== "object") + if (!$util.isObject(object.diskEncryptionConfiguration)) throw TypeError(".google.cloud.sql.v1.BackupRun.diskEncryptionConfiguration: object expected"); - message.diskEncryptionConfiguration = $root.google.cloud.sql.v1.DiskEncryptionConfiguration.fromObject(object.diskEncryptionConfiguration); + message.diskEncryptionConfiguration = $root.google.cloud.sql.v1.DiskEncryptionConfiguration.fromObject(object.diskEncryptionConfiguration, long + 1); } if (object.diskEncryptionStatus != null) { - if (typeof object.diskEncryptionStatus !== "object") + if (!$util.isObject(object.diskEncryptionStatus)) throw TypeError(".google.cloud.sql.v1.BackupRun.diskEncryptionStatus: object expected"); - message.diskEncryptionStatus = $root.google.cloud.sql.v1.DiskEncryptionStatus.fromObject(object.diskEncryptionStatus); + message.diskEncryptionStatus = $root.google.cloud.sql.v1.DiskEncryptionStatus.fromObject(object.diskEncryptionStatus, long + 1); } switch (object.backupKind) { default: @@ -2270,7 +2400,7 @@ message.timeZone = String(object.timeZone); if (object.maxChargeableBytes != null) if ($util.Long) - (message.maxChargeableBytes = $util.Long.fromValue(object.maxChargeableBytes)).unsigned = false; + message.maxChargeableBytes = $util.Long.fromValue(object.maxChargeableBytes, false); else if (typeof object.maxChargeableBytes === "string") message.maxChargeableBytes = parseInt(object.maxChargeableBytes, 10); else if (typeof object.maxChargeableBytes === "number") @@ -2289,9 +2419,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BackupRun.toObject = function toObject(message, options) { + BackupRun.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -2299,9 +2433,9 @@ object.enqueuedTime = null; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.id = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.id = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.id = options.longs === String ? "0" : 0; + object.id = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.startTime = null; object.endTime = null; object.error = null; @@ -2317,47 +2451,51 @@ object.backupKind = options.enums === String ? "SQL_BACKUP_KIND_UNSPECIFIED" : 0; object.timeZone = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.status != null && message.hasOwnProperty("status")) + if (message.status != null && Object.hasOwnProperty.call(message, "status")) object.status = options.enums === String ? $root.google.cloud.sql.v1.SqlBackupRunStatus[message.status] === undefined ? message.status : $root.google.cloud.sql.v1.SqlBackupRunStatus[message.status] : message.status; - if (message.enqueuedTime != null && message.hasOwnProperty("enqueuedTime")) - object.enqueuedTime = $root.google.protobuf.Timestamp.toObject(message.enqueuedTime, options); - if (message.id != null && message.hasOwnProperty("id")) - if (typeof message.id === "number") + if (message.enqueuedTime != null && Object.hasOwnProperty.call(message, "enqueuedTime")) + object.enqueuedTime = $root.google.protobuf.Timestamp.toObject(message.enqueuedTime, options, q + 1); + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.id = typeof message.id === "number" ? BigInt(message.id) : $util.Long.fromBits(message.id.low >>> 0, message.id.high >>> 0, false).toBigInt(); + else if (typeof message.id === "number") object.id = options.longs === String ? String(message.id) : message.id; else object.id = options.longs === String ? $util.Long.prototype.toString.call(message.id) : options.longs === Number ? new $util.LongBits(message.id.low >>> 0, message.id.high >>> 0).toNumber() : message.id; - if (message.startTime != null && message.hasOwnProperty("startTime")) - object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options); - if (message.endTime != null && message.hasOwnProperty("endTime")) - object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options); - if (message.error != null && message.hasOwnProperty("error")) - object.error = $root.google.cloud.sql.v1.OperationError.toObject(message.error, options); - if (message.type != null && message.hasOwnProperty("type")) + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) + object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options, q + 1); + if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) + object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options, q + 1); + if (message.error != null && Object.hasOwnProperty.call(message, "error")) + object.error = $root.google.cloud.sql.v1.OperationError.toObject(message.error, options, q + 1); + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = options.enums === String ? $root.google.cloud.sql.v1.SqlBackupRunType[message.type] === undefined ? message.type : $root.google.cloud.sql.v1.SqlBackupRunType[message.type] : message.type; - if (message.description != null && message.hasOwnProperty("description")) + if (message.description != null && Object.hasOwnProperty.call(message, "description")) object.description = message.description; - if (message.windowStartTime != null && message.hasOwnProperty("windowStartTime")) - object.windowStartTime = $root.google.protobuf.Timestamp.toObject(message.windowStartTime, options); - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.windowStartTime != null && Object.hasOwnProperty.call(message, "windowStartTime")) + object.windowStartTime = $root.google.protobuf.Timestamp.toObject(message.windowStartTime, options, q + 1); + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) object.selfLink = message.selfLink; - if (message.location != null && message.hasOwnProperty("location")) + if (message.location != null && Object.hasOwnProperty.call(message, "location")) object.location = message.location; - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) object.databaseVersion = options.enums === String ? $root.google.cloud.sql.v1.SqlDatabaseVersion[message.databaseVersion] === undefined ? message.databaseVersion : $root.google.cloud.sql.v1.SqlDatabaseVersion[message.databaseVersion] : message.databaseVersion; - if (message.diskEncryptionConfiguration != null && message.hasOwnProperty("diskEncryptionConfiguration")) - object.diskEncryptionConfiguration = $root.google.cloud.sql.v1.DiskEncryptionConfiguration.toObject(message.diskEncryptionConfiguration, options); - if (message.diskEncryptionStatus != null && message.hasOwnProperty("diskEncryptionStatus")) - object.diskEncryptionStatus = $root.google.cloud.sql.v1.DiskEncryptionStatus.toObject(message.diskEncryptionStatus, options); - if (message.backupKind != null && message.hasOwnProperty("backupKind")) + if (message.diskEncryptionConfiguration != null && Object.hasOwnProperty.call(message, "diskEncryptionConfiguration")) + object.diskEncryptionConfiguration = $root.google.cloud.sql.v1.DiskEncryptionConfiguration.toObject(message.diskEncryptionConfiguration, options, q + 1); + if (message.diskEncryptionStatus != null && Object.hasOwnProperty.call(message, "diskEncryptionStatus")) + object.diskEncryptionStatus = $root.google.cloud.sql.v1.DiskEncryptionStatus.toObject(message.diskEncryptionStatus, options, q + 1); + if (message.backupKind != null && Object.hasOwnProperty.call(message, "backupKind")) object.backupKind = options.enums === String ? $root.google.cloud.sql.v1.SqlBackupKind[message.backupKind] === undefined ? message.backupKind : $root.google.cloud.sql.v1.SqlBackupKind[message.backupKind] : message.backupKind; - if (message.timeZone != null && message.hasOwnProperty("timeZone")) + if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) object.timeZone = message.timeZone; - if (message.maxChargeableBytes != null && message.hasOwnProperty("maxChargeableBytes")) { - if (typeof message.maxChargeableBytes === "number") + if (message.maxChargeableBytes != null && Object.hasOwnProperty.call(message, "maxChargeableBytes")) { + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.maxChargeableBytes = typeof message.maxChargeableBytes === "number" ? BigInt(message.maxChargeableBytes) : $util.Long.fromBits(message.maxChargeableBytes.low >>> 0, message.maxChargeableBytes.high >>> 0, false).toBigInt(); + else if (typeof message.maxChargeableBytes === "number") object.maxChargeableBytes = options.longs === String ? String(message.maxChargeableBytes) : message.maxChargeableBytes; else object.maxChargeableBytes = options.longs === String ? $util.Long.prototype.toString.call(message.maxChargeableBytes) : options.longs === Number ? new $util.LongBits(message.maxChargeableBytes.low >>> 0, message.maxChargeableBytes.high >>> 0).toNumber() : message.maxChargeableBytes; @@ -2419,7 +2557,7 @@ this.items = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -2468,14 +2606,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BackupRunsListResponse.encode = function encode(message, writer) { + BackupRunsListResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.items != null && message.items.length) for (var i = 0; i < message.items.length; ++i) - $root.google.cloud.sql.v1.BackupRun.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.BackupRun.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.nextPageToken); return writer; @@ -2491,7 +2633,7 @@ * @returns {$protobuf.Writer} Writer */ BackupRunsListResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -2505,9 +2647,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BackupRunsListResponse.decode = function decode(reader, length, error) { + BackupRunsListResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.BackupRunsListResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -2521,7 +2667,7 @@ case 2: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.sql.v1.BackupRun.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.sql.v1.BackupRun.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { @@ -2529,7 +2675,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -2560,22 +2706,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BackupRunsListResponse.verify = function verify(message) { + BackupRunsListResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.items != null && message.hasOwnProperty("items")) { + if (message.items != null && Object.hasOwnProperty.call(message, "items")) { if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.sql.v1.BackupRun.verify(message.items[i]); + var error = $root.google.cloud.sql.v1.BackupRun.verify(message.items[i], long + 1); if (error) return "items." + error; } } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) if (!$util.isString(message.nextPageToken)) return "nextPageToken: string expected"; return null; @@ -2589,9 +2739,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.BackupRunsListResponse} BackupRunsListResponse */ - BackupRunsListResponse.fromObject = function fromObject(object) { + BackupRunsListResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.BackupRunsListResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.BackupRunsListResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.BackupRunsListResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -2600,9 +2756,9 @@ throw TypeError(".google.cloud.sql.v1.BackupRunsListResponse.items: array expected"); message.items = []; for (var i = 0; i < object.items.length; ++i) { - if (typeof object.items[i] !== "object") + if (!$util.isObject(object.items[i])) throw TypeError(".google.cloud.sql.v1.BackupRunsListResponse.items: object expected"); - message.items[i] = $root.google.cloud.sql.v1.BackupRun.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.sql.v1.BackupRun.fromObject(object.items[i], long + 1); } } if (object.nextPageToken != null) @@ -2619,9 +2775,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BackupRunsListResponse.toObject = function toObject(message, options) { + BackupRunsListResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.items = []; @@ -2629,14 +2789,14 @@ object.kind = ""; object.nextPageToken = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.items && message.items.length) { object.items = []; for (var j = 0; j < message.items.length; ++j) - object.items[j] = $root.google.cloud.sql.v1.BackupRun.toObject(message.items[j], options); + object.items[j] = $root.google.cloud.sql.v1.BackupRun.toObject(message.items[j], options, q + 1); } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) object.nextPageToken = message.nextPageToken; return object; }; @@ -2755,7 +2915,7 @@ function AclEntry(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -2812,13 +2972,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - AclEntry.encode = function encode(message, writer) { + AclEntry.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.value != null && Object.hasOwnProperty.call(message, "value")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.value); if (message.expirationTime != null && Object.hasOwnProperty.call(message, "expirationTime")) - $root.google.protobuf.Timestamp.encode(message.expirationTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.expirationTime, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.name); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -2836,7 +3000,7 @@ * @returns {$protobuf.Writer} Writer */ AclEntry.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -2850,9 +3014,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AclEntry.decode = function decode(reader, length, error) { + AclEntry.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.AclEntry(); while (reader.pos < end) { var tag = reader.uint32(); @@ -2864,7 +3032,7 @@ break; } case 2: { - message.expirationTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.expirationTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -2876,7 +3044,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -2907,21 +3075,25 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - AclEntry.verify = function verify(message) { + AclEntry.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!$util.isString(message.value)) return "value: string expected"; - if (message.expirationTime != null && message.hasOwnProperty("expirationTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.expirationTime); + if (message.expirationTime != null && Object.hasOwnProperty.call(message, "expirationTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.expirationTime, long + 1); if (error) return "expirationTime." + error; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -2935,16 +3107,22 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.AclEntry} AclEntry */ - AclEntry.fromObject = function fromObject(object) { + AclEntry.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.AclEntry) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.AclEntry: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.AclEntry(); if (object.value != null) message.value = String(object.value); if (object.expirationTime != null) { - if (typeof object.expirationTime !== "object") + if (!$util.isObject(object.expirationTime)) throw TypeError(".google.cloud.sql.v1.AclEntry.expirationTime: object expected"); - message.expirationTime = $root.google.protobuf.Timestamp.fromObject(object.expirationTime); + message.expirationTime = $root.google.protobuf.Timestamp.fromObject(object.expirationTime, long + 1); } if (object.name != null) message.name = String(object.name); @@ -2962,9 +3140,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - AclEntry.toObject = function toObject(message, options) { + AclEntry.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.value = ""; @@ -2972,13 +3154,13 @@ object.name = ""; object.kind = ""; } - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = message.value; - if (message.expirationTime != null && message.hasOwnProperty("expirationTime")) - object.expirationTime = $root.google.protobuf.Timestamp.toObject(message.expirationTime, options); - if (message.name != null && message.hasOwnProperty("name")) + if (message.expirationTime != null && Object.hasOwnProperty.call(message, "expirationTime")) + object.expirationTime = $root.google.protobuf.Timestamp.toObject(message.expirationTime, options, q + 1); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -3034,7 +3216,7 @@ function ApiWarning(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -3083,9 +3265,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ApiWarning.encode = function encode(message, writer) { + ApiWarning.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.code != null && Object.hasOwnProperty.call(message, "code")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.code); if (message.message != null && Object.hasOwnProperty.call(message, "message")) @@ -3105,7 +3291,7 @@ * @returns {$protobuf.Writer} Writer */ ApiWarning.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -3119,9 +3305,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ApiWarning.decode = function decode(reader, length, error) { + ApiWarning.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ApiWarning(); while (reader.pos < end) { var tag = reader.uint32(); @@ -3141,7 +3331,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -3172,10 +3362,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ApiWarning.verify = function verify(message) { + ApiWarning.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.code != null && message.hasOwnProperty("code")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.code != null && Object.hasOwnProperty.call(message, "code")) switch (message.code) { default: return "code: enum value expected"; @@ -3186,10 +3380,10 @@ case 4: break; } - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) if (!$util.isString(message.message)) return "message: string expected"; - if (message.region != null && message.hasOwnProperty("region")) + if (message.region != null && Object.hasOwnProperty.call(message, "region")) if (!$util.isString(message.region)) return "region: string expected"; return null; @@ -3203,9 +3397,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ApiWarning} ApiWarning */ - ApiWarning.fromObject = function fromObject(object) { + ApiWarning.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ApiWarning) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ApiWarning: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ApiWarning(); switch (object.code) { default: @@ -3251,20 +3451,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ApiWarning.toObject = function toObject(message, options) { + ApiWarning.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.code = options.enums === String ? "SQL_API_WARNING_CODE_UNSPECIFIED" : 0; object.message = ""; object.region = ""; } - if (message.code != null && message.hasOwnProperty("code")) + if (message.code != null && Object.hasOwnProperty.call(message, "code")) object.code = options.enums === String ? $root.google.cloud.sql.v1.ApiWarning.SqlApiWarningCode[message.code] === undefined ? message.code : $root.google.cloud.sql.v1.ApiWarning.SqlApiWarningCode[message.code] : message.code; - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) object.message = message.message; - if (message.region != null && message.hasOwnProperty("region")) + if (message.region != null && Object.hasOwnProperty.call(message, "region")) object.region = message.region; return object; }; @@ -3339,7 +3543,7 @@ function BackupRetentionSettings(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -3380,13 +3584,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BackupRetentionSettings.encode = function encode(message, writer) { + BackupRetentionSettings.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.retentionUnit != null && Object.hasOwnProperty.call(message, "retentionUnit")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.retentionUnit); if (message.retainedBackups != null && Object.hasOwnProperty.call(message, "retainedBackups")) - $root.google.protobuf.Int32Value.encode(message.retainedBackups, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.retainedBackups, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -3400,7 +3608,7 @@ * @returns {$protobuf.Writer} Writer */ BackupRetentionSettings.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -3414,9 +3622,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BackupRetentionSettings.decode = function decode(reader, length, error) { + BackupRetentionSettings.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.BackupRetentionSettings(); while (reader.pos < end) { var tag = reader.uint32(); @@ -3428,11 +3640,11 @@ break; } case 2: { - message.retainedBackups = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.retainedBackups = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -3463,10 +3675,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BackupRetentionSettings.verify = function verify(message) { + BackupRetentionSettings.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.retentionUnit != null && message.hasOwnProperty("retentionUnit")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.retentionUnit != null && Object.hasOwnProperty.call(message, "retentionUnit")) switch (message.retentionUnit) { default: return "retentionUnit: enum value expected"; @@ -3474,8 +3690,8 @@ case 1: break; } - if (message.retainedBackups != null && message.hasOwnProperty("retainedBackups")) { - var error = $root.google.protobuf.Int32Value.verify(message.retainedBackups); + if (message.retainedBackups != null && Object.hasOwnProperty.call(message, "retainedBackups")) { + var error = $root.google.protobuf.Int32Value.verify(message.retainedBackups, long + 1); if (error) return "retainedBackups." + error; } @@ -3490,9 +3706,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.BackupRetentionSettings} BackupRetentionSettings */ - BackupRetentionSettings.fromObject = function fromObject(object) { + BackupRetentionSettings.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.BackupRetentionSettings) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.BackupRetentionSettings: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.BackupRetentionSettings(); switch (object.retentionUnit) { default: @@ -3511,9 +3733,9 @@ break; } if (object.retainedBackups != null) { - if (typeof object.retainedBackups !== "object") + if (!$util.isObject(object.retainedBackups)) throw TypeError(".google.cloud.sql.v1.BackupRetentionSettings.retainedBackups: object expected"); - message.retainedBackups = $root.google.protobuf.Int32Value.fromObject(object.retainedBackups); + message.retainedBackups = $root.google.protobuf.Int32Value.fromObject(object.retainedBackups, long + 1); } return message; }; @@ -3527,18 +3749,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BackupRetentionSettings.toObject = function toObject(message, options) { + BackupRetentionSettings.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.retentionUnit = options.enums === String ? "RETENTION_UNIT_UNSPECIFIED" : 0; object.retainedBackups = null; } - if (message.retentionUnit != null && message.hasOwnProperty("retentionUnit")) + if (message.retentionUnit != null && Object.hasOwnProperty.call(message, "retentionUnit")) object.retentionUnit = options.enums === String ? $root.google.cloud.sql.v1.BackupRetentionSettings.RetentionUnit[message.retentionUnit] === undefined ? message.retentionUnit : $root.google.cloud.sql.v1.BackupRetentionSettings.RetentionUnit[message.retentionUnit] : message.retentionUnit; - if (message.retainedBackups != null && message.hasOwnProperty("retainedBackups")) - object.retainedBackups = $root.google.protobuf.Int32Value.toObject(message.retainedBackups, options); + if (message.retainedBackups != null && Object.hasOwnProperty.call(message, "retainedBackups")) + object.retainedBackups = $root.google.protobuf.Int32Value.toObject(message.retainedBackups, options, q + 1); return object; }; @@ -3615,7 +3841,7 @@ function BackupConfiguration(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -3743,27 +3969,31 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BackupConfiguration.encode = function encode(message, writer) { + BackupConfiguration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.startTime); if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) - $root.google.protobuf.BoolValue.encode(message.enabled, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.enabled, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.kind); if (message.binaryLogEnabled != null && Object.hasOwnProperty.call(message, "binaryLogEnabled")) - $root.google.protobuf.BoolValue.encode(message.binaryLogEnabled, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.binaryLogEnabled, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.replicationLogArchivingEnabled != null && Object.hasOwnProperty.call(message, "replicationLogArchivingEnabled")) - $root.google.protobuf.BoolValue.encode(message.replicationLogArchivingEnabled, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.replicationLogArchivingEnabled, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.location != null && Object.hasOwnProperty.call(message, "location")) writer.uint32(/* id 6, wireType 2 =*/50).string(message.location); if (message.pointInTimeRecoveryEnabled != null && Object.hasOwnProperty.call(message, "pointInTimeRecoveryEnabled")) - $root.google.protobuf.BoolValue.encode(message.pointInTimeRecoveryEnabled, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.pointInTimeRecoveryEnabled, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.backupRetentionSettings != null && Object.hasOwnProperty.call(message, "backupRetentionSettings")) - $root.google.cloud.sql.v1.BackupRetentionSettings.encode(message.backupRetentionSettings, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.cloud.sql.v1.BackupRetentionSettings.encode(message.backupRetentionSettings, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); if (message.transactionLogRetentionDays != null && Object.hasOwnProperty.call(message, "transactionLogRetentionDays")) - $root.google.protobuf.Int32Value.encode(message.transactionLogRetentionDays, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.transactionLogRetentionDays, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); if (message.transactionalLogStorageState != null && Object.hasOwnProperty.call(message, "transactionalLogStorageState")) writer.uint32(/* id 10, wireType 0 =*/80).int32(message.transactionalLogStorageState); if (message.backupTier != null && Object.hasOwnProperty.call(message, "backupTier")) @@ -3781,7 +4011,7 @@ * @returns {$protobuf.Writer} Writer */ BackupConfiguration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -3795,9 +4025,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BackupConfiguration.decode = function decode(reader, length, error) { + BackupConfiguration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.BackupConfiguration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -3809,7 +4043,7 @@ break; } case 2: { - message.enabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.enabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -3817,11 +4051,11 @@ break; } case 4: { - message.binaryLogEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.binaryLogEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.replicationLogArchivingEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.replicationLogArchivingEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { @@ -3829,15 +4063,15 @@ break; } case 7: { - message.pointInTimeRecoveryEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.pointInTimeRecoveryEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.backupRetentionSettings = $root.google.cloud.sql.v1.BackupRetentionSettings.decode(reader, reader.uint32()); + message.backupRetentionSettings = $root.google.cloud.sql.v1.BackupRetentionSettings.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { - message.transactionLogRetentionDays = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.transactionLogRetentionDays = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { @@ -3849,7 +4083,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -3880,50 +4114,54 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BackupConfiguration.verify = function verify(message) { + BackupConfiguration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.startTime != null && message.hasOwnProperty("startTime")) + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) if (!$util.isString(message.startTime)) return "startTime: string expected"; - if (message.enabled != null && message.hasOwnProperty("enabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.enabled); + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.enabled, long + 1); if (error) return "enabled." + error; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.binaryLogEnabled != null && message.hasOwnProperty("binaryLogEnabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.binaryLogEnabled); + if (message.binaryLogEnabled != null && Object.hasOwnProperty.call(message, "binaryLogEnabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.binaryLogEnabled, long + 1); if (error) return "binaryLogEnabled." + error; } - if (message.replicationLogArchivingEnabled != null && message.hasOwnProperty("replicationLogArchivingEnabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.replicationLogArchivingEnabled); + if (message.replicationLogArchivingEnabled != null && Object.hasOwnProperty.call(message, "replicationLogArchivingEnabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.replicationLogArchivingEnabled, long + 1); if (error) return "replicationLogArchivingEnabled." + error; } - if (message.location != null && message.hasOwnProperty("location")) + if (message.location != null && Object.hasOwnProperty.call(message, "location")) if (!$util.isString(message.location)) return "location: string expected"; - if (message.pointInTimeRecoveryEnabled != null && message.hasOwnProperty("pointInTimeRecoveryEnabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.pointInTimeRecoveryEnabled); + if (message.pointInTimeRecoveryEnabled != null && Object.hasOwnProperty.call(message, "pointInTimeRecoveryEnabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.pointInTimeRecoveryEnabled, long + 1); if (error) return "pointInTimeRecoveryEnabled." + error; } - if (message.backupRetentionSettings != null && message.hasOwnProperty("backupRetentionSettings")) { - var error = $root.google.cloud.sql.v1.BackupRetentionSettings.verify(message.backupRetentionSettings); + if (message.backupRetentionSettings != null && Object.hasOwnProperty.call(message, "backupRetentionSettings")) { + var error = $root.google.cloud.sql.v1.BackupRetentionSettings.verify(message.backupRetentionSettings, long + 1); if (error) return "backupRetentionSettings." + error; } - if (message.transactionLogRetentionDays != null && message.hasOwnProperty("transactionLogRetentionDays")) { - var error = $root.google.protobuf.Int32Value.verify(message.transactionLogRetentionDays); + if (message.transactionLogRetentionDays != null && Object.hasOwnProperty.call(message, "transactionLogRetentionDays")) { + var error = $root.google.protobuf.Int32Value.verify(message.transactionLogRetentionDays, long + 1); if (error) return "transactionLogRetentionDays." + error; } - if (message.transactionalLogStorageState != null && message.hasOwnProperty("transactionalLogStorageState")) { + if (message.transactionalLogStorageState != null && Object.hasOwnProperty.call(message, "transactionalLogStorageState")) { properties._transactionalLogStorageState = 1; switch (message.transactionalLogStorageState) { default: @@ -3936,7 +4174,7 @@ break; } } - if (message.backupTier != null && message.hasOwnProperty("backupTier")) { + if (message.backupTier != null && Object.hasOwnProperty.call(message, "backupTier")) { properties._backupTier = 1; switch (message.backupTier) { default: @@ -3959,45 +4197,51 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.BackupConfiguration} BackupConfiguration */ - BackupConfiguration.fromObject = function fromObject(object) { + BackupConfiguration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.BackupConfiguration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.BackupConfiguration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.BackupConfiguration(); if (object.startTime != null) message.startTime = String(object.startTime); if (object.enabled != null) { - if (typeof object.enabled !== "object") + if (!$util.isObject(object.enabled)) throw TypeError(".google.cloud.sql.v1.BackupConfiguration.enabled: object expected"); - message.enabled = $root.google.protobuf.BoolValue.fromObject(object.enabled); + message.enabled = $root.google.protobuf.BoolValue.fromObject(object.enabled, long + 1); } if (object.kind != null) message.kind = String(object.kind); if (object.binaryLogEnabled != null) { - if (typeof object.binaryLogEnabled !== "object") + if (!$util.isObject(object.binaryLogEnabled)) throw TypeError(".google.cloud.sql.v1.BackupConfiguration.binaryLogEnabled: object expected"); - message.binaryLogEnabled = $root.google.protobuf.BoolValue.fromObject(object.binaryLogEnabled); + message.binaryLogEnabled = $root.google.protobuf.BoolValue.fromObject(object.binaryLogEnabled, long + 1); } if (object.replicationLogArchivingEnabled != null) { - if (typeof object.replicationLogArchivingEnabled !== "object") + if (!$util.isObject(object.replicationLogArchivingEnabled)) throw TypeError(".google.cloud.sql.v1.BackupConfiguration.replicationLogArchivingEnabled: object expected"); - message.replicationLogArchivingEnabled = $root.google.protobuf.BoolValue.fromObject(object.replicationLogArchivingEnabled); + message.replicationLogArchivingEnabled = $root.google.protobuf.BoolValue.fromObject(object.replicationLogArchivingEnabled, long + 1); } if (object.location != null) message.location = String(object.location); if (object.pointInTimeRecoveryEnabled != null) { - if (typeof object.pointInTimeRecoveryEnabled !== "object") + if (!$util.isObject(object.pointInTimeRecoveryEnabled)) throw TypeError(".google.cloud.sql.v1.BackupConfiguration.pointInTimeRecoveryEnabled: object expected"); - message.pointInTimeRecoveryEnabled = $root.google.protobuf.BoolValue.fromObject(object.pointInTimeRecoveryEnabled); + message.pointInTimeRecoveryEnabled = $root.google.protobuf.BoolValue.fromObject(object.pointInTimeRecoveryEnabled, long + 1); } if (object.backupRetentionSettings != null) { - if (typeof object.backupRetentionSettings !== "object") + if (!$util.isObject(object.backupRetentionSettings)) throw TypeError(".google.cloud.sql.v1.BackupConfiguration.backupRetentionSettings: object expected"); - message.backupRetentionSettings = $root.google.cloud.sql.v1.BackupRetentionSettings.fromObject(object.backupRetentionSettings); + message.backupRetentionSettings = $root.google.cloud.sql.v1.BackupRetentionSettings.fromObject(object.backupRetentionSettings, long + 1); } if (object.transactionLogRetentionDays != null) { - if (typeof object.transactionLogRetentionDays !== "object") + if (!$util.isObject(object.transactionLogRetentionDays)) throw TypeError(".google.cloud.sql.v1.BackupConfiguration.transactionLogRetentionDays: object expected"); - message.transactionLogRetentionDays = $root.google.protobuf.Int32Value.fromObject(object.transactionLogRetentionDays); + message.transactionLogRetentionDays = $root.google.protobuf.Int32Value.fromObject(object.transactionLogRetentionDays, long + 1); } switch (object.transactionalLogStorageState) { default: @@ -4063,9 +4307,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BackupConfiguration.toObject = function toObject(message, options) { + BackupConfiguration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.startTime = ""; @@ -4078,30 +4326,30 @@ object.backupRetentionSettings = null; object.transactionLogRetentionDays = null; } - if (message.startTime != null && message.hasOwnProperty("startTime")) + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) object.startTime = message.startTime; - if (message.enabled != null && message.hasOwnProperty("enabled")) - object.enabled = $root.google.protobuf.BoolValue.toObject(message.enabled, options); - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) + object.enabled = $root.google.protobuf.BoolValue.toObject(message.enabled, options, q + 1); + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.binaryLogEnabled != null && message.hasOwnProperty("binaryLogEnabled")) - object.binaryLogEnabled = $root.google.protobuf.BoolValue.toObject(message.binaryLogEnabled, options); - if (message.replicationLogArchivingEnabled != null && message.hasOwnProperty("replicationLogArchivingEnabled")) - object.replicationLogArchivingEnabled = $root.google.protobuf.BoolValue.toObject(message.replicationLogArchivingEnabled, options); - if (message.location != null && message.hasOwnProperty("location")) + if (message.binaryLogEnabled != null && Object.hasOwnProperty.call(message, "binaryLogEnabled")) + object.binaryLogEnabled = $root.google.protobuf.BoolValue.toObject(message.binaryLogEnabled, options, q + 1); + if (message.replicationLogArchivingEnabled != null && Object.hasOwnProperty.call(message, "replicationLogArchivingEnabled")) + object.replicationLogArchivingEnabled = $root.google.protobuf.BoolValue.toObject(message.replicationLogArchivingEnabled, options, q + 1); + if (message.location != null && Object.hasOwnProperty.call(message, "location")) object.location = message.location; - if (message.pointInTimeRecoveryEnabled != null && message.hasOwnProperty("pointInTimeRecoveryEnabled")) - object.pointInTimeRecoveryEnabled = $root.google.protobuf.BoolValue.toObject(message.pointInTimeRecoveryEnabled, options); - if (message.backupRetentionSettings != null && message.hasOwnProperty("backupRetentionSettings")) - object.backupRetentionSettings = $root.google.cloud.sql.v1.BackupRetentionSettings.toObject(message.backupRetentionSettings, options); - if (message.transactionLogRetentionDays != null && message.hasOwnProperty("transactionLogRetentionDays")) - object.transactionLogRetentionDays = $root.google.protobuf.Int32Value.toObject(message.transactionLogRetentionDays, options); - if (message.transactionalLogStorageState != null && message.hasOwnProperty("transactionalLogStorageState")) { + if (message.pointInTimeRecoveryEnabled != null && Object.hasOwnProperty.call(message, "pointInTimeRecoveryEnabled")) + object.pointInTimeRecoveryEnabled = $root.google.protobuf.BoolValue.toObject(message.pointInTimeRecoveryEnabled, options, q + 1); + if (message.backupRetentionSettings != null && Object.hasOwnProperty.call(message, "backupRetentionSettings")) + object.backupRetentionSettings = $root.google.cloud.sql.v1.BackupRetentionSettings.toObject(message.backupRetentionSettings, options, q + 1); + if (message.transactionLogRetentionDays != null && Object.hasOwnProperty.call(message, "transactionLogRetentionDays")) + object.transactionLogRetentionDays = $root.google.protobuf.Int32Value.toObject(message.transactionLogRetentionDays, options, q + 1); + if (message.transactionalLogStorageState != null && Object.hasOwnProperty.call(message, "transactionalLogStorageState")) { object.transactionalLogStorageState = options.enums === String ? $root.google.cloud.sql.v1.BackupConfiguration.TransactionalLogStorageState[message.transactionalLogStorageState] === undefined ? message.transactionalLogStorageState : $root.google.cloud.sql.v1.BackupConfiguration.TransactionalLogStorageState[message.transactionalLogStorageState] : message.transactionalLogStorageState; if (options.oneofs) object._transactionalLogStorageState = "transactionalLogStorageState"; } - if (message.backupTier != null && message.hasOwnProperty("backupTier")) { + if (message.backupTier != null && Object.hasOwnProperty.call(message, "backupTier")) { object.backupTier = options.enums === String ? $root.google.cloud.sql.v1.BackupConfiguration.BackupTier[message.backupTier] === undefined ? message.backupTier : $root.google.cloud.sql.v1.BackupConfiguration.BackupTier[message.backupTier] : message.backupTier; if (options.oneofs) object._backupTier = "backupTier"; @@ -4196,7 +4444,7 @@ function PerformDiskShrinkContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -4229,9 +4477,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PerformDiskShrinkContext.encode = function encode(message, writer) { + PerformDiskShrinkContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.targetSizeGb != null && Object.hasOwnProperty.call(message, "targetSizeGb")) writer.uint32(/* id 1, wireType 0 =*/8).int64(message.targetSizeGb); return writer; @@ -4247,7 +4499,7 @@ * @returns {$protobuf.Writer} Writer */ PerformDiskShrinkContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -4261,9 +4513,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PerformDiskShrinkContext.decode = function decode(reader, length, error) { + PerformDiskShrinkContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.PerformDiskShrinkContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -4275,7 +4531,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4306,10 +4562,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PerformDiskShrinkContext.verify = function verify(message) { + PerformDiskShrinkContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.targetSizeGb != null && message.hasOwnProperty("targetSizeGb")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.targetSizeGb != null && Object.hasOwnProperty.call(message, "targetSizeGb")) if (!$util.isInteger(message.targetSizeGb) && !(message.targetSizeGb && $util.isInteger(message.targetSizeGb.low) && $util.isInteger(message.targetSizeGb.high))) return "targetSizeGb: integer|Long expected"; return null; @@ -4323,13 +4583,19 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.PerformDiskShrinkContext} PerformDiskShrinkContext */ - PerformDiskShrinkContext.fromObject = function fromObject(object) { + PerformDiskShrinkContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.PerformDiskShrinkContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.PerformDiskShrinkContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.PerformDiskShrinkContext(); if (object.targetSizeGb != null) if ($util.Long) - (message.targetSizeGb = $util.Long.fromValue(object.targetSizeGb)).unsigned = false; + message.targetSizeGb = $util.Long.fromValue(object.targetSizeGb, false); else if (typeof object.targetSizeGb === "string") message.targetSizeGb = parseInt(object.targetSizeGb, 10); else if (typeof object.targetSizeGb === "number") @@ -4348,18 +4614,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PerformDiskShrinkContext.toObject = function toObject(message, options) { + PerformDiskShrinkContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) if ($util.Long) { var long = new $util.Long(0, 0, false); - object.targetSizeGb = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.targetSizeGb = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.targetSizeGb = options.longs === String ? "0" : 0; - if (message.targetSizeGb != null && message.hasOwnProperty("targetSizeGb")) - if (typeof message.targetSizeGb === "number") + object.targetSizeGb = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; + if (message.targetSizeGb != null && Object.hasOwnProperty.call(message, "targetSizeGb")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.targetSizeGb = typeof message.targetSizeGb === "number" ? BigInt(message.targetSizeGb) : $util.Long.fromBits(message.targetSizeGb.low >>> 0, message.targetSizeGb.high >>> 0, false).toBigInt(); + else if (typeof message.targetSizeGb === "number") object.targetSizeGb = options.longs === String ? String(message.targetSizeGb) : message.targetSizeGb; else object.targetSizeGb = options.longs === String ? $util.Long.prototype.toString.call(message.targetSizeGb) : options.longs === Number ? new $util.LongBits(message.targetSizeGb.low >>> 0, message.targetSizeGb.high >>> 0).toNumber() : message.targetSizeGb; @@ -4418,7 +4690,7 @@ this.actionsRequired = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -4482,9 +4754,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PreCheckResponse.encode = function encode(message, writer) { + PreCheckResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.message != null && Object.hasOwnProperty.call(message, "message")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.message); if (message.messageType != null && Object.hasOwnProperty.call(message, "messageType")) @@ -4505,7 +4781,7 @@ * @returns {$protobuf.Writer} Writer */ PreCheckResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -4519,9 +4795,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PreCheckResponse.decode = function decode(reader, length, error) { + PreCheckResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.PreCheckResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -4543,7 +4823,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4574,16 +4854,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PreCheckResponse.verify = function verify(message) { + PreCheckResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.message != null && message.hasOwnProperty("message")) { + if (message.message != null && Object.hasOwnProperty.call(message, "message")) { properties._message = 1; if (!$util.isString(message.message)) return "message: string expected"; } - if (message.messageType != null && message.hasOwnProperty("messageType")) { + if (message.messageType != null && Object.hasOwnProperty.call(message, "messageType")) { properties._messageType = 1; switch (message.messageType) { default: @@ -4595,7 +4879,7 @@ break; } } - if (message.actionsRequired != null && message.hasOwnProperty("actionsRequired")) { + if (message.actionsRequired != null && Object.hasOwnProperty.call(message, "actionsRequired")) { if (!Array.isArray(message.actionsRequired)) return "actionsRequired: array expected"; for (var i = 0; i < message.actionsRequired.length; ++i) @@ -4613,9 +4897,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.PreCheckResponse} PreCheckResponse */ - PreCheckResponse.fromObject = function fromObject(object) { + PreCheckResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.PreCheckResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.PreCheckResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.PreCheckResponse(); if (object.message != null) message.message = String(object.message); @@ -4662,18 +4952,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PreCheckResponse.toObject = function toObject(message, options) { + PreCheckResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.actionsRequired = []; - if (message.message != null && message.hasOwnProperty("message")) { + if (message.message != null && Object.hasOwnProperty.call(message, "message")) { object.message = message.message; if (options.oneofs) object._message = "message"; } - if (message.messageType != null && message.hasOwnProperty("messageType")) { + if (message.messageType != null && Object.hasOwnProperty.call(message, "messageType")) { object.messageType = options.enums === String ? $root.google.cloud.sql.v1.PreCheckResponse.MessageType[message.messageType] === undefined ? message.messageType : $root.google.cloud.sql.v1.PreCheckResponse.MessageType[message.messageType] : message.messageType; if (options.oneofs) object._messageType = "messageType"; @@ -4756,7 +5050,7 @@ this.preCheckResponse = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -4805,14 +5099,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PreCheckMajorVersionUpgradeContext.encode = function encode(message, writer) { + PreCheckMajorVersionUpgradeContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.targetDatabaseVersion != null && Object.hasOwnProperty.call(message, "targetDatabaseVersion")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.targetDatabaseVersion); if (message.preCheckResponse != null && message.preCheckResponse.length) for (var i = 0; i < message.preCheckResponse.length; ++i) - $root.google.cloud.sql.v1.PreCheckResponse.encode(message.preCheckResponse[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.PreCheckResponse.encode(message.preCheckResponse[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.kind); return writer; @@ -4828,7 +5126,7 @@ * @returns {$protobuf.Writer} Writer */ PreCheckMajorVersionUpgradeContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -4842,9 +5140,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PreCheckMajorVersionUpgradeContext.decode = function decode(reader, length, error) { + PreCheckMajorVersionUpgradeContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -4858,7 +5160,7 @@ case 2: { if (!(message.preCheckResponse && message.preCheckResponse.length)) message.preCheckResponse = []; - message.preCheckResponse.push($root.google.cloud.sql.v1.PreCheckResponse.decode(reader, reader.uint32())); + message.preCheckResponse.push($root.google.cloud.sql.v1.PreCheckResponse.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { @@ -4866,7 +5168,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4897,10 +5199,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PreCheckMajorVersionUpgradeContext.verify = function verify(message) { + PreCheckMajorVersionUpgradeContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.targetDatabaseVersion != null && message.hasOwnProperty("targetDatabaseVersion")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.targetDatabaseVersion != null && Object.hasOwnProperty.call(message, "targetDatabaseVersion")) switch (message.targetDatabaseVersion) { default: return "targetDatabaseVersion: enum value expected"; @@ -4947,6 +5253,7 @@ case 272: case 408: case 557: + case 684: case 26: case 27: case 28: @@ -4955,18 +5262,21 @@ case 200: case 201: case 202: + case 549: + case 550: + case 551: break; } - if (message.preCheckResponse != null && message.hasOwnProperty("preCheckResponse")) { + if (message.preCheckResponse != null && Object.hasOwnProperty.call(message, "preCheckResponse")) { if (!Array.isArray(message.preCheckResponse)) return "preCheckResponse: array expected"; for (var i = 0; i < message.preCheckResponse.length; ++i) { - var error = $root.google.cloud.sql.v1.PreCheckResponse.verify(message.preCheckResponse[i]); + var error = $root.google.cloud.sql.v1.PreCheckResponse.verify(message.preCheckResponse[i], long + 1); if (error) return "preCheckResponse." + error; } } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -4980,9 +5290,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext} PreCheckMajorVersionUpgradeContext */ - PreCheckMajorVersionUpgradeContext.fromObject = function fromObject(object) { + PreCheckMajorVersionUpgradeContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext(); switch (object.targetDatabaseVersion) { default: @@ -5163,6 +5479,10 @@ case 557: message.targetDatabaseVersion = 557; break; + case "POSTGRES_19": + case 684: + message.targetDatabaseVersion = 684; + break; case "SQLSERVER_2019_STANDARD": case 26: message.targetDatabaseVersion = 26; @@ -5195,15 +5515,27 @@ case 202: message.targetDatabaseVersion = 202; break; + case "SQLSERVER_2025_STANDARD": + case 549: + message.targetDatabaseVersion = 549; + break; + case "SQLSERVER_2025_ENTERPRISE": + case 550: + message.targetDatabaseVersion = 550; + break; + case "SQLSERVER_2025_EXPRESS": + case 551: + message.targetDatabaseVersion = 551; + break; } if (object.preCheckResponse) { if (!Array.isArray(object.preCheckResponse)) throw TypeError(".google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.preCheckResponse: array expected"); message.preCheckResponse = []; for (var i = 0; i < object.preCheckResponse.length; ++i) { - if (typeof object.preCheckResponse[i] !== "object") + if (!$util.isObject(object.preCheckResponse[i])) throw TypeError(".google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.preCheckResponse: object expected"); - message.preCheckResponse[i] = $root.google.cloud.sql.v1.PreCheckResponse.fromObject(object.preCheckResponse[i]); + message.preCheckResponse[i] = $root.google.cloud.sql.v1.PreCheckResponse.fromObject(object.preCheckResponse[i], long + 1); } } if (object.kind != null) @@ -5220,9 +5552,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PreCheckMajorVersionUpgradeContext.toObject = function toObject(message, options) { + PreCheckMajorVersionUpgradeContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.preCheckResponse = []; @@ -5230,14 +5566,14 @@ object.targetDatabaseVersion = options.enums === String ? "SQL_DATABASE_VERSION_UNSPECIFIED" : 0; object.kind = ""; } - if (message.targetDatabaseVersion != null && message.hasOwnProperty("targetDatabaseVersion")) + if (message.targetDatabaseVersion != null && Object.hasOwnProperty.call(message, "targetDatabaseVersion")) object.targetDatabaseVersion = options.enums === String ? $root.google.cloud.sql.v1.SqlDatabaseVersion[message.targetDatabaseVersion] === undefined ? message.targetDatabaseVersion : $root.google.cloud.sql.v1.SqlDatabaseVersion[message.targetDatabaseVersion] : message.targetDatabaseVersion; if (message.preCheckResponse && message.preCheckResponse.length) { object.preCheckResponse = []; for (var j = 0; j < message.preCheckResponse.length; ++j) - object.preCheckResponse[j] = $root.google.cloud.sql.v1.PreCheckResponse.toObject(message.preCheckResponse[j], options); + object.preCheckResponse[j] = $root.google.cloud.sql.v1.PreCheckResponse.toObject(message.preCheckResponse[j], options, q + 1); } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -5293,7 +5629,7 @@ function BackupContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -5342,9 +5678,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BackupContext.encode = function encode(message, writer) { + BackupContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.backupId != null && Object.hasOwnProperty.call(message, "backupId")) writer.uint32(/* id 1, wireType 0 =*/8).int64(message.backupId); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -5364,7 +5704,7 @@ * @returns {$protobuf.Writer} Writer */ BackupContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -5378,9 +5718,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BackupContext.decode = function decode(reader, length, error) { + BackupContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.BackupContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -5400,7 +5744,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -5431,16 +5775,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BackupContext.verify = function verify(message) { + BackupContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.backupId != null && message.hasOwnProperty("backupId")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.backupId != null && Object.hasOwnProperty.call(message, "backupId")) if (!$util.isInteger(message.backupId) && !(message.backupId && $util.isInteger(message.backupId.low) && $util.isInteger(message.backupId.high))) return "backupId: integer|Long expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; return null; @@ -5454,13 +5802,19 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.BackupContext} BackupContext */ - BackupContext.fromObject = function fromObject(object) { + BackupContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.BackupContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.BackupContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.BackupContext(); if (object.backupId != null) if ($util.Long) - (message.backupId = $util.Long.fromValue(object.backupId)).unsigned = false; + message.backupId = $util.Long.fromValue(object.backupId, false); else if (typeof object.backupId === "string") message.backupId = parseInt(object.backupId, 10); else if (typeof object.backupId === "number") @@ -5483,27 +5837,33 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BackupContext.toObject = function toObject(message, options) { + BackupContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { if ($util.Long) { var long = new $util.Long(0, 0, false); - object.backupId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.backupId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.backupId = options.longs === String ? "0" : 0; + object.backupId = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.kind = ""; object.name = ""; } - if (message.backupId != null && message.hasOwnProperty("backupId")) - if (typeof message.backupId === "number") + if (message.backupId != null && Object.hasOwnProperty.call(message, "backupId")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.backupId = typeof message.backupId === "number" ? BigInt(message.backupId) : $util.Long.fromBits(message.backupId.low >>> 0, message.backupId.high >>> 0, false).toBigInt(); + else if (typeof message.backupId === "number") object.backupId = options.longs === String ? String(message.backupId) : message.backupId; else object.backupId = options.longs === String ? $util.Long.prototype.toString.call(message.backupId) : options.longs === Number ? new $util.LongBits(message.backupId.low >>> 0, message.backupId.high >>> 0).toNumber() : message.backupId; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; return object; }; @@ -5565,7 +5925,7 @@ function Database(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -5676,9 +6036,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Database.encode = function encode(message, writer) { + Database.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.charset != null && Object.hasOwnProperty.call(message, "charset")) @@ -5696,7 +6060,7 @@ if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 8, wireType 2 =*/66).string(message.project); if (message.sqlserverDatabaseDetails != null && Object.hasOwnProperty.call(message, "sqlserverDatabaseDetails")) - $root.google.cloud.sql.v1.SqlServerDatabaseDetails.encode(message.sqlserverDatabaseDetails, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.cloud.sql.v1.SqlServerDatabaseDetails.encode(message.sqlserverDatabaseDetails, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); return writer; }; @@ -5710,7 +6074,7 @@ * @returns {$protobuf.Writer} Writer */ Database.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -5724,9 +6088,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Database.decode = function decode(reader, length, error) { + Database.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.Database(); while (reader.pos < end) { var tag = reader.uint32(); @@ -5766,11 +6134,11 @@ break; } case 9: { - message.sqlserverDatabaseDetails = $root.google.cloud.sql.v1.SqlServerDatabaseDetails.decode(reader, reader.uint32()); + message.sqlserverDatabaseDetails = $root.google.cloud.sql.v1.SqlServerDatabaseDetails.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -5801,38 +6169,42 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Database.verify = function verify(message) { + Database.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.charset != null && message.hasOwnProperty("charset")) + if (message.charset != null && Object.hasOwnProperty.call(message, "charset")) if (!$util.isString(message.charset)) return "charset: string expected"; - if (message.collation != null && message.hasOwnProperty("collation")) + if (message.collation != null && Object.hasOwnProperty.call(message, "collation")) if (!$util.isString(message.collation)) return "collation: string expected"; - if (message.etag != null && message.hasOwnProperty("etag")) + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) if (!$util.isString(message.etag)) return "etag: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) if (!$util.isString(message.selfLink)) return "selfLink: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.sqlserverDatabaseDetails != null && message.hasOwnProperty("sqlserverDatabaseDetails")) { + if (message.sqlserverDatabaseDetails != null && Object.hasOwnProperty.call(message, "sqlserverDatabaseDetails")) { properties.databaseDetails = 1; { - var error = $root.google.cloud.sql.v1.SqlServerDatabaseDetails.verify(message.sqlserverDatabaseDetails); + var error = $root.google.cloud.sql.v1.SqlServerDatabaseDetails.verify(message.sqlserverDatabaseDetails, long + 1); if (error) return "sqlserverDatabaseDetails." + error; } @@ -5848,9 +6220,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.Database} Database */ - Database.fromObject = function fromObject(object) { + Database.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.Database) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.Database: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.Database(); if (object.kind != null) message.kind = String(object.kind); @@ -5869,9 +6247,9 @@ if (object.project != null) message.project = String(object.project); if (object.sqlserverDatabaseDetails != null) { - if (typeof object.sqlserverDatabaseDetails !== "object") + if (!$util.isObject(object.sqlserverDatabaseDetails)) throw TypeError(".google.cloud.sql.v1.Database.sqlserverDatabaseDetails: object expected"); - message.sqlserverDatabaseDetails = $root.google.cloud.sql.v1.SqlServerDatabaseDetails.fromObject(object.sqlserverDatabaseDetails); + message.sqlserverDatabaseDetails = $root.google.cloud.sql.v1.SqlServerDatabaseDetails.fromObject(object.sqlserverDatabaseDetails, long + 1); } return message; }; @@ -5885,9 +6263,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Database.toObject = function toObject(message, options) { + Database.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -5899,24 +6281,24 @@ object.selfLink = ""; object.project = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.charset != null && message.hasOwnProperty("charset")) + if (message.charset != null && Object.hasOwnProperty.call(message, "charset")) object.charset = message.charset; - if (message.collation != null && message.hasOwnProperty("collation")) + if (message.collation != null && Object.hasOwnProperty.call(message, "collation")) object.collation = message.collation; - if (message.etag != null && message.hasOwnProperty("etag")) + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) object.etag = message.etag; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) object.selfLink = message.selfLink; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.sqlserverDatabaseDetails != null && message.hasOwnProperty("sqlserverDatabaseDetails")) { - object.sqlserverDatabaseDetails = $root.google.cloud.sql.v1.SqlServerDatabaseDetails.toObject(message.sqlserverDatabaseDetails, options); + if (message.sqlserverDatabaseDetails != null && Object.hasOwnProperty.call(message, "sqlserverDatabaseDetails")) { + object.sqlserverDatabaseDetails = $root.google.cloud.sql.v1.SqlServerDatabaseDetails.toObject(message.sqlserverDatabaseDetails, options, q + 1); if (options.oneofs) object.databaseDetails = "sqlserverDatabaseDetails"; } @@ -5973,7 +6355,7 @@ function SqlServerDatabaseDetails(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6014,9 +6396,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlServerDatabaseDetails.encode = function encode(message, writer) { + SqlServerDatabaseDetails.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.compatibilityLevel != null && Object.hasOwnProperty.call(message, "compatibilityLevel")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.compatibilityLevel); if (message.recoveryModel != null && Object.hasOwnProperty.call(message, "recoveryModel")) @@ -6034,7 +6420,7 @@ * @returns {$protobuf.Writer} Writer */ SqlServerDatabaseDetails.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -6048,9 +6434,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlServerDatabaseDetails.decode = function decode(reader, length, error) { + SqlServerDatabaseDetails.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlServerDatabaseDetails(); while (reader.pos < end) { var tag = reader.uint32(); @@ -6066,7 +6456,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6097,13 +6487,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlServerDatabaseDetails.verify = function verify(message) { + SqlServerDatabaseDetails.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.compatibilityLevel != null && message.hasOwnProperty("compatibilityLevel")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.compatibilityLevel != null && Object.hasOwnProperty.call(message, "compatibilityLevel")) if (!$util.isInteger(message.compatibilityLevel)) return "compatibilityLevel: integer expected"; - if (message.recoveryModel != null && message.hasOwnProperty("recoveryModel")) + if (message.recoveryModel != null && Object.hasOwnProperty.call(message, "recoveryModel")) if (!$util.isString(message.recoveryModel)) return "recoveryModel: string expected"; return null; @@ -6117,9 +6511,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlServerDatabaseDetails} SqlServerDatabaseDetails */ - SqlServerDatabaseDetails.fromObject = function fromObject(object) { + SqlServerDatabaseDetails.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlServerDatabaseDetails) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlServerDatabaseDetails: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlServerDatabaseDetails(); if (object.compatibilityLevel != null) message.compatibilityLevel = object.compatibilityLevel | 0; @@ -6137,17 +6537,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlServerDatabaseDetails.toObject = function toObject(message, options) { + SqlServerDatabaseDetails.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.compatibilityLevel = 0; object.recoveryModel = ""; } - if (message.compatibilityLevel != null && message.hasOwnProperty("compatibilityLevel")) + if (message.compatibilityLevel != null && Object.hasOwnProperty.call(message, "compatibilityLevel")) object.compatibilityLevel = message.compatibilityLevel; - if (message.recoveryModel != null && message.hasOwnProperty("recoveryModel")) + if (message.recoveryModel != null && Object.hasOwnProperty.call(message, "recoveryModel")) object.recoveryModel = message.recoveryModel; return object; }; @@ -6202,7 +6606,7 @@ function DatabaseFlags(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6243,9 +6647,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DatabaseFlags.encode = function encode(message, writer) { + DatabaseFlags.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.value != null && Object.hasOwnProperty.call(message, "value")) @@ -6263,7 +6671,7 @@ * @returns {$protobuf.Writer} Writer */ DatabaseFlags.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -6277,9 +6685,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DatabaseFlags.decode = function decode(reader, length, error) { + DatabaseFlags.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.DatabaseFlags(); while (reader.pos < end) { var tag = reader.uint32(); @@ -6295,7 +6707,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6326,13 +6738,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DatabaseFlags.verify = function verify(message) { + DatabaseFlags.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!$util.isString(message.value)) return "value: string expected"; return null; @@ -6346,9 +6762,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.DatabaseFlags} DatabaseFlags */ - DatabaseFlags.fromObject = function fromObject(object) { + DatabaseFlags.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.DatabaseFlags) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.DatabaseFlags: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.DatabaseFlags(); if (object.name != null) message.name = String(object.name); @@ -6366,17 +6788,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DatabaseFlags.toObject = function toObject(message, options) { + DatabaseFlags.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; object.value = ""; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = message.value; return object; }; @@ -6431,7 +6857,7 @@ this.initialSyncFlags = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6464,12 +6890,16 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MySqlSyncConfig.encode = function encode(message, writer) { + MySqlSyncConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.initialSyncFlags != null && message.initialSyncFlags.length) for (var i = 0; i < message.initialSyncFlags.length; ++i) - $root.google.cloud.sql.v1.SyncFlags.encode(message.initialSyncFlags[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.SyncFlags.encode(message.initialSyncFlags[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -6483,7 +6913,7 @@ * @returns {$protobuf.Writer} Writer */ MySqlSyncConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -6497,9 +6927,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MySqlSyncConfig.decode = function decode(reader, length, error) { + MySqlSyncConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.MySqlSyncConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -6509,11 +6943,11 @@ case 1: { if (!(message.initialSyncFlags && message.initialSyncFlags.length)) message.initialSyncFlags = []; - message.initialSyncFlags.push($root.google.cloud.sql.v1.SyncFlags.decode(reader, reader.uint32())); + message.initialSyncFlags.push($root.google.cloud.sql.v1.SyncFlags.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6544,14 +6978,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MySqlSyncConfig.verify = function verify(message) { + MySqlSyncConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.initialSyncFlags != null && message.hasOwnProperty("initialSyncFlags")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.initialSyncFlags != null && Object.hasOwnProperty.call(message, "initialSyncFlags")) { if (!Array.isArray(message.initialSyncFlags)) return "initialSyncFlags: array expected"; for (var i = 0; i < message.initialSyncFlags.length; ++i) { - var error = $root.google.cloud.sql.v1.SyncFlags.verify(message.initialSyncFlags[i]); + var error = $root.google.cloud.sql.v1.SyncFlags.verify(message.initialSyncFlags[i], long + 1); if (error) return "initialSyncFlags." + error; } @@ -6567,18 +7005,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.MySqlSyncConfig} MySqlSyncConfig */ - MySqlSyncConfig.fromObject = function fromObject(object) { + MySqlSyncConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.MySqlSyncConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.MySqlSyncConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.MySqlSyncConfig(); if (object.initialSyncFlags) { if (!Array.isArray(object.initialSyncFlags)) throw TypeError(".google.cloud.sql.v1.MySqlSyncConfig.initialSyncFlags: array expected"); message.initialSyncFlags = []; for (var i = 0; i < object.initialSyncFlags.length; ++i) { - if (typeof object.initialSyncFlags[i] !== "object") + if (!$util.isObject(object.initialSyncFlags[i])) throw TypeError(".google.cloud.sql.v1.MySqlSyncConfig.initialSyncFlags: object expected"); - message.initialSyncFlags[i] = $root.google.cloud.sql.v1.SyncFlags.fromObject(object.initialSyncFlags[i]); + message.initialSyncFlags[i] = $root.google.cloud.sql.v1.SyncFlags.fromObject(object.initialSyncFlags[i], long + 1); } } return message; @@ -6593,16 +7037,20 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MySqlSyncConfig.toObject = function toObject(message, options) { + MySqlSyncConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.initialSyncFlags = []; if (message.initialSyncFlags && message.initialSyncFlags.length) { object.initialSyncFlags = []; for (var j = 0; j < message.initialSyncFlags.length; ++j) - object.initialSyncFlags[j] = $root.google.cloud.sql.v1.SyncFlags.toObject(message.initialSyncFlags[j], options); + object.initialSyncFlags[j] = $root.google.cloud.sql.v1.SyncFlags.toObject(message.initialSyncFlags[j], options, q + 1); } return object; }; @@ -6657,7 +7105,7 @@ function SyncFlags(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6698,9 +7146,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SyncFlags.encode = function encode(message, writer) { + SyncFlags.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.value != null && Object.hasOwnProperty.call(message, "value")) @@ -6718,7 +7170,7 @@ * @returns {$protobuf.Writer} Writer */ SyncFlags.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -6732,9 +7184,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SyncFlags.decode = function decode(reader, length, error) { + SyncFlags.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SyncFlags(); while (reader.pos < end) { var tag = reader.uint32(); @@ -6750,7 +7206,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6781,13 +7237,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SyncFlags.verify = function verify(message) { + SyncFlags.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!$util.isString(message.value)) return "value: string expected"; return null; @@ -6801,9 +7261,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SyncFlags} SyncFlags */ - SyncFlags.fromObject = function fromObject(object) { + SyncFlags.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SyncFlags) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SyncFlags: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SyncFlags(); if (object.name != null) message.name = String(object.name); @@ -6821,17 +7287,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SyncFlags.toObject = function toObject(message, options) { + SyncFlags.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; object.value = ""; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = message.value; return object; }; @@ -6887,7 +7357,7 @@ function InstanceReference(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6936,9 +7406,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstanceReference.encode = function encode(message, writer) { + InstanceReference.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.region != null && Object.hasOwnProperty.call(message, "region")) @@ -6958,7 +7432,7 @@ * @returns {$protobuf.Writer} Writer */ InstanceReference.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -6972,9 +7446,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstanceReference.decode = function decode(reader, length, error) { + InstanceReference.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstanceReference(); while (reader.pos < end) { var tag = reader.uint32(); @@ -6994,7 +7472,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7025,16 +7503,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstanceReference.verify = function verify(message) { + InstanceReference.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.region != null && message.hasOwnProperty("region")) + if (message.region != null && Object.hasOwnProperty.call(message, "region")) if (!$util.isString(message.region)) return "region: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -7048,9 +7530,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstanceReference} InstanceReference */ - InstanceReference.fromObject = function fromObject(object) { + InstanceReference.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstanceReference) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstanceReference: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstanceReference(); if (object.name != null) message.name = String(object.name); @@ -7070,20 +7558,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstanceReference.toObject = function toObject(message, options) { + InstanceReference.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; object.region = ""; object.project = ""; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.region != null && message.hasOwnProperty("region")) + if (message.region != null && Object.hasOwnProperty.call(message, "region")) object.region = message.region; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -7138,7 +7630,7 @@ function DemoteMasterConfiguration(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -7179,13 +7671,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DemoteMasterConfiguration.encode = function encode(message, writer) { + DemoteMasterConfiguration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.mysqlReplicaConfiguration != null && Object.hasOwnProperty.call(message, "mysqlReplicaConfiguration")) - $root.google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration.encode(message.mysqlReplicaConfiguration, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration.encode(message.mysqlReplicaConfiguration, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -7199,7 +7695,7 @@ * @returns {$protobuf.Writer} Writer */ DemoteMasterConfiguration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -7213,9 +7709,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DemoteMasterConfiguration.decode = function decode(reader, length, error) { + DemoteMasterConfiguration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.DemoteMasterConfiguration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -7227,11 +7727,11 @@ break; } case 2: { - message.mysqlReplicaConfiguration = $root.google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration.decode(reader, reader.uint32()); + message.mysqlReplicaConfiguration = $root.google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7262,14 +7762,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DemoteMasterConfiguration.verify = function verify(message) { + DemoteMasterConfiguration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.mysqlReplicaConfiguration != null && message.hasOwnProperty("mysqlReplicaConfiguration")) { - var error = $root.google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration.verify(message.mysqlReplicaConfiguration); + if (message.mysqlReplicaConfiguration != null && Object.hasOwnProperty.call(message, "mysqlReplicaConfiguration")) { + var error = $root.google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration.verify(message.mysqlReplicaConfiguration, long + 1); if (error) return "mysqlReplicaConfiguration." + error; } @@ -7284,16 +7788,22 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.DemoteMasterConfiguration} DemoteMasterConfiguration */ - DemoteMasterConfiguration.fromObject = function fromObject(object) { + DemoteMasterConfiguration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.DemoteMasterConfiguration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.DemoteMasterConfiguration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.DemoteMasterConfiguration(); if (object.kind != null) message.kind = String(object.kind); if (object.mysqlReplicaConfiguration != null) { - if (typeof object.mysqlReplicaConfiguration !== "object") + if (!$util.isObject(object.mysqlReplicaConfiguration)) throw TypeError(".google.cloud.sql.v1.DemoteMasterConfiguration.mysqlReplicaConfiguration: object expected"); - message.mysqlReplicaConfiguration = $root.google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration.fromObject(object.mysqlReplicaConfiguration); + message.mysqlReplicaConfiguration = $root.google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration.fromObject(object.mysqlReplicaConfiguration, long + 1); } return message; }; @@ -7307,18 +7817,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DemoteMasterConfiguration.toObject = function toObject(message, options) { + DemoteMasterConfiguration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.mysqlReplicaConfiguration = null; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.mysqlReplicaConfiguration != null && message.hasOwnProperty("mysqlReplicaConfiguration")) - object.mysqlReplicaConfiguration = $root.google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration.toObject(message.mysqlReplicaConfiguration, options); + if (message.mysqlReplicaConfiguration != null && Object.hasOwnProperty.call(message, "mysqlReplicaConfiguration")) + object.mysqlReplicaConfiguration = $root.google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration.toObject(message.mysqlReplicaConfiguration, options, q + 1); return object; }; @@ -7376,7 +7890,7 @@ function DemoteMasterMySqlReplicaConfiguration(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -7449,9 +7963,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DemoteMasterMySqlReplicaConfiguration.encode = function encode(message, writer) { + DemoteMasterMySqlReplicaConfiguration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.username != null && Object.hasOwnProperty.call(message, "username")) @@ -7477,7 +7995,7 @@ * @returns {$protobuf.Writer} Writer */ DemoteMasterMySqlReplicaConfiguration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -7491,9 +8009,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DemoteMasterMySqlReplicaConfiguration.decode = function decode(reader, length, error) { + DemoteMasterMySqlReplicaConfiguration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -7525,7 +8047,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7556,25 +8078,29 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DemoteMasterMySqlReplicaConfiguration.verify = function verify(message) { + DemoteMasterMySqlReplicaConfiguration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.username != null && message.hasOwnProperty("username")) + if (message.username != null && Object.hasOwnProperty.call(message, "username")) if (!$util.isString(message.username)) return "username: string expected"; - if (message.password != null && message.hasOwnProperty("password")) + if (message.password != null && Object.hasOwnProperty.call(message, "password")) if (!$util.isString(message.password)) return "password: string expected"; - if (message.clientKey != null && message.hasOwnProperty("clientKey")) + if (message.clientKey != null && Object.hasOwnProperty.call(message, "clientKey")) if (!$util.isString(message.clientKey)) return "clientKey: string expected"; - if (message.clientCertificate != null && message.hasOwnProperty("clientCertificate")) + if (message.clientCertificate != null && Object.hasOwnProperty.call(message, "clientCertificate")) if (!$util.isString(message.clientCertificate)) return "clientCertificate: string expected"; - if (message.caCertificate != null && message.hasOwnProperty("caCertificate")) + if (message.caCertificate != null && Object.hasOwnProperty.call(message, "caCertificate")) if (!$util.isString(message.caCertificate)) return "caCertificate: string expected"; return null; @@ -7588,9 +8114,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration} DemoteMasterMySqlReplicaConfiguration */ - DemoteMasterMySqlReplicaConfiguration.fromObject = function fromObject(object) { + DemoteMasterMySqlReplicaConfiguration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration(); if (object.kind != null) message.kind = String(object.kind); @@ -7616,9 +8148,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DemoteMasterMySqlReplicaConfiguration.toObject = function toObject(message, options) { + DemoteMasterMySqlReplicaConfiguration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -7628,17 +8164,17 @@ object.clientCertificate = ""; object.caCertificate = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.username != null && message.hasOwnProperty("username")) + if (message.username != null && Object.hasOwnProperty.call(message, "username")) object.username = message.username; - if (message.password != null && message.hasOwnProperty("password")) + if (message.password != null && Object.hasOwnProperty.call(message, "password")) object.password = message.password; - if (message.clientKey != null && message.hasOwnProperty("clientKey")) + if (message.clientKey != null && Object.hasOwnProperty.call(message, "clientKey")) object.clientKey = message.clientKey; - if (message.clientCertificate != null && message.hasOwnProperty("clientCertificate")) + if (message.clientCertificate != null && Object.hasOwnProperty.call(message, "clientCertificate")) object.clientCertificate = message.clientCertificate; - if (message.caCertificate != null && message.hasOwnProperty("caCertificate")) + if (message.caCertificate != null && Object.hasOwnProperty.call(message, "caCertificate")) object.caCertificate = message.caCertificate; return object; }; @@ -7721,7 +8257,7 @@ this.databases = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -7818,9 +8354,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ExportContext.encode = function encode(message, writer) { + ExportContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.uri != null && Object.hasOwnProperty.call(message, "uri")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.uri); if (message.databases != null && message.databases.length) @@ -7829,17 +8369,17 @@ if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.kind); if (message.sqlExportOptions != null && Object.hasOwnProperty.call(message, "sqlExportOptions")) - $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.encode(message.sqlExportOptions, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.encode(message.sqlExportOptions, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.csvExportOptions != null && Object.hasOwnProperty.call(message, "csvExportOptions")) - $root.google.cloud.sql.v1.ExportContext.SqlCsvExportOptions.encode(message.csvExportOptions, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.cloud.sql.v1.ExportContext.SqlCsvExportOptions.encode(message.csvExportOptions, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.fileType != null && Object.hasOwnProperty.call(message, "fileType")) writer.uint32(/* id 6, wireType 0 =*/48).int32(message.fileType); if (message.offload != null && Object.hasOwnProperty.call(message, "offload")) - $root.google.protobuf.BoolValue.encode(message.offload, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.offload, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); if (message.bakExportOptions != null && Object.hasOwnProperty.call(message, "bakExportOptions")) - $root.google.cloud.sql.v1.ExportContext.SqlBakExportOptions.encode(message.bakExportOptions, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.cloud.sql.v1.ExportContext.SqlBakExportOptions.encode(message.bakExportOptions, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); if (message.tdeExportOptions != null && Object.hasOwnProperty.call(message, "tdeExportOptions")) - $root.google.cloud.sql.v1.ExportContext.SqlTdeExportOptions.encode(message.tdeExportOptions, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + $root.google.cloud.sql.v1.ExportContext.SqlTdeExportOptions.encode(message.tdeExportOptions, writer.uint32(/* id 10, wireType 2 =*/82).fork(), q + 1).ldelim(); return writer; }; @@ -7853,7 +8393,7 @@ * @returns {$protobuf.Writer} Writer */ ExportContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -7867,9 +8407,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExportContext.decode = function decode(reader, length, error) { + ExportContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ExportContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -7891,11 +8435,11 @@ break; } case 4: { - message.sqlExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.decode(reader, reader.uint32()); + message.sqlExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.csvExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlCsvExportOptions.decode(reader, reader.uint32()); + message.csvExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlCsvExportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { @@ -7903,19 +8447,19 @@ break; } case 8: { - message.offload = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.offload = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { - message.bakExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlBakExportOptions.decode(reader, reader.uint32()); + message.bakExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlBakExportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { - message.tdeExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlTdeExportOptions.decode(reader, reader.uint32()); + message.tdeExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlTdeExportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7946,33 +8490,37 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ExportContext.verify = function verify(message) { + ExportContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.uri != null && message.hasOwnProperty("uri")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.uri != null && Object.hasOwnProperty.call(message, "uri")) if (!$util.isString(message.uri)) return "uri: string expected"; - if (message.databases != null && message.hasOwnProperty("databases")) { + if (message.databases != null && Object.hasOwnProperty.call(message, "databases")) { if (!Array.isArray(message.databases)) return "databases: array expected"; for (var i = 0; i < message.databases.length; ++i) if (!$util.isString(message.databases[i])) return "databases: string[] expected"; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.sqlExportOptions != null && message.hasOwnProperty("sqlExportOptions")) { - var error = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.verify(message.sqlExportOptions); + if (message.sqlExportOptions != null && Object.hasOwnProperty.call(message, "sqlExportOptions")) { + var error = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.verify(message.sqlExportOptions, long + 1); if (error) return "sqlExportOptions." + error; } - if (message.csvExportOptions != null && message.hasOwnProperty("csvExportOptions")) { - var error = $root.google.cloud.sql.v1.ExportContext.SqlCsvExportOptions.verify(message.csvExportOptions); + if (message.csvExportOptions != null && Object.hasOwnProperty.call(message, "csvExportOptions")) { + var error = $root.google.cloud.sql.v1.ExportContext.SqlCsvExportOptions.verify(message.csvExportOptions, long + 1); if (error) return "csvExportOptions." + error; } - if (message.fileType != null && message.hasOwnProperty("fileType")) + if (message.fileType != null && Object.hasOwnProperty.call(message, "fileType")) switch (message.fileType) { default: return "fileType: enum value expected"; @@ -7983,18 +8531,18 @@ case 8: break; } - if (message.offload != null && message.hasOwnProperty("offload")) { - var error = $root.google.protobuf.BoolValue.verify(message.offload); + if (message.offload != null && Object.hasOwnProperty.call(message, "offload")) { + var error = $root.google.protobuf.BoolValue.verify(message.offload, long + 1); if (error) return "offload." + error; } - if (message.bakExportOptions != null && message.hasOwnProperty("bakExportOptions")) { - var error = $root.google.cloud.sql.v1.ExportContext.SqlBakExportOptions.verify(message.bakExportOptions); + if (message.bakExportOptions != null && Object.hasOwnProperty.call(message, "bakExportOptions")) { + var error = $root.google.cloud.sql.v1.ExportContext.SqlBakExportOptions.verify(message.bakExportOptions, long + 1); if (error) return "bakExportOptions." + error; } - if (message.tdeExportOptions != null && message.hasOwnProperty("tdeExportOptions")) { - var error = $root.google.cloud.sql.v1.ExportContext.SqlTdeExportOptions.verify(message.tdeExportOptions); + if (message.tdeExportOptions != null && Object.hasOwnProperty.call(message, "tdeExportOptions")) { + var error = $root.google.cloud.sql.v1.ExportContext.SqlTdeExportOptions.verify(message.tdeExportOptions, long + 1); if (error) return "tdeExportOptions." + error; } @@ -8009,9 +8557,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ExportContext} ExportContext */ - ExportContext.fromObject = function fromObject(object) { + ExportContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ExportContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ExportContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ExportContext(); if (object.uri != null) message.uri = String(object.uri); @@ -8025,14 +8579,14 @@ if (object.kind != null) message.kind = String(object.kind); if (object.sqlExportOptions != null) { - if (typeof object.sqlExportOptions !== "object") + if (!$util.isObject(object.sqlExportOptions)) throw TypeError(".google.cloud.sql.v1.ExportContext.sqlExportOptions: object expected"); - message.sqlExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.fromObject(object.sqlExportOptions); + message.sqlExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.fromObject(object.sqlExportOptions, long + 1); } if (object.csvExportOptions != null) { - if (typeof object.csvExportOptions !== "object") + if (!$util.isObject(object.csvExportOptions)) throw TypeError(".google.cloud.sql.v1.ExportContext.csvExportOptions: object expected"); - message.csvExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlCsvExportOptions.fromObject(object.csvExportOptions); + message.csvExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlCsvExportOptions.fromObject(object.csvExportOptions, long + 1); } switch (object.fileType) { default: @@ -8063,19 +8617,19 @@ break; } if (object.offload != null) { - if (typeof object.offload !== "object") + if (!$util.isObject(object.offload)) throw TypeError(".google.cloud.sql.v1.ExportContext.offload: object expected"); - message.offload = $root.google.protobuf.BoolValue.fromObject(object.offload); + message.offload = $root.google.protobuf.BoolValue.fromObject(object.offload, long + 1); } if (object.bakExportOptions != null) { - if (typeof object.bakExportOptions !== "object") + if (!$util.isObject(object.bakExportOptions)) throw TypeError(".google.cloud.sql.v1.ExportContext.bakExportOptions: object expected"); - message.bakExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlBakExportOptions.fromObject(object.bakExportOptions); + message.bakExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlBakExportOptions.fromObject(object.bakExportOptions, long + 1); } if (object.tdeExportOptions != null) { - if (typeof object.tdeExportOptions !== "object") + if (!$util.isObject(object.tdeExportOptions)) throw TypeError(".google.cloud.sql.v1.ExportContext.tdeExportOptions: object expected"); - message.tdeExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlTdeExportOptions.fromObject(object.tdeExportOptions); + message.tdeExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlTdeExportOptions.fromObject(object.tdeExportOptions, long + 1); } return message; }; @@ -8089,9 +8643,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ExportContext.toObject = function toObject(message, options) { + ExportContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.databases = []; @@ -8105,27 +8663,27 @@ object.bakExportOptions = null; object.tdeExportOptions = null; } - if (message.uri != null && message.hasOwnProperty("uri")) + if (message.uri != null && Object.hasOwnProperty.call(message, "uri")) object.uri = message.uri; if (message.databases && message.databases.length) { object.databases = []; for (var j = 0; j < message.databases.length; ++j) object.databases[j] = message.databases[j]; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.sqlExportOptions != null && message.hasOwnProperty("sqlExportOptions")) - object.sqlExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.toObject(message.sqlExportOptions, options); - if (message.csvExportOptions != null && message.hasOwnProperty("csvExportOptions")) - object.csvExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlCsvExportOptions.toObject(message.csvExportOptions, options); - if (message.fileType != null && message.hasOwnProperty("fileType")) + if (message.sqlExportOptions != null && Object.hasOwnProperty.call(message, "sqlExportOptions")) + object.sqlExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.toObject(message.sqlExportOptions, options, q + 1); + if (message.csvExportOptions != null && Object.hasOwnProperty.call(message, "csvExportOptions")) + object.csvExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlCsvExportOptions.toObject(message.csvExportOptions, options, q + 1); + if (message.fileType != null && Object.hasOwnProperty.call(message, "fileType")) object.fileType = options.enums === String ? $root.google.cloud.sql.v1.SqlFileType[message.fileType] === undefined ? message.fileType : $root.google.cloud.sql.v1.SqlFileType[message.fileType] : message.fileType; - if (message.offload != null && message.hasOwnProperty("offload")) - object.offload = $root.google.protobuf.BoolValue.toObject(message.offload, options); - if (message.bakExportOptions != null && message.hasOwnProperty("bakExportOptions")) - object.bakExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlBakExportOptions.toObject(message.bakExportOptions, options); - if (message.tdeExportOptions != null && message.hasOwnProperty("tdeExportOptions")) - object.tdeExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlTdeExportOptions.toObject(message.tdeExportOptions, options); + if (message.offload != null && Object.hasOwnProperty.call(message, "offload")) + object.offload = $root.google.protobuf.BoolValue.toObject(message.offload, options, q + 1); + if (message.bakExportOptions != null && Object.hasOwnProperty.call(message, "bakExportOptions")) + object.bakExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlBakExportOptions.toObject(message.bakExportOptions, options, q + 1); + if (message.tdeExportOptions != null && Object.hasOwnProperty.call(message, "tdeExportOptions")) + object.tdeExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlTdeExportOptions.toObject(message.tdeExportOptions, options, q + 1); return object; }; @@ -8179,7 +8737,7 @@ function SqlCsvExportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -8244,9 +8802,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlCsvExportOptions.encode = function encode(message, writer) { + SqlCsvExportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.selectQuery != null && Object.hasOwnProperty.call(message, "selectQuery")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.selectQuery); if (message.escapeCharacter != null && Object.hasOwnProperty.call(message, "escapeCharacter")) @@ -8270,7 +8832,7 @@ * @returns {$protobuf.Writer} Writer */ SqlCsvExportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -8284,9 +8846,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlCsvExportOptions.decode = function decode(reader, length, error) { + SqlCsvExportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ExportContext.SqlCsvExportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -8314,7 +8880,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -8345,22 +8911,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlCsvExportOptions.verify = function verify(message) { + SqlCsvExportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.selectQuery != null && message.hasOwnProperty("selectQuery")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.selectQuery != null && Object.hasOwnProperty.call(message, "selectQuery")) if (!$util.isString(message.selectQuery)) return "selectQuery: string expected"; - if (message.escapeCharacter != null && message.hasOwnProperty("escapeCharacter")) + if (message.escapeCharacter != null && Object.hasOwnProperty.call(message, "escapeCharacter")) if (!$util.isString(message.escapeCharacter)) return "escapeCharacter: string expected"; - if (message.quoteCharacter != null && message.hasOwnProperty("quoteCharacter")) + if (message.quoteCharacter != null && Object.hasOwnProperty.call(message, "quoteCharacter")) if (!$util.isString(message.quoteCharacter)) return "quoteCharacter: string expected"; - if (message.fieldsTerminatedBy != null && message.hasOwnProperty("fieldsTerminatedBy")) + if (message.fieldsTerminatedBy != null && Object.hasOwnProperty.call(message, "fieldsTerminatedBy")) if (!$util.isString(message.fieldsTerminatedBy)) return "fieldsTerminatedBy: string expected"; - if (message.linesTerminatedBy != null && message.hasOwnProperty("linesTerminatedBy")) + if (message.linesTerminatedBy != null && Object.hasOwnProperty.call(message, "linesTerminatedBy")) if (!$util.isString(message.linesTerminatedBy)) return "linesTerminatedBy: string expected"; return null; @@ -8374,9 +8944,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ExportContext.SqlCsvExportOptions} SqlCsvExportOptions */ - SqlCsvExportOptions.fromObject = function fromObject(object) { + SqlCsvExportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ExportContext.SqlCsvExportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ExportContext.SqlCsvExportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ExportContext.SqlCsvExportOptions(); if (object.selectQuery != null) message.selectQuery = String(object.selectQuery); @@ -8400,9 +8976,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlCsvExportOptions.toObject = function toObject(message, options) { + SqlCsvExportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.selectQuery = ""; @@ -8411,15 +8991,15 @@ object.fieldsTerminatedBy = ""; object.linesTerminatedBy = ""; } - if (message.selectQuery != null && message.hasOwnProperty("selectQuery")) + if (message.selectQuery != null && Object.hasOwnProperty.call(message, "selectQuery")) object.selectQuery = message.selectQuery; - if (message.escapeCharacter != null && message.hasOwnProperty("escapeCharacter")) + if (message.escapeCharacter != null && Object.hasOwnProperty.call(message, "escapeCharacter")) object.escapeCharacter = message.escapeCharacter; - if (message.quoteCharacter != null && message.hasOwnProperty("quoteCharacter")) + if (message.quoteCharacter != null && Object.hasOwnProperty.call(message, "quoteCharacter")) object.quoteCharacter = message.quoteCharacter; - if (message.fieldsTerminatedBy != null && message.hasOwnProperty("fieldsTerminatedBy")) + if (message.fieldsTerminatedBy != null && Object.hasOwnProperty.call(message, "fieldsTerminatedBy")) object.fieldsTerminatedBy = message.fieldsTerminatedBy; - if (message.linesTerminatedBy != null && message.hasOwnProperty("linesTerminatedBy")) + if (message.linesTerminatedBy != null && Object.hasOwnProperty.call(message, "linesTerminatedBy")) object.linesTerminatedBy = message.linesTerminatedBy; return object; }; @@ -8479,7 +9059,7 @@ this.tables = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -8552,22 +9132,26 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlExportOptions.encode = function encode(message, writer) { + SqlExportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.tables != null && message.tables.length) for (var i = 0; i < message.tables.length; ++i) writer.uint32(/* id 1, wireType 2 =*/10).string(message.tables[i]); if (message.schemaOnly != null && Object.hasOwnProperty.call(message, "schemaOnly")) - $root.google.protobuf.BoolValue.encode(message.schemaOnly, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.schemaOnly, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.mysqlExportOptions != null && Object.hasOwnProperty.call(message, "mysqlExportOptions")) - $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions.encode(message.mysqlExportOptions, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions.encode(message.mysqlExportOptions, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.threads != null && Object.hasOwnProperty.call(message, "threads")) - $root.google.protobuf.Int32Value.encode(message.threads, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.threads, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.parallel != null && Object.hasOwnProperty.call(message, "parallel")) - $root.google.protobuf.BoolValue.encode(message.parallel, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.parallel, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.postgresExportOptions != null && Object.hasOwnProperty.call(message, "postgresExportOptions")) - $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions.encode(message.postgresExportOptions, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions.encode(message.postgresExportOptions, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); return writer; }; @@ -8581,7 +9165,7 @@ * @returns {$protobuf.Writer} Writer */ SqlExportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -8595,9 +9179,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlExportOptions.decode = function decode(reader, length, error) { + SqlExportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ExportContext.SqlExportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -8611,27 +9199,27 @@ break; } case 2: { - message.schemaOnly = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.schemaOnly = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { - message.mysqlExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions.decode(reader, reader.uint32()); + message.mysqlExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { - message.threads = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.threads = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.parallel = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.parallel = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.postgresExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions.decode(reader, reader.uint32()); + message.postgresExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -8662,38 +9250,42 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlExportOptions.verify = function verify(message) { + SqlExportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.tables != null && message.hasOwnProperty("tables")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.tables != null && Object.hasOwnProperty.call(message, "tables")) { if (!Array.isArray(message.tables)) return "tables: array expected"; for (var i = 0; i < message.tables.length; ++i) if (!$util.isString(message.tables[i])) return "tables: string[] expected"; } - if (message.schemaOnly != null && message.hasOwnProperty("schemaOnly")) { - var error = $root.google.protobuf.BoolValue.verify(message.schemaOnly); + if (message.schemaOnly != null && Object.hasOwnProperty.call(message, "schemaOnly")) { + var error = $root.google.protobuf.BoolValue.verify(message.schemaOnly, long + 1); if (error) return "schemaOnly." + error; } - if (message.mysqlExportOptions != null && message.hasOwnProperty("mysqlExportOptions")) { - var error = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions.verify(message.mysqlExportOptions); + if (message.mysqlExportOptions != null && Object.hasOwnProperty.call(message, "mysqlExportOptions")) { + var error = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions.verify(message.mysqlExportOptions, long + 1); if (error) return "mysqlExportOptions." + error; } - if (message.threads != null && message.hasOwnProperty("threads")) { - var error = $root.google.protobuf.Int32Value.verify(message.threads); + if (message.threads != null && Object.hasOwnProperty.call(message, "threads")) { + var error = $root.google.protobuf.Int32Value.verify(message.threads, long + 1); if (error) return "threads." + error; } - if (message.parallel != null && message.hasOwnProperty("parallel")) { - var error = $root.google.protobuf.BoolValue.verify(message.parallel); + if (message.parallel != null && Object.hasOwnProperty.call(message, "parallel")) { + var error = $root.google.protobuf.BoolValue.verify(message.parallel, long + 1); if (error) return "parallel." + error; } - if (message.postgresExportOptions != null && message.hasOwnProperty("postgresExportOptions")) { - var error = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions.verify(message.postgresExportOptions); + if (message.postgresExportOptions != null && Object.hasOwnProperty.call(message, "postgresExportOptions")) { + var error = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions.verify(message.postgresExportOptions, long + 1); if (error) return "postgresExportOptions." + error; } @@ -8708,9 +9300,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ExportContext.SqlExportOptions} SqlExportOptions */ - SqlExportOptions.fromObject = function fromObject(object) { + SqlExportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ExportContext.SqlExportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ExportContext.SqlExportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ExportContext.SqlExportOptions(); if (object.tables) { if (!Array.isArray(object.tables)) @@ -8720,29 +9318,29 @@ message.tables[i] = String(object.tables[i]); } if (object.schemaOnly != null) { - if (typeof object.schemaOnly !== "object") + if (!$util.isObject(object.schemaOnly)) throw TypeError(".google.cloud.sql.v1.ExportContext.SqlExportOptions.schemaOnly: object expected"); - message.schemaOnly = $root.google.protobuf.BoolValue.fromObject(object.schemaOnly); + message.schemaOnly = $root.google.protobuf.BoolValue.fromObject(object.schemaOnly, long + 1); } if (object.mysqlExportOptions != null) { - if (typeof object.mysqlExportOptions !== "object") + if (!$util.isObject(object.mysqlExportOptions)) throw TypeError(".google.cloud.sql.v1.ExportContext.SqlExportOptions.mysqlExportOptions: object expected"); - message.mysqlExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions.fromObject(object.mysqlExportOptions); + message.mysqlExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions.fromObject(object.mysqlExportOptions, long + 1); } if (object.threads != null) { - if (typeof object.threads !== "object") + if (!$util.isObject(object.threads)) throw TypeError(".google.cloud.sql.v1.ExportContext.SqlExportOptions.threads: object expected"); - message.threads = $root.google.protobuf.Int32Value.fromObject(object.threads); + message.threads = $root.google.protobuf.Int32Value.fromObject(object.threads, long + 1); } if (object.parallel != null) { - if (typeof object.parallel !== "object") + if (!$util.isObject(object.parallel)) throw TypeError(".google.cloud.sql.v1.ExportContext.SqlExportOptions.parallel: object expected"); - message.parallel = $root.google.protobuf.BoolValue.fromObject(object.parallel); + message.parallel = $root.google.protobuf.BoolValue.fromObject(object.parallel, long + 1); } if (object.postgresExportOptions != null) { - if (typeof object.postgresExportOptions !== "object") + if (!$util.isObject(object.postgresExportOptions)) throw TypeError(".google.cloud.sql.v1.ExportContext.SqlExportOptions.postgresExportOptions: object expected"); - message.postgresExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions.fromObject(object.postgresExportOptions); + message.postgresExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions.fromObject(object.postgresExportOptions, long + 1); } return message; }; @@ -8756,9 +9354,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlExportOptions.toObject = function toObject(message, options) { + SqlExportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.tables = []; @@ -8774,16 +9376,16 @@ for (var j = 0; j < message.tables.length; ++j) object.tables[j] = message.tables[j]; } - if (message.schemaOnly != null && message.hasOwnProperty("schemaOnly")) - object.schemaOnly = $root.google.protobuf.BoolValue.toObject(message.schemaOnly, options); - if (message.mysqlExportOptions != null && message.hasOwnProperty("mysqlExportOptions")) - object.mysqlExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions.toObject(message.mysqlExportOptions, options); - if (message.threads != null && message.hasOwnProperty("threads")) - object.threads = $root.google.protobuf.Int32Value.toObject(message.threads, options); - if (message.parallel != null && message.hasOwnProperty("parallel")) - object.parallel = $root.google.protobuf.BoolValue.toObject(message.parallel, options); - if (message.postgresExportOptions != null && message.hasOwnProperty("postgresExportOptions")) - object.postgresExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions.toObject(message.postgresExportOptions, options); + if (message.schemaOnly != null && Object.hasOwnProperty.call(message, "schemaOnly")) + object.schemaOnly = $root.google.protobuf.BoolValue.toObject(message.schemaOnly, options, q + 1); + if (message.mysqlExportOptions != null && Object.hasOwnProperty.call(message, "mysqlExportOptions")) + object.mysqlExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions.toObject(message.mysqlExportOptions, options, q + 1); + if (message.threads != null && Object.hasOwnProperty.call(message, "threads")) + object.threads = $root.google.protobuf.Int32Value.toObject(message.threads, options, q + 1); + if (message.parallel != null && Object.hasOwnProperty.call(message, "parallel")) + object.parallel = $root.google.protobuf.BoolValue.toObject(message.parallel, options, q + 1); + if (message.postgresExportOptions != null && Object.hasOwnProperty.call(message, "postgresExportOptions")) + object.postgresExportOptions = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions.toObject(message.postgresExportOptions, options, q + 1); return object; }; @@ -8833,7 +9435,7 @@ function MysqlExportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -8866,11 +9468,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MysqlExportOptions.encode = function encode(message, writer) { + MysqlExportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.masterData != null && Object.hasOwnProperty.call(message, "masterData")) - $root.google.protobuf.Int32Value.encode(message.masterData, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.masterData, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -8884,7 +9490,7 @@ * @returns {$protobuf.Writer} Writer */ MysqlExportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -8898,9 +9504,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MysqlExportOptions.decode = function decode(reader, length, error) { + MysqlExportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -8908,11 +9518,11 @@ break; switch (tag >>> 3) { case 1: { - message.masterData = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.masterData = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -8943,11 +9553,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MysqlExportOptions.verify = function verify(message) { + MysqlExportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.masterData != null && message.hasOwnProperty("masterData")) { - var error = $root.google.protobuf.Int32Value.verify(message.masterData); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.masterData != null && Object.hasOwnProperty.call(message, "masterData")) { + var error = $root.google.protobuf.Int32Value.verify(message.masterData, long + 1); if (error) return "masterData." + error; } @@ -8962,14 +9576,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions} MysqlExportOptions */ - MysqlExportOptions.fromObject = function fromObject(object) { + MysqlExportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions(); if (object.masterData != null) { - if (typeof object.masterData !== "object") + if (!$util.isObject(object.masterData)) throw TypeError(".google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions.masterData: object expected"); - message.masterData = $root.google.protobuf.Int32Value.fromObject(object.masterData); + message.masterData = $root.google.protobuf.Int32Value.fromObject(object.masterData, long + 1); } return message; }; @@ -8983,14 +9603,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MysqlExportOptions.toObject = function toObject(message, options) { + MysqlExportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.masterData = null; - if (message.masterData != null && message.hasOwnProperty("masterData")) - object.masterData = $root.google.protobuf.Int32Value.toObject(message.masterData, options); + if (message.masterData != null && Object.hasOwnProperty.call(message, "masterData")) + object.masterData = $root.google.protobuf.Int32Value.toObject(message.masterData, options, q + 1); return object; }; @@ -9044,7 +9668,7 @@ function PostgresExportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -9085,13 +9709,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PostgresExportOptions.encode = function encode(message, writer) { + PostgresExportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.clean != null && Object.hasOwnProperty.call(message, "clean")) - $root.google.protobuf.BoolValue.encode(message.clean, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.clean, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.ifExists != null && Object.hasOwnProperty.call(message, "ifExists")) - $root.google.protobuf.BoolValue.encode(message.ifExists, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.ifExists, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -9105,7 +9733,7 @@ * @returns {$protobuf.Writer} Writer */ PostgresExportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -9119,9 +9747,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PostgresExportOptions.decode = function decode(reader, length, error) { + PostgresExportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -9129,15 +9761,15 @@ break; switch (tag >>> 3) { case 1: { - message.clean = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.clean = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.ifExists = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.ifExists = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -9168,16 +9800,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PostgresExportOptions.verify = function verify(message) { + PostgresExportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.clean != null && message.hasOwnProperty("clean")) { - var error = $root.google.protobuf.BoolValue.verify(message.clean); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.clean != null && Object.hasOwnProperty.call(message, "clean")) { + var error = $root.google.protobuf.BoolValue.verify(message.clean, long + 1); if (error) return "clean." + error; } - if (message.ifExists != null && message.hasOwnProperty("ifExists")) { - var error = $root.google.protobuf.BoolValue.verify(message.ifExists); + if (message.ifExists != null && Object.hasOwnProperty.call(message, "ifExists")) { + var error = $root.google.protobuf.BoolValue.verify(message.ifExists, long + 1); if (error) return "ifExists." + error; } @@ -9192,19 +9828,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions} PostgresExportOptions */ - PostgresExportOptions.fromObject = function fromObject(object) { + PostgresExportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions(); if (object.clean != null) { - if (typeof object.clean !== "object") + if (!$util.isObject(object.clean)) throw TypeError(".google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions.clean: object expected"); - message.clean = $root.google.protobuf.BoolValue.fromObject(object.clean); + message.clean = $root.google.protobuf.BoolValue.fromObject(object.clean, long + 1); } if (object.ifExists != null) { - if (typeof object.ifExists !== "object") + if (!$util.isObject(object.ifExists)) throw TypeError(".google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions.ifExists: object expected"); - message.ifExists = $root.google.protobuf.BoolValue.fromObject(object.ifExists); + message.ifExists = $root.google.protobuf.BoolValue.fromObject(object.ifExists, long + 1); } return message; }; @@ -9218,18 +9860,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PostgresExportOptions.toObject = function toObject(message, options) { + PostgresExportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.clean = null; object.ifExists = null; } - if (message.clean != null && message.hasOwnProperty("clean")) - object.clean = $root.google.protobuf.BoolValue.toObject(message.clean, options); - if (message.ifExists != null && message.hasOwnProperty("ifExists")) - object.ifExists = $root.google.protobuf.BoolValue.toObject(message.ifExists, options); + if (message.clean != null && Object.hasOwnProperty.call(message, "clean")) + object.clean = $root.google.protobuf.BoolValue.toObject(message.clean, options, q + 1); + if (message.ifExists != null && Object.hasOwnProperty.call(message, "ifExists")) + object.ifExists = $root.google.protobuf.BoolValue.toObject(message.ifExists, options, q + 1); return object; }; @@ -9291,7 +9937,7 @@ function SqlBakExportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -9372,23 +10018,27 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlBakExportOptions.encode = function encode(message, writer) { + SqlBakExportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.striped != null && Object.hasOwnProperty.call(message, "striped")) - $root.google.protobuf.BoolValue.encode(message.striped, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.striped, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.stripeCount != null && Object.hasOwnProperty.call(message, "stripeCount")) - $root.google.protobuf.Int32Value.encode(message.stripeCount, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.stripeCount, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.bakType != null && Object.hasOwnProperty.call(message, "bakType")) writer.uint32(/* id 4, wireType 0 =*/32).int32(message.bakType); if (message.copyOnly != null && Object.hasOwnProperty.call(message, "copyOnly")) - $root.google.protobuf.BoolValue.encode(message.copyOnly, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.copyOnly, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.differentialBase != null && Object.hasOwnProperty.call(message, "differentialBase")) - $root.google.protobuf.BoolValue.encode(message.differentialBase, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.differentialBase, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.exportLogStartTime != null && Object.hasOwnProperty.call(message, "exportLogStartTime")) - $root.google.protobuf.Timestamp.encode(message.exportLogStartTime, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.exportLogStartTime, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.exportLogEndTime != null && Object.hasOwnProperty.call(message, "exportLogEndTime")) - $root.google.protobuf.Timestamp.encode(message.exportLogEndTime, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.exportLogEndTime, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); return writer; }; @@ -9402,7 +10052,7 @@ * @returns {$protobuf.Writer} Writer */ SqlBakExportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -9416,9 +10066,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlBakExportOptions.decode = function decode(reader, length, error) { + SqlBakExportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ExportContext.SqlBakExportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -9426,11 +10080,11 @@ break; switch (tag >>> 3) { case 1: { - message.striped = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.striped = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.stripeCount = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.stripeCount = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { @@ -9438,23 +10092,23 @@ break; } case 5: { - message.copyOnly = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.copyOnly = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.differentialBase = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.differentialBase = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { - message.exportLogStartTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.exportLogStartTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.exportLogEndTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.exportLogEndTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -9485,20 +10139,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlBakExportOptions.verify = function verify(message) { + SqlBakExportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.striped != null && message.hasOwnProperty("striped")) { - var error = $root.google.protobuf.BoolValue.verify(message.striped); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.striped != null && Object.hasOwnProperty.call(message, "striped")) { + var error = $root.google.protobuf.BoolValue.verify(message.striped, long + 1); if (error) return "striped." + error; } - if (message.stripeCount != null && message.hasOwnProperty("stripeCount")) { - var error = $root.google.protobuf.Int32Value.verify(message.stripeCount); + if (message.stripeCount != null && Object.hasOwnProperty.call(message, "stripeCount")) { + var error = $root.google.protobuf.Int32Value.verify(message.stripeCount, long + 1); if (error) return "stripeCount." + error; } - if (message.bakType != null && message.hasOwnProperty("bakType")) + if (message.bakType != null && Object.hasOwnProperty.call(message, "bakType")) switch (message.bakType) { default: return "bakType: enum value expected"; @@ -9508,23 +10166,23 @@ case 3: break; } - if (message.copyOnly != null && message.hasOwnProperty("copyOnly")) { - var error = $root.google.protobuf.BoolValue.verify(message.copyOnly); + if (message.copyOnly != null && Object.hasOwnProperty.call(message, "copyOnly")) { + var error = $root.google.protobuf.BoolValue.verify(message.copyOnly, long + 1); if (error) return "copyOnly." + error; } - if (message.differentialBase != null && message.hasOwnProperty("differentialBase")) { - var error = $root.google.protobuf.BoolValue.verify(message.differentialBase); + if (message.differentialBase != null && Object.hasOwnProperty.call(message, "differentialBase")) { + var error = $root.google.protobuf.BoolValue.verify(message.differentialBase, long + 1); if (error) return "differentialBase." + error; } - if (message.exportLogStartTime != null && message.hasOwnProperty("exportLogStartTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.exportLogStartTime); + if (message.exportLogStartTime != null && Object.hasOwnProperty.call(message, "exportLogStartTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.exportLogStartTime, long + 1); if (error) return "exportLogStartTime." + error; } - if (message.exportLogEndTime != null && message.hasOwnProperty("exportLogEndTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.exportLogEndTime); + if (message.exportLogEndTime != null && Object.hasOwnProperty.call(message, "exportLogEndTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.exportLogEndTime, long + 1); if (error) return "exportLogEndTime." + error; } @@ -9539,19 +10197,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ExportContext.SqlBakExportOptions} SqlBakExportOptions */ - SqlBakExportOptions.fromObject = function fromObject(object) { + SqlBakExportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ExportContext.SqlBakExportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ExportContext.SqlBakExportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ExportContext.SqlBakExportOptions(); if (object.striped != null) { - if (typeof object.striped !== "object") + if (!$util.isObject(object.striped)) throw TypeError(".google.cloud.sql.v1.ExportContext.SqlBakExportOptions.striped: object expected"); - message.striped = $root.google.protobuf.BoolValue.fromObject(object.striped); + message.striped = $root.google.protobuf.BoolValue.fromObject(object.striped, long + 1); } if (object.stripeCount != null) { - if (typeof object.stripeCount !== "object") + if (!$util.isObject(object.stripeCount)) throw TypeError(".google.cloud.sql.v1.ExportContext.SqlBakExportOptions.stripeCount: object expected"); - message.stripeCount = $root.google.protobuf.Int32Value.fromObject(object.stripeCount); + message.stripeCount = $root.google.protobuf.Int32Value.fromObject(object.stripeCount, long + 1); } switch (object.bakType) { default: @@ -9578,24 +10242,24 @@ break; } if (object.copyOnly != null) { - if (typeof object.copyOnly !== "object") + if (!$util.isObject(object.copyOnly)) throw TypeError(".google.cloud.sql.v1.ExportContext.SqlBakExportOptions.copyOnly: object expected"); - message.copyOnly = $root.google.protobuf.BoolValue.fromObject(object.copyOnly); + message.copyOnly = $root.google.protobuf.BoolValue.fromObject(object.copyOnly, long + 1); } if (object.differentialBase != null) { - if (typeof object.differentialBase !== "object") + if (!$util.isObject(object.differentialBase)) throw TypeError(".google.cloud.sql.v1.ExportContext.SqlBakExportOptions.differentialBase: object expected"); - message.differentialBase = $root.google.protobuf.BoolValue.fromObject(object.differentialBase); + message.differentialBase = $root.google.protobuf.BoolValue.fromObject(object.differentialBase, long + 1); } if (object.exportLogStartTime != null) { - if (typeof object.exportLogStartTime !== "object") + if (!$util.isObject(object.exportLogStartTime)) throw TypeError(".google.cloud.sql.v1.ExportContext.SqlBakExportOptions.exportLogStartTime: object expected"); - message.exportLogStartTime = $root.google.protobuf.Timestamp.fromObject(object.exportLogStartTime); + message.exportLogStartTime = $root.google.protobuf.Timestamp.fromObject(object.exportLogStartTime, long + 1); } if (object.exportLogEndTime != null) { - if (typeof object.exportLogEndTime !== "object") + if (!$util.isObject(object.exportLogEndTime)) throw TypeError(".google.cloud.sql.v1.ExportContext.SqlBakExportOptions.exportLogEndTime: object expected"); - message.exportLogEndTime = $root.google.protobuf.Timestamp.fromObject(object.exportLogEndTime); + message.exportLogEndTime = $root.google.protobuf.Timestamp.fromObject(object.exportLogEndTime, long + 1); } return message; }; @@ -9609,9 +10273,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlBakExportOptions.toObject = function toObject(message, options) { + SqlBakExportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.striped = null; @@ -9622,20 +10290,20 @@ object.exportLogStartTime = null; object.exportLogEndTime = null; } - if (message.striped != null && message.hasOwnProperty("striped")) - object.striped = $root.google.protobuf.BoolValue.toObject(message.striped, options); - if (message.stripeCount != null && message.hasOwnProperty("stripeCount")) - object.stripeCount = $root.google.protobuf.Int32Value.toObject(message.stripeCount, options); - if (message.bakType != null && message.hasOwnProperty("bakType")) + if (message.striped != null && Object.hasOwnProperty.call(message, "striped")) + object.striped = $root.google.protobuf.BoolValue.toObject(message.striped, options, q + 1); + if (message.stripeCount != null && Object.hasOwnProperty.call(message, "stripeCount")) + object.stripeCount = $root.google.protobuf.Int32Value.toObject(message.stripeCount, options, q + 1); + if (message.bakType != null && Object.hasOwnProperty.call(message, "bakType")) object.bakType = options.enums === String ? $root.google.cloud.sql.v1.BakType[message.bakType] === undefined ? message.bakType : $root.google.cloud.sql.v1.BakType[message.bakType] : message.bakType; - if (message.copyOnly != null && message.hasOwnProperty("copyOnly")) - object.copyOnly = $root.google.protobuf.BoolValue.toObject(message.copyOnly, options); - if (message.differentialBase != null && message.hasOwnProperty("differentialBase")) - object.differentialBase = $root.google.protobuf.BoolValue.toObject(message.differentialBase, options); - if (message.exportLogStartTime != null && message.hasOwnProperty("exportLogStartTime")) - object.exportLogStartTime = $root.google.protobuf.Timestamp.toObject(message.exportLogStartTime, options); - if (message.exportLogEndTime != null && message.hasOwnProperty("exportLogEndTime")) - object.exportLogEndTime = $root.google.protobuf.Timestamp.toObject(message.exportLogEndTime, options); + if (message.copyOnly != null && Object.hasOwnProperty.call(message, "copyOnly")) + object.copyOnly = $root.google.protobuf.BoolValue.toObject(message.copyOnly, options, q + 1); + if (message.differentialBase != null && Object.hasOwnProperty.call(message, "differentialBase")) + object.differentialBase = $root.google.protobuf.BoolValue.toObject(message.differentialBase, options, q + 1); + if (message.exportLogStartTime != null && Object.hasOwnProperty.call(message, "exportLogStartTime")) + object.exportLogStartTime = $root.google.protobuf.Timestamp.toObject(message.exportLogStartTime, options, q + 1); + if (message.exportLogEndTime != null && Object.hasOwnProperty.call(message, "exportLogEndTime")) + object.exportLogEndTime = $root.google.protobuf.Timestamp.toObject(message.exportLogEndTime, options, q + 1); return object; }; @@ -9691,7 +10359,7 @@ function SqlTdeExportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -9748,9 +10416,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlTdeExportOptions.encode = function encode(message, writer) { + SqlTdeExportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.certificatePath != null && Object.hasOwnProperty.call(message, "certificatePath")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.certificatePath); if (message.privateKeyPath != null && Object.hasOwnProperty.call(message, "privateKeyPath")) @@ -9772,7 +10444,7 @@ * @returns {$protobuf.Writer} Writer */ SqlTdeExportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -9786,9 +10458,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlTdeExportOptions.decode = function decode(reader, length, error) { + SqlTdeExportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ExportContext.SqlTdeExportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -9812,7 +10488,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -9843,19 +10519,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlTdeExportOptions.verify = function verify(message) { + SqlTdeExportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.certificatePath != null && message.hasOwnProperty("certificatePath")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.certificatePath != null && Object.hasOwnProperty.call(message, "certificatePath")) if (!$util.isString(message.certificatePath)) return "certificatePath: string expected"; - if (message.privateKeyPath != null && message.hasOwnProperty("privateKeyPath")) + if (message.privateKeyPath != null && Object.hasOwnProperty.call(message, "privateKeyPath")) if (!$util.isString(message.privateKeyPath)) return "privateKeyPath: string expected"; - if (message.privateKeyPassword != null && message.hasOwnProperty("privateKeyPassword")) + if (message.privateKeyPassword != null && Object.hasOwnProperty.call(message, "privateKeyPassword")) if (!$util.isString(message.privateKeyPassword)) return "privateKeyPassword: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; return null; @@ -9869,9 +10549,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ExportContext.SqlTdeExportOptions} SqlTdeExportOptions */ - SqlTdeExportOptions.fromObject = function fromObject(object) { + SqlTdeExportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ExportContext.SqlTdeExportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ExportContext.SqlTdeExportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ExportContext.SqlTdeExportOptions(); if (object.certificatePath != null) message.certificatePath = String(object.certificatePath); @@ -9893,9 +10579,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlTdeExportOptions.toObject = function toObject(message, options) { + SqlTdeExportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.certificatePath = ""; @@ -9903,13 +10593,13 @@ object.privateKeyPassword = ""; object.name = ""; } - if (message.certificatePath != null && message.hasOwnProperty("certificatePath")) + if (message.certificatePath != null && Object.hasOwnProperty.call(message, "certificatePath")) object.certificatePath = message.certificatePath; - if (message.privateKeyPath != null && message.hasOwnProperty("privateKeyPath")) + if (message.privateKeyPath != null && Object.hasOwnProperty.call(message, "privateKeyPath")) object.privateKeyPath = message.privateKeyPath; - if (message.privateKeyPassword != null && message.hasOwnProperty("privateKeyPassword")) + if (message.privateKeyPassword != null && Object.hasOwnProperty.call(message, "privateKeyPassword")) object.privateKeyPassword = message.privateKeyPassword; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; return object; }; @@ -9974,7 +10664,7 @@ function ImportContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -10071,9 +10761,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ImportContext.encode = function encode(message, writer) { + ImportContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.uri != null && Object.hasOwnProperty.call(message, "uri")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.uri); if (message.database != null && Object.hasOwnProperty.call(message, "database")) @@ -10083,15 +10777,15 @@ if (message.fileType != null && Object.hasOwnProperty.call(message, "fileType")) writer.uint32(/* id 4, wireType 0 =*/32).int32(message.fileType); if (message.csvImportOptions != null && Object.hasOwnProperty.call(message, "csvImportOptions")) - $root.google.cloud.sql.v1.ImportContext.SqlCsvImportOptions.encode(message.csvImportOptions, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.cloud.sql.v1.ImportContext.SqlCsvImportOptions.encode(message.csvImportOptions, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.importUser != null && Object.hasOwnProperty.call(message, "importUser")) writer.uint32(/* id 6, wireType 2 =*/50).string(message.importUser); if (message.bakImportOptions != null && Object.hasOwnProperty.call(message, "bakImportOptions")) - $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.encode(message.bakImportOptions, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.encode(message.bakImportOptions, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.sqlImportOptions != null && Object.hasOwnProperty.call(message, "sqlImportOptions")) - $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.encode(message.sqlImportOptions, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.encode(message.sqlImportOptions, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); if (message.tdeImportOptions != null && Object.hasOwnProperty.call(message, "tdeImportOptions")) - $root.google.cloud.sql.v1.ImportContext.SqlTdeImportOptions.encode(message.tdeImportOptions, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.cloud.sql.v1.ImportContext.SqlTdeImportOptions.encode(message.tdeImportOptions, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); return writer; }; @@ -10105,7 +10799,7 @@ * @returns {$protobuf.Writer} Writer */ ImportContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -10119,9 +10813,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ImportContext.decode = function decode(reader, length, error) { + ImportContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ImportContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -10145,7 +10843,7 @@ break; } case 5: { - message.csvImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlCsvImportOptions.decode(reader, reader.uint32()); + message.csvImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlCsvImportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { @@ -10153,19 +10851,19 @@ break; } case 7: { - message.bakImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.decode(reader, reader.uint32()); + message.bakImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.sqlImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.decode(reader, reader.uint32()); + message.sqlImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { - message.tdeImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlTdeImportOptions.decode(reader, reader.uint32()); + message.tdeImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlTdeImportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -10196,19 +10894,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ImportContext.verify = function verify(message) { + ImportContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.uri != null && message.hasOwnProperty("uri")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.uri != null && Object.hasOwnProperty.call(message, "uri")) if (!$util.isString(message.uri)) return "uri: string expected"; - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) if (!$util.isString(message.database)) return "database: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.fileType != null && message.hasOwnProperty("fileType")) + if (message.fileType != null && Object.hasOwnProperty.call(message, "fileType")) switch (message.fileType) { default: return "fileType: enum value expected"; @@ -10219,26 +10921,26 @@ case 8: break; } - if (message.csvImportOptions != null && message.hasOwnProperty("csvImportOptions")) { - var error = $root.google.cloud.sql.v1.ImportContext.SqlCsvImportOptions.verify(message.csvImportOptions); + if (message.csvImportOptions != null && Object.hasOwnProperty.call(message, "csvImportOptions")) { + var error = $root.google.cloud.sql.v1.ImportContext.SqlCsvImportOptions.verify(message.csvImportOptions, long + 1); if (error) return "csvImportOptions." + error; } - if (message.importUser != null && message.hasOwnProperty("importUser")) + if (message.importUser != null && Object.hasOwnProperty.call(message, "importUser")) if (!$util.isString(message.importUser)) return "importUser: string expected"; - if (message.bakImportOptions != null && message.hasOwnProperty("bakImportOptions")) { - var error = $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.verify(message.bakImportOptions); + if (message.bakImportOptions != null && Object.hasOwnProperty.call(message, "bakImportOptions")) { + var error = $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.verify(message.bakImportOptions, long + 1); if (error) return "bakImportOptions." + error; } - if (message.sqlImportOptions != null && message.hasOwnProperty("sqlImportOptions")) { - var error = $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.verify(message.sqlImportOptions); + if (message.sqlImportOptions != null && Object.hasOwnProperty.call(message, "sqlImportOptions")) { + var error = $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.verify(message.sqlImportOptions, long + 1); if (error) return "sqlImportOptions." + error; } - if (message.tdeImportOptions != null && message.hasOwnProperty("tdeImportOptions")) { - var error = $root.google.cloud.sql.v1.ImportContext.SqlTdeImportOptions.verify(message.tdeImportOptions); + if (message.tdeImportOptions != null && Object.hasOwnProperty.call(message, "tdeImportOptions")) { + var error = $root.google.cloud.sql.v1.ImportContext.SqlTdeImportOptions.verify(message.tdeImportOptions, long + 1); if (error) return "tdeImportOptions." + error; } @@ -10253,9 +10955,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ImportContext} ImportContext */ - ImportContext.fromObject = function fromObject(object) { + ImportContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ImportContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ImportContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ImportContext(); if (object.uri != null) message.uri = String(object.uri); @@ -10292,26 +11000,26 @@ break; } if (object.csvImportOptions != null) { - if (typeof object.csvImportOptions !== "object") + if (!$util.isObject(object.csvImportOptions)) throw TypeError(".google.cloud.sql.v1.ImportContext.csvImportOptions: object expected"); - message.csvImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlCsvImportOptions.fromObject(object.csvImportOptions); + message.csvImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlCsvImportOptions.fromObject(object.csvImportOptions, long + 1); } if (object.importUser != null) message.importUser = String(object.importUser); if (object.bakImportOptions != null) { - if (typeof object.bakImportOptions !== "object") + if (!$util.isObject(object.bakImportOptions)) throw TypeError(".google.cloud.sql.v1.ImportContext.bakImportOptions: object expected"); - message.bakImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.fromObject(object.bakImportOptions); + message.bakImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.fromObject(object.bakImportOptions, long + 1); } if (object.sqlImportOptions != null) { - if (typeof object.sqlImportOptions !== "object") + if (!$util.isObject(object.sqlImportOptions)) throw TypeError(".google.cloud.sql.v1.ImportContext.sqlImportOptions: object expected"); - message.sqlImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.fromObject(object.sqlImportOptions); + message.sqlImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.fromObject(object.sqlImportOptions, long + 1); } if (object.tdeImportOptions != null) { - if (typeof object.tdeImportOptions !== "object") + if (!$util.isObject(object.tdeImportOptions)) throw TypeError(".google.cloud.sql.v1.ImportContext.tdeImportOptions: object expected"); - message.tdeImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlTdeImportOptions.fromObject(object.tdeImportOptions); + message.tdeImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlTdeImportOptions.fromObject(object.tdeImportOptions, long + 1); } return message; }; @@ -10325,9 +11033,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ImportContext.toObject = function toObject(message, options) { + ImportContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.uri = ""; @@ -10340,24 +11052,24 @@ object.sqlImportOptions = null; object.tdeImportOptions = null; } - if (message.uri != null && message.hasOwnProperty("uri")) + if (message.uri != null && Object.hasOwnProperty.call(message, "uri")) object.uri = message.uri; - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) object.database = message.database; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.fileType != null && message.hasOwnProperty("fileType")) + if (message.fileType != null && Object.hasOwnProperty.call(message, "fileType")) object.fileType = options.enums === String ? $root.google.cloud.sql.v1.SqlFileType[message.fileType] === undefined ? message.fileType : $root.google.cloud.sql.v1.SqlFileType[message.fileType] : message.fileType; - if (message.csvImportOptions != null && message.hasOwnProperty("csvImportOptions")) - object.csvImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlCsvImportOptions.toObject(message.csvImportOptions, options); - if (message.importUser != null && message.hasOwnProperty("importUser")) + if (message.csvImportOptions != null && Object.hasOwnProperty.call(message, "csvImportOptions")) + object.csvImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlCsvImportOptions.toObject(message.csvImportOptions, options, q + 1); + if (message.importUser != null && Object.hasOwnProperty.call(message, "importUser")) object.importUser = message.importUser; - if (message.bakImportOptions != null && message.hasOwnProperty("bakImportOptions")) - object.bakImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.toObject(message.bakImportOptions, options); - if (message.sqlImportOptions != null && message.hasOwnProperty("sqlImportOptions")) - object.sqlImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.toObject(message.sqlImportOptions, options); - if (message.tdeImportOptions != null && message.hasOwnProperty("tdeImportOptions")) - object.tdeImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlTdeImportOptions.toObject(message.tdeImportOptions, options); + if (message.bakImportOptions != null && Object.hasOwnProperty.call(message, "bakImportOptions")) + object.bakImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.toObject(message.bakImportOptions, options, q + 1); + if (message.sqlImportOptions != null && Object.hasOwnProperty.call(message, "sqlImportOptions")) + object.sqlImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.toObject(message.sqlImportOptions, options, q + 1); + if (message.tdeImportOptions != null && Object.hasOwnProperty.call(message, "tdeImportOptions")) + object.tdeImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlTdeImportOptions.toObject(message.tdeImportOptions, options, q + 1); return object; }; @@ -10409,7 +11121,7 @@ function SqlImportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -10458,15 +11170,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlImportOptions.encode = function encode(message, writer) { + SqlImportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.threads != null && Object.hasOwnProperty.call(message, "threads")) - $root.google.protobuf.Int32Value.encode(message.threads, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.threads, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.parallel != null && Object.hasOwnProperty.call(message, "parallel")) - $root.google.protobuf.BoolValue.encode(message.parallel, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.parallel, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.postgresImportOptions != null && Object.hasOwnProperty.call(message, "postgresImportOptions")) - $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions.encode(message.postgresImportOptions, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions.encode(message.postgresImportOptions, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -10480,7 +11196,7 @@ * @returns {$protobuf.Writer} Writer */ SqlImportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -10494,9 +11210,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlImportOptions.decode = function decode(reader, length, error) { + SqlImportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ImportContext.SqlImportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -10504,19 +11224,19 @@ break; switch (tag >>> 3) { case 1: { - message.threads = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.threads = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.parallel = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.parallel = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { - message.postgresImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions.decode(reader, reader.uint32()); + message.postgresImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -10547,21 +11267,25 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlImportOptions.verify = function verify(message) { + SqlImportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.threads != null && message.hasOwnProperty("threads")) { - var error = $root.google.protobuf.Int32Value.verify(message.threads); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.threads != null && Object.hasOwnProperty.call(message, "threads")) { + var error = $root.google.protobuf.Int32Value.verify(message.threads, long + 1); if (error) return "threads." + error; } - if (message.parallel != null && message.hasOwnProperty("parallel")) { - var error = $root.google.protobuf.BoolValue.verify(message.parallel); + if (message.parallel != null && Object.hasOwnProperty.call(message, "parallel")) { + var error = $root.google.protobuf.BoolValue.verify(message.parallel, long + 1); if (error) return "parallel." + error; } - if (message.postgresImportOptions != null && message.hasOwnProperty("postgresImportOptions")) { - var error = $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions.verify(message.postgresImportOptions); + if (message.postgresImportOptions != null && Object.hasOwnProperty.call(message, "postgresImportOptions")) { + var error = $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions.verify(message.postgresImportOptions, long + 1); if (error) return "postgresImportOptions." + error; } @@ -10576,24 +11300,30 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ImportContext.SqlImportOptions} SqlImportOptions */ - SqlImportOptions.fromObject = function fromObject(object) { + SqlImportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ImportContext.SqlImportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ImportContext.SqlImportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ImportContext.SqlImportOptions(); if (object.threads != null) { - if (typeof object.threads !== "object") + if (!$util.isObject(object.threads)) throw TypeError(".google.cloud.sql.v1.ImportContext.SqlImportOptions.threads: object expected"); - message.threads = $root.google.protobuf.Int32Value.fromObject(object.threads); + message.threads = $root.google.protobuf.Int32Value.fromObject(object.threads, long + 1); } if (object.parallel != null) { - if (typeof object.parallel !== "object") + if (!$util.isObject(object.parallel)) throw TypeError(".google.cloud.sql.v1.ImportContext.SqlImportOptions.parallel: object expected"); - message.parallel = $root.google.protobuf.BoolValue.fromObject(object.parallel); + message.parallel = $root.google.protobuf.BoolValue.fromObject(object.parallel, long + 1); } if (object.postgresImportOptions != null) { - if (typeof object.postgresImportOptions !== "object") + if (!$util.isObject(object.postgresImportOptions)) throw TypeError(".google.cloud.sql.v1.ImportContext.SqlImportOptions.postgresImportOptions: object expected"); - message.postgresImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions.fromObject(object.postgresImportOptions); + message.postgresImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions.fromObject(object.postgresImportOptions, long + 1); } return message; }; @@ -10607,21 +11337,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlImportOptions.toObject = function toObject(message, options) { + SqlImportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.threads = null; object.parallel = null; object.postgresImportOptions = null; } - if (message.threads != null && message.hasOwnProperty("threads")) - object.threads = $root.google.protobuf.Int32Value.toObject(message.threads, options); - if (message.parallel != null && message.hasOwnProperty("parallel")) - object.parallel = $root.google.protobuf.BoolValue.toObject(message.parallel, options); - if (message.postgresImportOptions != null && message.hasOwnProperty("postgresImportOptions")) - object.postgresImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions.toObject(message.postgresImportOptions, options); + if (message.threads != null && Object.hasOwnProperty.call(message, "threads")) + object.threads = $root.google.protobuf.Int32Value.toObject(message.threads, options, q + 1); + if (message.parallel != null && Object.hasOwnProperty.call(message, "parallel")) + object.parallel = $root.google.protobuf.BoolValue.toObject(message.parallel, options, q + 1); + if (message.postgresImportOptions != null && Object.hasOwnProperty.call(message, "postgresImportOptions")) + object.postgresImportOptions = $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions.toObject(message.postgresImportOptions, options, q + 1); return object; }; @@ -10672,7 +11406,7 @@ function PostgresImportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -10713,13 +11447,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PostgresImportOptions.encode = function encode(message, writer) { + PostgresImportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.clean != null && Object.hasOwnProperty.call(message, "clean")) - $root.google.protobuf.BoolValue.encode(message.clean, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.clean, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.ifExists != null && Object.hasOwnProperty.call(message, "ifExists")) - $root.google.protobuf.BoolValue.encode(message.ifExists, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.ifExists, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -10733,7 +11471,7 @@ * @returns {$protobuf.Writer} Writer */ PostgresImportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -10747,9 +11485,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PostgresImportOptions.decode = function decode(reader, length, error) { + PostgresImportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -10757,15 +11499,15 @@ break; switch (tag >>> 3) { case 1: { - message.clean = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.clean = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.ifExists = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.ifExists = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -10796,16 +11538,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PostgresImportOptions.verify = function verify(message) { + PostgresImportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.clean != null && message.hasOwnProperty("clean")) { - var error = $root.google.protobuf.BoolValue.verify(message.clean); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.clean != null && Object.hasOwnProperty.call(message, "clean")) { + var error = $root.google.protobuf.BoolValue.verify(message.clean, long + 1); if (error) return "clean." + error; } - if (message.ifExists != null && message.hasOwnProperty("ifExists")) { - var error = $root.google.protobuf.BoolValue.verify(message.ifExists); + if (message.ifExists != null && Object.hasOwnProperty.call(message, "ifExists")) { + var error = $root.google.protobuf.BoolValue.verify(message.ifExists, long + 1); if (error) return "ifExists." + error; } @@ -10820,19 +11566,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions} PostgresImportOptions */ - PostgresImportOptions.fromObject = function fromObject(object) { + PostgresImportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions(); if (object.clean != null) { - if (typeof object.clean !== "object") + if (!$util.isObject(object.clean)) throw TypeError(".google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions.clean: object expected"); - message.clean = $root.google.protobuf.BoolValue.fromObject(object.clean); + message.clean = $root.google.protobuf.BoolValue.fromObject(object.clean, long + 1); } if (object.ifExists != null) { - if (typeof object.ifExists !== "object") + if (!$util.isObject(object.ifExists)) throw TypeError(".google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions.ifExists: object expected"); - message.ifExists = $root.google.protobuf.BoolValue.fromObject(object.ifExists); + message.ifExists = $root.google.protobuf.BoolValue.fromObject(object.ifExists, long + 1); } return message; }; @@ -10846,18 +11598,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PostgresImportOptions.toObject = function toObject(message, options) { + PostgresImportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.clean = null; object.ifExists = null; } - if (message.clean != null && message.hasOwnProperty("clean")) - object.clean = $root.google.protobuf.BoolValue.toObject(message.clean, options); - if (message.ifExists != null && message.hasOwnProperty("ifExists")) - object.ifExists = $root.google.protobuf.BoolValue.toObject(message.ifExists, options); + if (message.clean != null && Object.hasOwnProperty.call(message, "clean")) + object.clean = $root.google.protobuf.BoolValue.toObject(message.clean, options, q + 1); + if (message.ifExists != null && Object.hasOwnProperty.call(message, "ifExists")) + object.ifExists = $root.google.protobuf.BoolValue.toObject(message.ifExists, options, q + 1); return object; }; @@ -10919,7 +11675,7 @@ this.columns = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -10992,9 +11748,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlCsvImportOptions.encode = function encode(message, writer) { + SqlCsvImportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.table != null && Object.hasOwnProperty.call(message, "table")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.table); if (message.columns != null && message.columns.length) @@ -11021,7 +11781,7 @@ * @returns {$protobuf.Writer} Writer */ SqlCsvImportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -11035,9 +11795,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlCsvImportOptions.decode = function decode(reader, length, error) { + SqlCsvImportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ImportContext.SqlCsvImportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -11071,7 +11835,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11102,29 +11866,33 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlCsvImportOptions.verify = function verify(message) { + SqlCsvImportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.table != null && message.hasOwnProperty("table")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.table != null && Object.hasOwnProperty.call(message, "table")) if (!$util.isString(message.table)) return "table: string expected"; - if (message.columns != null && message.hasOwnProperty("columns")) { + if (message.columns != null && Object.hasOwnProperty.call(message, "columns")) { if (!Array.isArray(message.columns)) return "columns: array expected"; for (var i = 0; i < message.columns.length; ++i) if (!$util.isString(message.columns[i])) return "columns: string[] expected"; } - if (message.escapeCharacter != null && message.hasOwnProperty("escapeCharacter")) + if (message.escapeCharacter != null && Object.hasOwnProperty.call(message, "escapeCharacter")) if (!$util.isString(message.escapeCharacter)) return "escapeCharacter: string expected"; - if (message.quoteCharacter != null && message.hasOwnProperty("quoteCharacter")) + if (message.quoteCharacter != null && Object.hasOwnProperty.call(message, "quoteCharacter")) if (!$util.isString(message.quoteCharacter)) return "quoteCharacter: string expected"; - if (message.fieldsTerminatedBy != null && message.hasOwnProperty("fieldsTerminatedBy")) + if (message.fieldsTerminatedBy != null && Object.hasOwnProperty.call(message, "fieldsTerminatedBy")) if (!$util.isString(message.fieldsTerminatedBy)) return "fieldsTerminatedBy: string expected"; - if (message.linesTerminatedBy != null && message.hasOwnProperty("linesTerminatedBy")) + if (message.linesTerminatedBy != null && Object.hasOwnProperty.call(message, "linesTerminatedBy")) if (!$util.isString(message.linesTerminatedBy)) return "linesTerminatedBy: string expected"; return null; @@ -11138,9 +11906,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ImportContext.SqlCsvImportOptions} SqlCsvImportOptions */ - SqlCsvImportOptions.fromObject = function fromObject(object) { + SqlCsvImportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ImportContext.SqlCsvImportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ImportContext.SqlCsvImportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ImportContext.SqlCsvImportOptions(); if (object.table != null) message.table = String(object.table); @@ -11171,9 +11945,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlCsvImportOptions.toObject = function toObject(message, options) { + SqlCsvImportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.columns = []; @@ -11184,20 +11962,20 @@ object.fieldsTerminatedBy = ""; object.linesTerminatedBy = ""; } - if (message.table != null && message.hasOwnProperty("table")) + if (message.table != null && Object.hasOwnProperty.call(message, "table")) object.table = message.table; if (message.columns && message.columns.length) { object.columns = []; for (var j = 0; j < message.columns.length; ++j) object.columns[j] = message.columns[j]; } - if (message.escapeCharacter != null && message.hasOwnProperty("escapeCharacter")) + if (message.escapeCharacter != null && Object.hasOwnProperty.call(message, "escapeCharacter")) object.escapeCharacter = message.escapeCharacter; - if (message.quoteCharacter != null && message.hasOwnProperty("quoteCharacter")) + if (message.quoteCharacter != null && Object.hasOwnProperty.call(message, "quoteCharacter")) object.quoteCharacter = message.quoteCharacter; - if (message.fieldsTerminatedBy != null && message.hasOwnProperty("fieldsTerminatedBy")) + if (message.fieldsTerminatedBy != null && Object.hasOwnProperty.call(message, "fieldsTerminatedBy")) object.fieldsTerminatedBy = message.fieldsTerminatedBy; - if (message.linesTerminatedBy != null && message.hasOwnProperty("linesTerminatedBy")) + if (message.linesTerminatedBy != null && Object.hasOwnProperty.call(message, "linesTerminatedBy")) object.linesTerminatedBy = message.linesTerminatedBy; return object; }; @@ -11257,7 +12035,7 @@ function SqlBakImportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -11338,21 +12116,25 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlBakImportOptions.encode = function encode(message, writer) { + SqlBakImportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.encryptionOptions != null && Object.hasOwnProperty.call(message, "encryptionOptions")) - $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions.encode(message.encryptionOptions, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions.encode(message.encryptionOptions, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.striped != null && Object.hasOwnProperty.call(message, "striped")) - $root.google.protobuf.BoolValue.encode(message.striped, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.striped, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.noRecovery != null && Object.hasOwnProperty.call(message, "noRecovery")) - $root.google.protobuf.BoolValue.encode(message.noRecovery, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.noRecovery, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.recoveryOnly != null && Object.hasOwnProperty.call(message, "recoveryOnly")) - $root.google.protobuf.BoolValue.encode(message.recoveryOnly, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.recoveryOnly, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.bakType != null && Object.hasOwnProperty.call(message, "bakType")) writer.uint32(/* id 6, wireType 0 =*/48).int32(message.bakType); if (message.stopAt != null && Object.hasOwnProperty.call(message, "stopAt")) - $root.google.protobuf.Timestamp.encode(message.stopAt, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.stopAt, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.stopAtMark != null && Object.hasOwnProperty.call(message, "stopAtMark")) writer.uint32(/* id 8, wireType 2 =*/66).string(message.stopAtMark); return writer; @@ -11368,7 +12150,7 @@ * @returns {$protobuf.Writer} Writer */ SqlBakImportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -11382,9 +12164,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlBakImportOptions.decode = function decode(reader, length, error) { + SqlBakImportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -11392,19 +12178,19 @@ break; switch (tag >>> 3) { case 1: { - message.encryptionOptions = $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions.decode(reader, reader.uint32()); + message.encryptionOptions = $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.striped = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.striped = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { - message.noRecovery = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.noRecovery = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.recoveryOnly = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.recoveryOnly = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { @@ -11412,7 +12198,7 @@ break; } case 7: { - message.stopAt = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.stopAt = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { @@ -11420,7 +12206,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11451,30 +12237,34 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlBakImportOptions.verify = function verify(message) { + SqlBakImportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.encryptionOptions != null && message.hasOwnProperty("encryptionOptions")) { - var error = $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions.verify(message.encryptionOptions); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.encryptionOptions != null && Object.hasOwnProperty.call(message, "encryptionOptions")) { + var error = $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions.verify(message.encryptionOptions, long + 1); if (error) return "encryptionOptions." + error; } - if (message.striped != null && message.hasOwnProperty("striped")) { - var error = $root.google.protobuf.BoolValue.verify(message.striped); + if (message.striped != null && Object.hasOwnProperty.call(message, "striped")) { + var error = $root.google.protobuf.BoolValue.verify(message.striped, long + 1); if (error) return "striped." + error; } - if (message.noRecovery != null && message.hasOwnProperty("noRecovery")) { - var error = $root.google.protobuf.BoolValue.verify(message.noRecovery); + if (message.noRecovery != null && Object.hasOwnProperty.call(message, "noRecovery")) { + var error = $root.google.protobuf.BoolValue.verify(message.noRecovery, long + 1); if (error) return "noRecovery." + error; } - if (message.recoveryOnly != null && message.hasOwnProperty("recoveryOnly")) { - var error = $root.google.protobuf.BoolValue.verify(message.recoveryOnly); + if (message.recoveryOnly != null && Object.hasOwnProperty.call(message, "recoveryOnly")) { + var error = $root.google.protobuf.BoolValue.verify(message.recoveryOnly, long + 1); if (error) return "recoveryOnly." + error; } - if (message.bakType != null && message.hasOwnProperty("bakType")) + if (message.bakType != null && Object.hasOwnProperty.call(message, "bakType")) switch (message.bakType) { default: return "bakType: enum value expected"; @@ -11484,12 +12274,12 @@ case 3: break; } - if (message.stopAt != null && message.hasOwnProperty("stopAt")) { - var error = $root.google.protobuf.Timestamp.verify(message.stopAt); + if (message.stopAt != null && Object.hasOwnProperty.call(message, "stopAt")) { + var error = $root.google.protobuf.Timestamp.verify(message.stopAt, long + 1); if (error) return "stopAt." + error; } - if (message.stopAtMark != null && message.hasOwnProperty("stopAtMark")) + if (message.stopAtMark != null && Object.hasOwnProperty.call(message, "stopAtMark")) if (!$util.isString(message.stopAtMark)) return "stopAtMark: string expected"; return null; @@ -11503,29 +12293,35 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ImportContext.SqlBakImportOptions} SqlBakImportOptions */ - SqlBakImportOptions.fromObject = function fromObject(object) { + SqlBakImportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ImportContext.SqlBakImportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions(); if (object.encryptionOptions != null) { - if (typeof object.encryptionOptions !== "object") + if (!$util.isObject(object.encryptionOptions)) throw TypeError(".google.cloud.sql.v1.ImportContext.SqlBakImportOptions.encryptionOptions: object expected"); - message.encryptionOptions = $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions.fromObject(object.encryptionOptions); + message.encryptionOptions = $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions.fromObject(object.encryptionOptions, long + 1); } if (object.striped != null) { - if (typeof object.striped !== "object") + if (!$util.isObject(object.striped)) throw TypeError(".google.cloud.sql.v1.ImportContext.SqlBakImportOptions.striped: object expected"); - message.striped = $root.google.protobuf.BoolValue.fromObject(object.striped); + message.striped = $root.google.protobuf.BoolValue.fromObject(object.striped, long + 1); } if (object.noRecovery != null) { - if (typeof object.noRecovery !== "object") + if (!$util.isObject(object.noRecovery)) throw TypeError(".google.cloud.sql.v1.ImportContext.SqlBakImportOptions.noRecovery: object expected"); - message.noRecovery = $root.google.protobuf.BoolValue.fromObject(object.noRecovery); + message.noRecovery = $root.google.protobuf.BoolValue.fromObject(object.noRecovery, long + 1); } if (object.recoveryOnly != null) { - if (typeof object.recoveryOnly !== "object") + if (!$util.isObject(object.recoveryOnly)) throw TypeError(".google.cloud.sql.v1.ImportContext.SqlBakImportOptions.recoveryOnly: object expected"); - message.recoveryOnly = $root.google.protobuf.BoolValue.fromObject(object.recoveryOnly); + message.recoveryOnly = $root.google.protobuf.BoolValue.fromObject(object.recoveryOnly, long + 1); } switch (object.bakType) { default: @@ -11552,9 +12348,9 @@ break; } if (object.stopAt != null) { - if (typeof object.stopAt !== "object") + if (!$util.isObject(object.stopAt)) throw TypeError(".google.cloud.sql.v1.ImportContext.SqlBakImportOptions.stopAt: object expected"); - message.stopAt = $root.google.protobuf.Timestamp.fromObject(object.stopAt); + message.stopAt = $root.google.protobuf.Timestamp.fromObject(object.stopAt, long + 1); } if (object.stopAtMark != null) message.stopAtMark = String(object.stopAtMark); @@ -11570,9 +12366,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlBakImportOptions.toObject = function toObject(message, options) { + SqlBakImportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.encryptionOptions = null; @@ -11583,19 +12383,19 @@ object.stopAt = null; object.stopAtMark = ""; } - if (message.encryptionOptions != null && message.hasOwnProperty("encryptionOptions")) - object.encryptionOptions = $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions.toObject(message.encryptionOptions, options); - if (message.striped != null && message.hasOwnProperty("striped")) - object.striped = $root.google.protobuf.BoolValue.toObject(message.striped, options); - if (message.noRecovery != null && message.hasOwnProperty("noRecovery")) - object.noRecovery = $root.google.protobuf.BoolValue.toObject(message.noRecovery, options); - if (message.recoveryOnly != null && message.hasOwnProperty("recoveryOnly")) - object.recoveryOnly = $root.google.protobuf.BoolValue.toObject(message.recoveryOnly, options); - if (message.bakType != null && message.hasOwnProperty("bakType")) + if (message.encryptionOptions != null && Object.hasOwnProperty.call(message, "encryptionOptions")) + object.encryptionOptions = $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions.toObject(message.encryptionOptions, options, q + 1); + if (message.striped != null && Object.hasOwnProperty.call(message, "striped")) + object.striped = $root.google.protobuf.BoolValue.toObject(message.striped, options, q + 1); + if (message.noRecovery != null && Object.hasOwnProperty.call(message, "noRecovery")) + object.noRecovery = $root.google.protobuf.BoolValue.toObject(message.noRecovery, options, q + 1); + if (message.recoveryOnly != null && Object.hasOwnProperty.call(message, "recoveryOnly")) + object.recoveryOnly = $root.google.protobuf.BoolValue.toObject(message.recoveryOnly, options, q + 1); + if (message.bakType != null && Object.hasOwnProperty.call(message, "bakType")) object.bakType = options.enums === String ? $root.google.cloud.sql.v1.BakType[message.bakType] === undefined ? message.bakType : $root.google.cloud.sql.v1.BakType[message.bakType] : message.bakType; - if (message.stopAt != null && message.hasOwnProperty("stopAt")) - object.stopAt = $root.google.protobuf.Timestamp.toObject(message.stopAt, options); - if (message.stopAtMark != null && message.hasOwnProperty("stopAtMark")) + if (message.stopAt != null && Object.hasOwnProperty.call(message, "stopAt")) + object.stopAt = $root.google.protobuf.Timestamp.toObject(message.stopAt, options, q + 1); + if (message.stopAtMark != null && Object.hasOwnProperty.call(message, "stopAtMark")) object.stopAtMark = message.stopAtMark; return object; }; @@ -11649,7 +12449,7 @@ function EncryptionOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -11706,9 +12506,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EncryptionOptions.encode = function encode(message, writer) { + EncryptionOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.certPath != null && Object.hasOwnProperty.call(message, "certPath")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.certPath); if (message.pvkPath != null && Object.hasOwnProperty.call(message, "pvkPath")) @@ -11716,7 +12520,7 @@ if (message.pvkPassword != null && Object.hasOwnProperty.call(message, "pvkPassword")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.pvkPassword); if (message.keepEncrypted != null && Object.hasOwnProperty.call(message, "keepEncrypted")) - $root.google.protobuf.BoolValue.encode(message.keepEncrypted, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.keepEncrypted, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); return writer; }; @@ -11730,7 +12534,7 @@ * @returns {$protobuf.Writer} Writer */ EncryptionOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -11744,9 +12548,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EncryptionOptions.decode = function decode(reader, length, error) { + EncryptionOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -11766,11 +12574,11 @@ break; } case 5: { - message.keepEncrypted = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.keepEncrypted = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11801,20 +12609,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EncryptionOptions.verify = function verify(message) { + EncryptionOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.certPath != null && message.hasOwnProperty("certPath")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.certPath != null && Object.hasOwnProperty.call(message, "certPath")) if (!$util.isString(message.certPath)) return "certPath: string expected"; - if (message.pvkPath != null && message.hasOwnProperty("pvkPath")) + if (message.pvkPath != null && Object.hasOwnProperty.call(message, "pvkPath")) if (!$util.isString(message.pvkPath)) return "pvkPath: string expected"; - if (message.pvkPassword != null && message.hasOwnProperty("pvkPassword")) + if (message.pvkPassword != null && Object.hasOwnProperty.call(message, "pvkPassword")) if (!$util.isString(message.pvkPassword)) return "pvkPassword: string expected"; - if (message.keepEncrypted != null && message.hasOwnProperty("keepEncrypted")) { - var error = $root.google.protobuf.BoolValue.verify(message.keepEncrypted); + if (message.keepEncrypted != null && Object.hasOwnProperty.call(message, "keepEncrypted")) { + var error = $root.google.protobuf.BoolValue.verify(message.keepEncrypted, long + 1); if (error) return "keepEncrypted." + error; } @@ -11829,9 +12641,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions} EncryptionOptions */ - EncryptionOptions.fromObject = function fromObject(object) { + EncryptionOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions(); if (object.certPath != null) message.certPath = String(object.certPath); @@ -11840,9 +12658,9 @@ if (object.pvkPassword != null) message.pvkPassword = String(object.pvkPassword); if (object.keepEncrypted != null) { - if (typeof object.keepEncrypted !== "object") + if (!$util.isObject(object.keepEncrypted)) throw TypeError(".google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions.keepEncrypted: object expected"); - message.keepEncrypted = $root.google.protobuf.BoolValue.fromObject(object.keepEncrypted); + message.keepEncrypted = $root.google.protobuf.BoolValue.fromObject(object.keepEncrypted, long + 1); } return message; }; @@ -11856,9 +12674,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - EncryptionOptions.toObject = function toObject(message, options) { + EncryptionOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.certPath = ""; @@ -11866,14 +12688,14 @@ object.pvkPassword = ""; object.keepEncrypted = null; } - if (message.certPath != null && message.hasOwnProperty("certPath")) + if (message.certPath != null && Object.hasOwnProperty.call(message, "certPath")) object.certPath = message.certPath; - if (message.pvkPath != null && message.hasOwnProperty("pvkPath")) + if (message.pvkPath != null && Object.hasOwnProperty.call(message, "pvkPath")) object.pvkPath = message.pvkPath; - if (message.pvkPassword != null && message.hasOwnProperty("pvkPassword")) + if (message.pvkPassword != null && Object.hasOwnProperty.call(message, "pvkPassword")) object.pvkPassword = message.pvkPassword; - if (message.keepEncrypted != null && message.hasOwnProperty("keepEncrypted")) - object.keepEncrypted = $root.google.protobuf.BoolValue.toObject(message.keepEncrypted, options); + if (message.keepEncrypted != null && Object.hasOwnProperty.call(message, "keepEncrypted")) + object.keepEncrypted = $root.google.protobuf.BoolValue.toObject(message.keepEncrypted, options, q + 1); return object; }; @@ -11932,7 +12754,7 @@ function SqlTdeImportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -11989,9 +12811,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlTdeImportOptions.encode = function encode(message, writer) { + SqlTdeImportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.certificatePath != null && Object.hasOwnProperty.call(message, "certificatePath")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.certificatePath); if (message.privateKeyPath != null && Object.hasOwnProperty.call(message, "privateKeyPath")) @@ -12013,7 +12839,7 @@ * @returns {$protobuf.Writer} Writer */ SqlTdeImportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -12027,9 +12853,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlTdeImportOptions.decode = function decode(reader, length, error) { + SqlTdeImportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ImportContext.SqlTdeImportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -12053,7 +12883,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -12084,19 +12914,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlTdeImportOptions.verify = function verify(message) { + SqlTdeImportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.certificatePath != null && message.hasOwnProperty("certificatePath")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.certificatePath != null && Object.hasOwnProperty.call(message, "certificatePath")) if (!$util.isString(message.certificatePath)) return "certificatePath: string expected"; - if (message.privateKeyPath != null && message.hasOwnProperty("privateKeyPath")) + if (message.privateKeyPath != null && Object.hasOwnProperty.call(message, "privateKeyPath")) if (!$util.isString(message.privateKeyPath)) return "privateKeyPath: string expected"; - if (message.privateKeyPassword != null && message.hasOwnProperty("privateKeyPassword")) + if (message.privateKeyPassword != null && Object.hasOwnProperty.call(message, "privateKeyPassword")) if (!$util.isString(message.privateKeyPassword)) return "privateKeyPassword: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; return null; @@ -12110,9 +12944,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ImportContext.SqlTdeImportOptions} SqlTdeImportOptions */ - SqlTdeImportOptions.fromObject = function fromObject(object) { + SqlTdeImportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ImportContext.SqlTdeImportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ImportContext.SqlTdeImportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ImportContext.SqlTdeImportOptions(); if (object.certificatePath != null) message.certificatePath = String(object.certificatePath); @@ -12134,9 +12974,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlTdeImportOptions.toObject = function toObject(message, options) { + SqlTdeImportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.certificatePath = ""; @@ -12144,13 +12988,13 @@ object.privateKeyPassword = ""; object.name = ""; } - if (message.certificatePath != null && message.hasOwnProperty("certificatePath")) + if (message.certificatePath != null && Object.hasOwnProperty.call(message, "certificatePath")) object.certificatePath = message.certificatePath; - if (message.privateKeyPath != null && message.hasOwnProperty("privateKeyPath")) + if (message.privateKeyPath != null && Object.hasOwnProperty.call(message, "privateKeyPath")) object.privateKeyPath = message.privateKeyPath; - if (message.privateKeyPassword != null && message.hasOwnProperty("privateKeyPassword")) + if (message.privateKeyPassword != null && Object.hasOwnProperty.call(message, "privateKeyPassword")) object.privateKeyPassword = message.privateKeyPassword; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; return object; }; @@ -12238,7 +13082,7 @@ this.customSubjectAlternativeNames = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -12386,26 +13230,30 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - IpConfiguration.encode = function encode(message, writer) { + IpConfiguration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.ipv4Enabled != null && Object.hasOwnProperty.call(message, "ipv4Enabled")) - $root.google.protobuf.BoolValue.encode(message.ipv4Enabled, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.ipv4Enabled, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.privateNetwork != null && Object.hasOwnProperty.call(message, "privateNetwork")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.privateNetwork); if (message.requireSsl != null && Object.hasOwnProperty.call(message, "requireSsl")) - $root.google.protobuf.BoolValue.encode(message.requireSsl, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.requireSsl, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.authorizedNetworks != null && message.authorizedNetworks.length) for (var i = 0; i < message.authorizedNetworks.length; ++i) - $root.google.cloud.sql.v1.AclEntry.encode(message.authorizedNetworks[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1.AclEntry.encode(message.authorizedNetworks[i], writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.allocatedIpRange != null && Object.hasOwnProperty.call(message, "allocatedIpRange")) writer.uint32(/* id 6, wireType 2 =*/50).string(message.allocatedIpRange); if (message.enablePrivatePathForGoogleCloudServices != null && Object.hasOwnProperty.call(message, "enablePrivatePathForGoogleCloudServices")) - $root.google.protobuf.BoolValue.encode(message.enablePrivatePathForGoogleCloudServices, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.enablePrivatePathForGoogleCloudServices, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.sslMode != null && Object.hasOwnProperty.call(message, "sslMode")) writer.uint32(/* id 8, wireType 0 =*/64).int32(message.sslMode); if (message.pscConfig != null && Object.hasOwnProperty.call(message, "pscConfig")) - $root.google.cloud.sql.v1.PscConfig.encode(message.pscConfig, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.cloud.sql.v1.PscConfig.encode(message.pscConfig, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); if (message.serverCaMode != null && Object.hasOwnProperty.call(message, "serverCaMode")) writer.uint32(/* id 10, wireType 0 =*/80).int32(message.serverCaMode); if (message.customSubjectAlternativeNames != null && message.customSubjectAlternativeNames.length) @@ -12428,7 +13276,7 @@ * @returns {$protobuf.Writer} Writer */ IpConfiguration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -12442,9 +13290,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - IpConfiguration.decode = function decode(reader, length, error) { + IpConfiguration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.IpConfiguration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -12452,7 +13304,7 @@ break; switch (tag >>> 3) { case 1: { - message.ipv4Enabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.ipv4Enabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -12460,13 +13312,13 @@ break; } case 3: { - message.requireSsl = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.requireSsl = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { if (!(message.authorizedNetworks && message.authorizedNetworks.length)) message.authorizedNetworks = []; - message.authorizedNetworks.push($root.google.cloud.sql.v1.AclEntry.decode(reader, reader.uint32())); + message.authorizedNetworks.push($root.google.cloud.sql.v1.AclEntry.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 6: { @@ -12474,7 +13326,7 @@ break; } case 7: { - message.enablePrivatePathForGoogleCloudServices = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.enablePrivatePathForGoogleCloudServices = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { @@ -12482,7 +13334,7 @@ break; } case 9: { - message.pscConfig = $root.google.cloud.sql.v1.PscConfig.decode(reader, reader.uint32()); + message.pscConfig = $root.google.cloud.sql.v1.PscConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { @@ -12504,7 +13356,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -12535,41 +13387,45 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - IpConfiguration.verify = function verify(message) { + IpConfiguration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.ipv4Enabled != null && message.hasOwnProperty("ipv4Enabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.ipv4Enabled); + if (message.ipv4Enabled != null && Object.hasOwnProperty.call(message, "ipv4Enabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.ipv4Enabled, long + 1); if (error) return "ipv4Enabled." + error; } - if (message.privateNetwork != null && message.hasOwnProperty("privateNetwork")) + if (message.privateNetwork != null && Object.hasOwnProperty.call(message, "privateNetwork")) if (!$util.isString(message.privateNetwork)) return "privateNetwork: string expected"; - if (message.requireSsl != null && message.hasOwnProperty("requireSsl")) { - var error = $root.google.protobuf.BoolValue.verify(message.requireSsl); + if (message.requireSsl != null && Object.hasOwnProperty.call(message, "requireSsl")) { + var error = $root.google.protobuf.BoolValue.verify(message.requireSsl, long + 1); if (error) return "requireSsl." + error; } - if (message.authorizedNetworks != null && message.hasOwnProperty("authorizedNetworks")) { + if (message.authorizedNetworks != null && Object.hasOwnProperty.call(message, "authorizedNetworks")) { if (!Array.isArray(message.authorizedNetworks)) return "authorizedNetworks: array expected"; for (var i = 0; i < message.authorizedNetworks.length; ++i) { - var error = $root.google.cloud.sql.v1.AclEntry.verify(message.authorizedNetworks[i]); + var error = $root.google.cloud.sql.v1.AclEntry.verify(message.authorizedNetworks[i], long + 1); if (error) return "authorizedNetworks." + error; } } - if (message.allocatedIpRange != null && message.hasOwnProperty("allocatedIpRange")) + if (message.allocatedIpRange != null && Object.hasOwnProperty.call(message, "allocatedIpRange")) if (!$util.isString(message.allocatedIpRange)) return "allocatedIpRange: string expected"; - if (message.enablePrivatePathForGoogleCloudServices != null && message.hasOwnProperty("enablePrivatePathForGoogleCloudServices")) { - var error = $root.google.protobuf.BoolValue.verify(message.enablePrivatePathForGoogleCloudServices); + if (message.enablePrivatePathForGoogleCloudServices != null && Object.hasOwnProperty.call(message, "enablePrivatePathForGoogleCloudServices")) { + var error = $root.google.protobuf.BoolValue.verify(message.enablePrivatePathForGoogleCloudServices, long + 1); if (error) return "enablePrivatePathForGoogleCloudServices." + error; } - if (message.sslMode != null && message.hasOwnProperty("sslMode")) + if (message.sslMode != null && Object.hasOwnProperty.call(message, "sslMode")) switch (message.sslMode) { default: return "sslMode: enum value expected"; @@ -12579,15 +13435,15 @@ case 3: break; } - if (message.pscConfig != null && message.hasOwnProperty("pscConfig")) { + if (message.pscConfig != null && Object.hasOwnProperty.call(message, "pscConfig")) { properties._pscConfig = 1; { - var error = $root.google.cloud.sql.v1.PscConfig.verify(message.pscConfig); + var error = $root.google.cloud.sql.v1.PscConfig.verify(message.pscConfig, long + 1); if (error) return "pscConfig." + error; } } - if (message.serverCaMode != null && message.hasOwnProperty("serverCaMode")) { + if (message.serverCaMode != null && Object.hasOwnProperty.call(message, "serverCaMode")) { properties._serverCaMode = 1; switch (message.serverCaMode) { default: @@ -12599,19 +13455,19 @@ break; } } - if (message.customSubjectAlternativeNames != null && message.hasOwnProperty("customSubjectAlternativeNames")) { + if (message.customSubjectAlternativeNames != null && Object.hasOwnProperty.call(message, "customSubjectAlternativeNames")) { if (!Array.isArray(message.customSubjectAlternativeNames)) return "customSubjectAlternativeNames: array expected"; for (var i = 0; i < message.customSubjectAlternativeNames.length; ++i) if (!$util.isString(message.customSubjectAlternativeNames[i])) return "customSubjectAlternativeNames: string[] expected"; } - if (message.serverCaPool != null && message.hasOwnProperty("serverCaPool")) { + if (message.serverCaPool != null && Object.hasOwnProperty.call(message, "serverCaPool")) { properties._serverCaPool = 1; if (!$util.isString(message.serverCaPool)) return "serverCaPool: string expected"; } - if (message.serverCertificateRotationMode != null && message.hasOwnProperty("serverCertificateRotationMode")) { + if (message.serverCertificateRotationMode != null && Object.hasOwnProperty.call(message, "serverCertificateRotationMode")) { properties._serverCertificateRotationMode = 1; switch (message.serverCertificateRotationMode) { default: @@ -12633,38 +13489,44 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.IpConfiguration} IpConfiguration */ - IpConfiguration.fromObject = function fromObject(object) { + IpConfiguration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.IpConfiguration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.IpConfiguration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.IpConfiguration(); if (object.ipv4Enabled != null) { - if (typeof object.ipv4Enabled !== "object") + if (!$util.isObject(object.ipv4Enabled)) throw TypeError(".google.cloud.sql.v1.IpConfiguration.ipv4Enabled: object expected"); - message.ipv4Enabled = $root.google.protobuf.BoolValue.fromObject(object.ipv4Enabled); + message.ipv4Enabled = $root.google.protobuf.BoolValue.fromObject(object.ipv4Enabled, long + 1); } if (object.privateNetwork != null) message.privateNetwork = String(object.privateNetwork); if (object.requireSsl != null) { - if (typeof object.requireSsl !== "object") + if (!$util.isObject(object.requireSsl)) throw TypeError(".google.cloud.sql.v1.IpConfiguration.requireSsl: object expected"); - message.requireSsl = $root.google.protobuf.BoolValue.fromObject(object.requireSsl); + message.requireSsl = $root.google.protobuf.BoolValue.fromObject(object.requireSsl, long + 1); } if (object.authorizedNetworks) { if (!Array.isArray(object.authorizedNetworks)) throw TypeError(".google.cloud.sql.v1.IpConfiguration.authorizedNetworks: array expected"); message.authorizedNetworks = []; for (var i = 0; i < object.authorizedNetworks.length; ++i) { - if (typeof object.authorizedNetworks[i] !== "object") + if (!$util.isObject(object.authorizedNetworks[i])) throw TypeError(".google.cloud.sql.v1.IpConfiguration.authorizedNetworks: object expected"); - message.authorizedNetworks[i] = $root.google.cloud.sql.v1.AclEntry.fromObject(object.authorizedNetworks[i]); + message.authorizedNetworks[i] = $root.google.cloud.sql.v1.AclEntry.fromObject(object.authorizedNetworks[i], long + 1); } } if (object.allocatedIpRange != null) message.allocatedIpRange = String(object.allocatedIpRange); if (object.enablePrivatePathForGoogleCloudServices != null) { - if (typeof object.enablePrivatePathForGoogleCloudServices !== "object") + if (!$util.isObject(object.enablePrivatePathForGoogleCloudServices)) throw TypeError(".google.cloud.sql.v1.IpConfiguration.enablePrivatePathForGoogleCloudServices: object expected"); - message.enablePrivatePathForGoogleCloudServices = $root.google.protobuf.BoolValue.fromObject(object.enablePrivatePathForGoogleCloudServices); + message.enablePrivatePathForGoogleCloudServices = $root.google.protobuf.BoolValue.fromObject(object.enablePrivatePathForGoogleCloudServices, long + 1); } switch (object.sslMode) { default: @@ -12691,9 +13553,9 @@ break; } if (object.pscConfig != null) { - if (typeof object.pscConfig !== "object") + if (!$util.isObject(object.pscConfig)) throw TypeError(".google.cloud.sql.v1.IpConfiguration.pscConfig: object expected"); - message.pscConfig = $root.google.cloud.sql.v1.PscConfig.fromObject(object.pscConfig); + message.pscConfig = $root.google.cloud.sql.v1.PscConfig.fromObject(object.pscConfig, long + 1); } switch (object.serverCaMode) { default: @@ -12760,9 +13622,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - IpConfiguration.toObject = function toObject(message, options) { + IpConfiguration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.authorizedNetworks = []; @@ -12776,29 +13642,29 @@ object.enablePrivatePathForGoogleCloudServices = null; object.sslMode = options.enums === String ? "SSL_MODE_UNSPECIFIED" : 0; } - if (message.ipv4Enabled != null && message.hasOwnProperty("ipv4Enabled")) - object.ipv4Enabled = $root.google.protobuf.BoolValue.toObject(message.ipv4Enabled, options); - if (message.privateNetwork != null && message.hasOwnProperty("privateNetwork")) + if (message.ipv4Enabled != null && Object.hasOwnProperty.call(message, "ipv4Enabled")) + object.ipv4Enabled = $root.google.protobuf.BoolValue.toObject(message.ipv4Enabled, options, q + 1); + if (message.privateNetwork != null && Object.hasOwnProperty.call(message, "privateNetwork")) object.privateNetwork = message.privateNetwork; - if (message.requireSsl != null && message.hasOwnProperty("requireSsl")) - object.requireSsl = $root.google.protobuf.BoolValue.toObject(message.requireSsl, options); + if (message.requireSsl != null && Object.hasOwnProperty.call(message, "requireSsl")) + object.requireSsl = $root.google.protobuf.BoolValue.toObject(message.requireSsl, options, q + 1); if (message.authorizedNetworks && message.authorizedNetworks.length) { object.authorizedNetworks = []; for (var j = 0; j < message.authorizedNetworks.length; ++j) - object.authorizedNetworks[j] = $root.google.cloud.sql.v1.AclEntry.toObject(message.authorizedNetworks[j], options); + object.authorizedNetworks[j] = $root.google.cloud.sql.v1.AclEntry.toObject(message.authorizedNetworks[j], options, q + 1); } - if (message.allocatedIpRange != null && message.hasOwnProperty("allocatedIpRange")) + if (message.allocatedIpRange != null && Object.hasOwnProperty.call(message, "allocatedIpRange")) object.allocatedIpRange = message.allocatedIpRange; - if (message.enablePrivatePathForGoogleCloudServices != null && message.hasOwnProperty("enablePrivatePathForGoogleCloudServices")) - object.enablePrivatePathForGoogleCloudServices = $root.google.protobuf.BoolValue.toObject(message.enablePrivatePathForGoogleCloudServices, options); - if (message.sslMode != null && message.hasOwnProperty("sslMode")) + if (message.enablePrivatePathForGoogleCloudServices != null && Object.hasOwnProperty.call(message, "enablePrivatePathForGoogleCloudServices")) + object.enablePrivatePathForGoogleCloudServices = $root.google.protobuf.BoolValue.toObject(message.enablePrivatePathForGoogleCloudServices, options, q + 1); + if (message.sslMode != null && Object.hasOwnProperty.call(message, "sslMode")) object.sslMode = options.enums === String ? $root.google.cloud.sql.v1.IpConfiguration.SslMode[message.sslMode] === undefined ? message.sslMode : $root.google.cloud.sql.v1.IpConfiguration.SslMode[message.sslMode] : message.sslMode; - if (message.pscConfig != null && message.hasOwnProperty("pscConfig")) { - object.pscConfig = $root.google.cloud.sql.v1.PscConfig.toObject(message.pscConfig, options); + if (message.pscConfig != null && Object.hasOwnProperty.call(message, "pscConfig")) { + object.pscConfig = $root.google.cloud.sql.v1.PscConfig.toObject(message.pscConfig, options, q + 1); if (options.oneofs) object._pscConfig = "pscConfig"; } - if (message.serverCaMode != null && message.hasOwnProperty("serverCaMode")) { + if (message.serverCaMode != null && Object.hasOwnProperty.call(message, "serverCaMode")) { object.serverCaMode = options.enums === String ? $root.google.cloud.sql.v1.IpConfiguration.CaMode[message.serverCaMode] === undefined ? message.serverCaMode : $root.google.cloud.sql.v1.IpConfiguration.CaMode[message.serverCaMode] : message.serverCaMode; if (options.oneofs) object._serverCaMode = "serverCaMode"; @@ -12808,12 +13674,12 @@ for (var j = 0; j < message.customSubjectAlternativeNames.length; ++j) object.customSubjectAlternativeNames[j] = message.customSubjectAlternativeNames[j]; } - if (message.serverCaPool != null && message.hasOwnProperty("serverCaPool")) { + if (message.serverCaPool != null && Object.hasOwnProperty.call(message, "serverCaPool")) { object.serverCaPool = message.serverCaPool; if (options.oneofs) object._serverCaPool = "serverCaPool"; } - if (message.serverCertificateRotationMode != null && message.hasOwnProperty("serverCertificateRotationMode")) { + if (message.serverCertificateRotationMode != null && Object.hasOwnProperty.call(message, "serverCertificateRotationMode")) { object.serverCertificateRotationMode = options.enums === String ? $root.google.cloud.sql.v1.IpConfiguration.ServerCertificateRotationMode[message.serverCertificateRotationMode] === undefined ? message.serverCertificateRotationMode : $root.google.cloud.sql.v1.IpConfiguration.ServerCertificateRotationMode[message.serverCertificateRotationMode] : message.serverCertificateRotationMode; if (options.oneofs) object._serverCertificateRotationMode = "serverCertificateRotationMode"; @@ -12912,6 +13778,8 @@ * @property {Array.|null} [allowedConsumerProjects] PscConfig allowedConsumerProjects * @property {Array.|null} [pscAutoConnections] PscConfig pscAutoConnections * @property {string|null} [networkAttachmentUri] PscConfig networkAttachmentUri + * @property {boolean|null} [pscAutoDnsEnabled] PscConfig pscAutoDnsEnabled + * @property {boolean|null} [pscWriteEndpointDnsEnabled] PscConfig pscWriteEndpointDnsEnabled */ /** @@ -12927,7 +13795,7 @@ this.pscAutoConnections = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -12963,6 +13831,22 @@ */ PscConfig.prototype.networkAttachmentUri = ""; + /** + * PscConfig pscAutoDnsEnabled. + * @member {boolean|null|undefined} pscAutoDnsEnabled + * @memberof google.cloud.sql.v1.PscConfig + * @instance + */ + PscConfig.prototype.pscAutoDnsEnabled = null; + + /** + * PscConfig pscWriteEndpointDnsEnabled. + * @member {boolean|null|undefined} pscWriteEndpointDnsEnabled + * @memberof google.cloud.sql.v1.PscConfig + * @instance + */ + PscConfig.prototype.pscWriteEndpointDnsEnabled = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -12972,6 +13856,18 @@ set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(PscConfig.prototype, "_pscAutoDnsEnabled", { + get: $util.oneOfGetter($oneOfFields = ["pscAutoDnsEnabled"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(PscConfig.prototype, "_pscWriteEndpointDnsEnabled", { + get: $util.oneOfGetter($oneOfFields = ["pscWriteEndpointDnsEnabled"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new PscConfig instance using the specified properties. * @function create @@ -12993,9 +13889,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PscConfig.encode = function encode(message, writer) { + PscConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.pscEnabled != null && Object.hasOwnProperty.call(message, "pscEnabled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.pscEnabled); if (message.allowedConsumerProjects != null && message.allowedConsumerProjects.length) @@ -13003,9 +13903,13 @@ writer.uint32(/* id 2, wireType 2 =*/18).string(message.allowedConsumerProjects[i]); if (message.pscAutoConnections != null && message.pscAutoConnections.length) for (var i = 0; i < message.pscAutoConnections.length; ++i) - $root.google.cloud.sql.v1.PscAutoConnectionConfig.encode(message.pscAutoConnections[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1.PscAutoConnectionConfig.encode(message.pscAutoConnections[i], writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.networkAttachmentUri != null && Object.hasOwnProperty.call(message, "networkAttachmentUri")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.networkAttachmentUri); + if (message.pscAutoDnsEnabled != null && Object.hasOwnProperty.call(message, "pscAutoDnsEnabled")) + writer.uint32(/* id 5, wireType 0 =*/40).bool(message.pscAutoDnsEnabled); + if (message.pscWriteEndpointDnsEnabled != null && Object.hasOwnProperty.call(message, "pscWriteEndpointDnsEnabled")) + writer.uint32(/* id 6, wireType 0 =*/48).bool(message.pscWriteEndpointDnsEnabled); return writer; }; @@ -13019,7 +13923,7 @@ * @returns {$protobuf.Writer} Writer */ PscConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -13033,9 +13937,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PscConfig.decode = function decode(reader, length, error) { + PscConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.PscConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -13055,15 +13963,23 @@ case 3: { if (!(message.pscAutoConnections && message.pscAutoConnections.length)) message.pscAutoConnections = []; - message.pscAutoConnections.push($root.google.cloud.sql.v1.PscAutoConnectionConfig.decode(reader, reader.uint32())); + message.pscAutoConnections.push($root.google.cloud.sql.v1.PscAutoConnectionConfig.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 4: { message.networkAttachmentUri = reader.string(); break; } + case 5: { + message.pscAutoDnsEnabled = reader.bool(); + break; + } + case 6: { + message.pscWriteEndpointDnsEnabled = reader.bool(); + break; + } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -13094,34 +14010,48 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PscConfig.verify = function verify(message) { + PscConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.pscEnabled != null && message.hasOwnProperty("pscEnabled")) { + if (message.pscEnabled != null && Object.hasOwnProperty.call(message, "pscEnabled")) { properties._pscEnabled = 1; if (typeof message.pscEnabled !== "boolean") return "pscEnabled: boolean expected"; } - if (message.allowedConsumerProjects != null && message.hasOwnProperty("allowedConsumerProjects")) { + if (message.allowedConsumerProjects != null && Object.hasOwnProperty.call(message, "allowedConsumerProjects")) { if (!Array.isArray(message.allowedConsumerProjects)) return "allowedConsumerProjects: array expected"; for (var i = 0; i < message.allowedConsumerProjects.length; ++i) if (!$util.isString(message.allowedConsumerProjects[i])) return "allowedConsumerProjects: string[] expected"; } - if (message.pscAutoConnections != null && message.hasOwnProperty("pscAutoConnections")) { + if (message.pscAutoConnections != null && Object.hasOwnProperty.call(message, "pscAutoConnections")) { if (!Array.isArray(message.pscAutoConnections)) return "pscAutoConnections: array expected"; for (var i = 0; i < message.pscAutoConnections.length; ++i) { - var error = $root.google.cloud.sql.v1.PscAutoConnectionConfig.verify(message.pscAutoConnections[i]); + var error = $root.google.cloud.sql.v1.PscAutoConnectionConfig.verify(message.pscAutoConnections[i], long + 1); if (error) return "pscAutoConnections." + error; } } - if (message.networkAttachmentUri != null && message.hasOwnProperty("networkAttachmentUri")) + if (message.networkAttachmentUri != null && Object.hasOwnProperty.call(message, "networkAttachmentUri")) if (!$util.isString(message.networkAttachmentUri)) return "networkAttachmentUri: string expected"; + if (message.pscAutoDnsEnabled != null && Object.hasOwnProperty.call(message, "pscAutoDnsEnabled")) { + properties._pscAutoDnsEnabled = 1; + if (typeof message.pscAutoDnsEnabled !== "boolean") + return "pscAutoDnsEnabled: boolean expected"; + } + if (message.pscWriteEndpointDnsEnabled != null && Object.hasOwnProperty.call(message, "pscWriteEndpointDnsEnabled")) { + properties._pscWriteEndpointDnsEnabled = 1; + if (typeof message.pscWriteEndpointDnsEnabled !== "boolean") + return "pscWriteEndpointDnsEnabled: boolean expected"; + } return null; }; @@ -13133,9 +14063,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.PscConfig} PscConfig */ - PscConfig.fromObject = function fromObject(object) { + PscConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.PscConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.PscConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.PscConfig(); if (object.pscEnabled != null) message.pscEnabled = Boolean(object.pscEnabled); @@ -13151,13 +14087,17 @@ throw TypeError(".google.cloud.sql.v1.PscConfig.pscAutoConnections: array expected"); message.pscAutoConnections = []; for (var i = 0; i < object.pscAutoConnections.length; ++i) { - if (typeof object.pscAutoConnections[i] !== "object") + if (!$util.isObject(object.pscAutoConnections[i])) throw TypeError(".google.cloud.sql.v1.PscConfig.pscAutoConnections: object expected"); - message.pscAutoConnections[i] = $root.google.cloud.sql.v1.PscAutoConnectionConfig.fromObject(object.pscAutoConnections[i]); + message.pscAutoConnections[i] = $root.google.cloud.sql.v1.PscAutoConnectionConfig.fromObject(object.pscAutoConnections[i], long + 1); } } if (object.networkAttachmentUri != null) message.networkAttachmentUri = String(object.networkAttachmentUri); + if (object.pscAutoDnsEnabled != null) + message.pscAutoDnsEnabled = Boolean(object.pscAutoDnsEnabled); + if (object.pscWriteEndpointDnsEnabled != null) + message.pscWriteEndpointDnsEnabled = Boolean(object.pscWriteEndpointDnsEnabled); return message; }; @@ -13170,9 +14110,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PscConfig.toObject = function toObject(message, options) { + PscConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.allowedConsumerProjects = []; @@ -13180,7 +14124,7 @@ } if (options.defaults) object.networkAttachmentUri = ""; - if (message.pscEnabled != null && message.hasOwnProperty("pscEnabled")) { + if (message.pscEnabled != null && Object.hasOwnProperty.call(message, "pscEnabled")) { object.pscEnabled = message.pscEnabled; if (options.oneofs) object._pscEnabled = "pscEnabled"; @@ -13193,10 +14137,20 @@ if (message.pscAutoConnections && message.pscAutoConnections.length) { object.pscAutoConnections = []; for (var j = 0; j < message.pscAutoConnections.length; ++j) - object.pscAutoConnections[j] = $root.google.cloud.sql.v1.PscAutoConnectionConfig.toObject(message.pscAutoConnections[j], options); + object.pscAutoConnections[j] = $root.google.cloud.sql.v1.PscAutoConnectionConfig.toObject(message.pscAutoConnections[j], options, q + 1); } - if (message.networkAttachmentUri != null && message.hasOwnProperty("networkAttachmentUri")) + if (message.networkAttachmentUri != null && Object.hasOwnProperty.call(message, "networkAttachmentUri")) object.networkAttachmentUri = message.networkAttachmentUri; + if (message.pscAutoDnsEnabled != null && Object.hasOwnProperty.call(message, "pscAutoDnsEnabled")) { + object.pscAutoDnsEnabled = message.pscAutoDnsEnabled; + if (options.oneofs) + object._pscAutoDnsEnabled = "pscAutoDnsEnabled"; + } + if (message.pscWriteEndpointDnsEnabled != null && Object.hasOwnProperty.call(message, "pscWriteEndpointDnsEnabled")) { + object.pscWriteEndpointDnsEnabled = message.pscWriteEndpointDnsEnabled; + if (options.oneofs) + object._pscWriteEndpointDnsEnabled = "pscWriteEndpointDnsEnabled"; + } return object; }; @@ -13253,7 +14207,7 @@ function PscAutoConnectionConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -13339,9 +14293,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PscAutoConnectionConfig.encode = function encode(message, writer) { + PscAutoConnectionConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.consumerProject != null && Object.hasOwnProperty.call(message, "consumerProject")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.consumerProject); if (message.consumerNetwork != null && Object.hasOwnProperty.call(message, "consumerNetwork")) @@ -13365,7 +14323,7 @@ * @returns {$protobuf.Writer} Writer */ PscAutoConnectionConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -13379,9 +14337,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PscAutoConnectionConfig.decode = function decode(reader, length, error) { + PscAutoConnectionConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.PscAutoConnectionConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -13409,7 +14371,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -13440,27 +14402,31 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PscAutoConnectionConfig.verify = function verify(message) { + PscAutoConnectionConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.consumerProject != null && message.hasOwnProperty("consumerProject")) + if (message.consumerProject != null && Object.hasOwnProperty.call(message, "consumerProject")) if (!$util.isString(message.consumerProject)) return "consumerProject: string expected"; - if (message.consumerNetwork != null && message.hasOwnProperty("consumerNetwork")) + if (message.consumerNetwork != null && Object.hasOwnProperty.call(message, "consumerNetwork")) if (!$util.isString(message.consumerNetwork)) return "consumerNetwork: string expected"; - if (message.ipAddress != null && message.hasOwnProperty("ipAddress")) { + if (message.ipAddress != null && Object.hasOwnProperty.call(message, "ipAddress")) { properties._ipAddress = 1; if (!$util.isString(message.ipAddress)) return "ipAddress: string expected"; } - if (message.status != null && message.hasOwnProperty("status")) { + if (message.status != null && Object.hasOwnProperty.call(message, "status")) { properties._status = 1; if (!$util.isString(message.status)) return "status: string expected"; } - if (message.consumerNetworkStatus != null && message.hasOwnProperty("consumerNetworkStatus")) { + if (message.consumerNetworkStatus != null && Object.hasOwnProperty.call(message, "consumerNetworkStatus")) { properties._consumerNetworkStatus = 1; if (!$util.isString(message.consumerNetworkStatus)) return "consumerNetworkStatus: string expected"; @@ -13476,9 +14442,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.PscAutoConnectionConfig} PscAutoConnectionConfig */ - PscAutoConnectionConfig.fromObject = function fromObject(object) { + PscAutoConnectionConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.PscAutoConnectionConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.PscAutoConnectionConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.PscAutoConnectionConfig(); if (object.consumerProject != null) message.consumerProject = String(object.consumerProject); @@ -13502,29 +14474,33 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PscAutoConnectionConfig.toObject = function toObject(message, options) { + PscAutoConnectionConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.consumerProject = ""; object.consumerNetwork = ""; } - if (message.consumerProject != null && message.hasOwnProperty("consumerProject")) + if (message.consumerProject != null && Object.hasOwnProperty.call(message, "consumerProject")) object.consumerProject = message.consumerProject; - if (message.consumerNetwork != null && message.hasOwnProperty("consumerNetwork")) + if (message.consumerNetwork != null && Object.hasOwnProperty.call(message, "consumerNetwork")) object.consumerNetwork = message.consumerNetwork; - if (message.ipAddress != null && message.hasOwnProperty("ipAddress")) { + if (message.ipAddress != null && Object.hasOwnProperty.call(message, "ipAddress")) { object.ipAddress = message.ipAddress; if (options.oneofs) object._ipAddress = "ipAddress"; } - if (message.status != null && message.hasOwnProperty("status")) { + if (message.status != null && Object.hasOwnProperty.call(message, "status")) { object.status = message.status; if (options.oneofs) object._status = "status"; } - if (message.consumerNetworkStatus != null && message.hasOwnProperty("consumerNetworkStatus")) { + if (message.consumerNetworkStatus != null && Object.hasOwnProperty.call(message, "consumerNetworkStatus")) { object.consumerNetworkStatus = message.consumerNetworkStatus; if (options.oneofs) object._consumerNetworkStatus = "consumerNetworkStatus"; @@ -13584,7 +14560,7 @@ function LocationPreference(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -13641,9 +14617,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - LocationPreference.encode = function encode(message, writer) { + LocationPreference.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.followGaeApplication != null && Object.hasOwnProperty.call(message, "followGaeApplication")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.followGaeApplication); if (message.zone != null && Object.hasOwnProperty.call(message, "zone")) @@ -13665,7 +14645,7 @@ * @returns {$protobuf.Writer} Writer */ LocationPreference.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -13679,9 +14659,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LocationPreference.decode = function decode(reader, length, error) { + LocationPreference.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.LocationPreference(); while (reader.pos < end) { var tag = reader.uint32(); @@ -13705,7 +14689,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -13736,19 +14720,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LocationPreference.verify = function verify(message) { + LocationPreference.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.followGaeApplication != null && message.hasOwnProperty("followGaeApplication")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.followGaeApplication != null && Object.hasOwnProperty.call(message, "followGaeApplication")) if (!$util.isString(message.followGaeApplication)) return "followGaeApplication: string expected"; - if (message.zone != null && message.hasOwnProperty("zone")) + if (message.zone != null && Object.hasOwnProperty.call(message, "zone")) if (!$util.isString(message.zone)) return "zone: string expected"; - if (message.secondaryZone != null && message.hasOwnProperty("secondaryZone")) + if (message.secondaryZone != null && Object.hasOwnProperty.call(message, "secondaryZone")) if (!$util.isString(message.secondaryZone)) return "secondaryZone: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -13762,9 +14750,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.LocationPreference} LocationPreference */ - LocationPreference.fromObject = function fromObject(object) { + LocationPreference.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.LocationPreference) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.LocationPreference: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.LocationPreference(); if (object.followGaeApplication != null) message.followGaeApplication = String(object.followGaeApplication); @@ -13786,9 +14780,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - LocationPreference.toObject = function toObject(message, options) { + LocationPreference.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.followGaeApplication = ""; @@ -13796,13 +14794,13 @@ object.kind = ""; object.secondaryZone = ""; } - if (message.followGaeApplication != null && message.hasOwnProperty("followGaeApplication")) + if (message.followGaeApplication != null && Object.hasOwnProperty.call(message, "followGaeApplication")) object.followGaeApplication = message.followGaeApplication; - if (message.zone != null && message.hasOwnProperty("zone")) + if (message.zone != null && Object.hasOwnProperty.call(message, "zone")) object.zone = message.zone; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.secondaryZone != null && message.hasOwnProperty("secondaryZone")) + if (message.secondaryZone != null && Object.hasOwnProperty.call(message, "secondaryZone")) object.secondaryZone = message.secondaryZone; return object; }; @@ -13859,7 +14857,7 @@ function MaintenanceWindow(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -13916,13 +14914,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MaintenanceWindow.encode = function encode(message, writer) { + MaintenanceWindow.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.hour != null && Object.hasOwnProperty.call(message, "hour")) - $root.google.protobuf.Int32Value.encode(message.hour, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.hour, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.day != null && Object.hasOwnProperty.call(message, "day")) - $root.google.protobuf.Int32Value.encode(message.day, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.day, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.updateTrack != null && Object.hasOwnProperty.call(message, "updateTrack")) writer.uint32(/* id 3, wireType 0 =*/24).int32(message.updateTrack); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -13940,7 +14942,7 @@ * @returns {$protobuf.Writer} Writer */ MaintenanceWindow.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -13954,9 +14956,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MaintenanceWindow.decode = function decode(reader, length, error) { + MaintenanceWindow.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.MaintenanceWindow(); while (reader.pos < end) { var tag = reader.uint32(); @@ -13964,11 +14970,11 @@ break; switch (tag >>> 3) { case 1: { - message.hour = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.hour = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.day = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.day = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -13980,7 +14986,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -14011,20 +15017,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MaintenanceWindow.verify = function verify(message) { + MaintenanceWindow.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.hour != null && message.hasOwnProperty("hour")) { - var error = $root.google.protobuf.Int32Value.verify(message.hour); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.hour != null && Object.hasOwnProperty.call(message, "hour")) { + var error = $root.google.protobuf.Int32Value.verify(message.hour, long + 1); if (error) return "hour." + error; } - if (message.day != null && message.hasOwnProperty("day")) { - var error = $root.google.protobuf.Int32Value.verify(message.day); + if (message.day != null && Object.hasOwnProperty.call(message, "day")) { + var error = $root.google.protobuf.Int32Value.verify(message.day, long + 1); if (error) return "day." + error; } - if (message.updateTrack != null && message.hasOwnProperty("updateTrack")) + if (message.updateTrack != null && Object.hasOwnProperty.call(message, "updateTrack")) switch (message.updateTrack) { default: return "updateTrack: enum value expected"; @@ -14034,7 +15044,7 @@ case 3: break; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -14048,19 +15058,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.MaintenanceWindow} MaintenanceWindow */ - MaintenanceWindow.fromObject = function fromObject(object) { + MaintenanceWindow.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.MaintenanceWindow) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.MaintenanceWindow: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.MaintenanceWindow(); if (object.hour != null) { - if (typeof object.hour !== "object") + if (!$util.isObject(object.hour)) throw TypeError(".google.cloud.sql.v1.MaintenanceWindow.hour: object expected"); - message.hour = $root.google.protobuf.Int32Value.fromObject(object.hour); + message.hour = $root.google.protobuf.Int32Value.fromObject(object.hour, long + 1); } if (object.day != null) { - if (typeof object.day !== "object") + if (!$util.isObject(object.day)) throw TypeError(".google.cloud.sql.v1.MaintenanceWindow.day: object expected"); - message.day = $root.google.protobuf.Int32Value.fromObject(object.day); + message.day = $root.google.protobuf.Int32Value.fromObject(object.day, long + 1); } switch (object.updateTrack) { default: @@ -14100,9 +15116,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MaintenanceWindow.toObject = function toObject(message, options) { + MaintenanceWindow.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.hour = null; @@ -14110,13 +15130,13 @@ object.updateTrack = options.enums === String ? "SQL_UPDATE_TRACK_UNSPECIFIED" : 0; object.kind = ""; } - if (message.hour != null && message.hasOwnProperty("hour")) - object.hour = $root.google.protobuf.Int32Value.toObject(message.hour, options); - if (message.day != null && message.hasOwnProperty("day")) - object.day = $root.google.protobuf.Int32Value.toObject(message.day, options); - if (message.updateTrack != null && message.hasOwnProperty("updateTrack")) + if (message.hour != null && Object.hasOwnProperty.call(message, "hour")) + object.hour = $root.google.protobuf.Int32Value.toObject(message.hour, options, q + 1); + if (message.day != null && Object.hasOwnProperty.call(message, "day")) + object.day = $root.google.protobuf.Int32Value.toObject(message.day, options, q + 1); + if (message.updateTrack != null && Object.hasOwnProperty.call(message, "updateTrack")) object.updateTrack = options.enums === String ? $root.google.cloud.sql.v1.SqlUpdateTrack[message.updateTrack] === undefined ? message.updateTrack : $root.google.cloud.sql.v1.SqlUpdateTrack[message.updateTrack] : message.updateTrack; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -14172,7 +15192,7 @@ function DenyMaintenancePeriod(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -14221,9 +15241,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DenyMaintenancePeriod.encode = function encode(message, writer) { + DenyMaintenancePeriod.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.startDate != null && Object.hasOwnProperty.call(message, "startDate")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.startDate); if (message.endDate != null && Object.hasOwnProperty.call(message, "endDate")) @@ -14243,7 +15267,7 @@ * @returns {$protobuf.Writer} Writer */ DenyMaintenancePeriod.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -14257,9 +15281,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DenyMaintenancePeriod.decode = function decode(reader, length, error) { + DenyMaintenancePeriod.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.DenyMaintenancePeriod(); while (reader.pos < end) { var tag = reader.uint32(); @@ -14279,7 +15307,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -14310,16 +15338,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DenyMaintenancePeriod.verify = function verify(message) { + DenyMaintenancePeriod.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.startDate != null && message.hasOwnProperty("startDate")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.startDate != null && Object.hasOwnProperty.call(message, "startDate")) if (!$util.isString(message.startDate)) return "startDate: string expected"; - if (message.endDate != null && message.hasOwnProperty("endDate")) + if (message.endDate != null && Object.hasOwnProperty.call(message, "endDate")) if (!$util.isString(message.endDate)) return "endDate: string expected"; - if (message.time != null && message.hasOwnProperty("time")) + if (message.time != null && Object.hasOwnProperty.call(message, "time")) if (!$util.isString(message.time)) return "time: string expected"; return null; @@ -14333,9 +15365,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.DenyMaintenancePeriod} DenyMaintenancePeriod */ - DenyMaintenancePeriod.fromObject = function fromObject(object) { + DenyMaintenancePeriod.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.DenyMaintenancePeriod) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.DenyMaintenancePeriod: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.DenyMaintenancePeriod(); if (object.startDate != null) message.startDate = String(object.startDate); @@ -14355,20 +15393,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DenyMaintenancePeriod.toObject = function toObject(message, options) { + DenyMaintenancePeriod.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.startDate = ""; object.endDate = ""; object.time = ""; } - if (message.startDate != null && message.hasOwnProperty("startDate")) + if (message.startDate != null && Object.hasOwnProperty.call(message, "startDate")) object.startDate = message.startDate; - if (message.endDate != null && message.hasOwnProperty("endDate")) + if (message.endDate != null && Object.hasOwnProperty.call(message, "endDate")) object.endDate = message.endDate; - if (message.time != null && message.hasOwnProperty("time")) + if (message.time != null && Object.hasOwnProperty.call(message, "time")) object.time = message.time; return object; }; @@ -14427,7 +15469,7 @@ function InsightsConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -14500,9 +15542,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InsightsConfig.encode = function encode(message, writer) { + InsightsConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.queryInsightsEnabled != null && Object.hasOwnProperty.call(message, "queryInsightsEnabled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.queryInsightsEnabled); if (message.recordClientAddress != null && Object.hasOwnProperty.call(message, "recordClientAddress")) @@ -14510,11 +15556,11 @@ if (message.recordApplicationTags != null && Object.hasOwnProperty.call(message, "recordApplicationTags")) writer.uint32(/* id 3, wireType 0 =*/24).bool(message.recordApplicationTags); if (message.queryStringLength != null && Object.hasOwnProperty.call(message, "queryStringLength")) - $root.google.protobuf.Int32Value.encode(message.queryStringLength, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.queryStringLength, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.queryPlansPerMinute != null && Object.hasOwnProperty.call(message, "queryPlansPerMinute")) - $root.google.protobuf.Int32Value.encode(message.queryPlansPerMinute, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.queryPlansPerMinute, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.enhancedQueryInsightsEnabled != null && Object.hasOwnProperty.call(message, "enhancedQueryInsightsEnabled")) - $root.google.protobuf.BoolValue.encode(message.enhancedQueryInsightsEnabled, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.enhancedQueryInsightsEnabled, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); return writer; }; @@ -14528,7 +15574,7 @@ * @returns {$protobuf.Writer} Writer */ InsightsConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -14542,9 +15588,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InsightsConfig.decode = function decode(reader, length, error) { + InsightsConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InsightsConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -14564,19 +15614,19 @@ break; } case 4: { - message.queryStringLength = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.queryStringLength = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.queryPlansPerMinute = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.queryPlansPerMinute = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.enhancedQueryInsightsEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.enhancedQueryInsightsEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -14607,30 +15657,34 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InsightsConfig.verify = function verify(message) { + InsightsConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.queryInsightsEnabled != null && message.hasOwnProperty("queryInsightsEnabled")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.queryInsightsEnabled != null && Object.hasOwnProperty.call(message, "queryInsightsEnabled")) if (typeof message.queryInsightsEnabled !== "boolean") return "queryInsightsEnabled: boolean expected"; - if (message.recordClientAddress != null && message.hasOwnProperty("recordClientAddress")) + if (message.recordClientAddress != null && Object.hasOwnProperty.call(message, "recordClientAddress")) if (typeof message.recordClientAddress !== "boolean") return "recordClientAddress: boolean expected"; - if (message.recordApplicationTags != null && message.hasOwnProperty("recordApplicationTags")) + if (message.recordApplicationTags != null && Object.hasOwnProperty.call(message, "recordApplicationTags")) if (typeof message.recordApplicationTags !== "boolean") return "recordApplicationTags: boolean expected"; - if (message.queryStringLength != null && message.hasOwnProperty("queryStringLength")) { - var error = $root.google.protobuf.Int32Value.verify(message.queryStringLength); + if (message.queryStringLength != null && Object.hasOwnProperty.call(message, "queryStringLength")) { + var error = $root.google.protobuf.Int32Value.verify(message.queryStringLength, long + 1); if (error) return "queryStringLength." + error; } - if (message.queryPlansPerMinute != null && message.hasOwnProperty("queryPlansPerMinute")) { - var error = $root.google.protobuf.Int32Value.verify(message.queryPlansPerMinute); + if (message.queryPlansPerMinute != null && Object.hasOwnProperty.call(message, "queryPlansPerMinute")) { + var error = $root.google.protobuf.Int32Value.verify(message.queryPlansPerMinute, long + 1); if (error) return "queryPlansPerMinute." + error; } - if (message.enhancedQueryInsightsEnabled != null && message.hasOwnProperty("enhancedQueryInsightsEnabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.enhancedQueryInsightsEnabled); + if (message.enhancedQueryInsightsEnabled != null && Object.hasOwnProperty.call(message, "enhancedQueryInsightsEnabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.enhancedQueryInsightsEnabled, long + 1); if (error) return "enhancedQueryInsightsEnabled." + error; } @@ -14645,9 +15699,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InsightsConfig} InsightsConfig */ - InsightsConfig.fromObject = function fromObject(object) { + InsightsConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InsightsConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InsightsConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InsightsConfig(); if (object.queryInsightsEnabled != null) message.queryInsightsEnabled = Boolean(object.queryInsightsEnabled); @@ -14656,19 +15716,19 @@ if (object.recordApplicationTags != null) message.recordApplicationTags = Boolean(object.recordApplicationTags); if (object.queryStringLength != null) { - if (typeof object.queryStringLength !== "object") + if (!$util.isObject(object.queryStringLength)) throw TypeError(".google.cloud.sql.v1.InsightsConfig.queryStringLength: object expected"); - message.queryStringLength = $root.google.protobuf.Int32Value.fromObject(object.queryStringLength); + message.queryStringLength = $root.google.protobuf.Int32Value.fromObject(object.queryStringLength, long + 1); } if (object.queryPlansPerMinute != null) { - if (typeof object.queryPlansPerMinute !== "object") + if (!$util.isObject(object.queryPlansPerMinute)) throw TypeError(".google.cloud.sql.v1.InsightsConfig.queryPlansPerMinute: object expected"); - message.queryPlansPerMinute = $root.google.protobuf.Int32Value.fromObject(object.queryPlansPerMinute); + message.queryPlansPerMinute = $root.google.protobuf.Int32Value.fromObject(object.queryPlansPerMinute, long + 1); } if (object.enhancedQueryInsightsEnabled != null) { - if (typeof object.enhancedQueryInsightsEnabled !== "object") + if (!$util.isObject(object.enhancedQueryInsightsEnabled)) throw TypeError(".google.cloud.sql.v1.InsightsConfig.enhancedQueryInsightsEnabled: object expected"); - message.enhancedQueryInsightsEnabled = $root.google.protobuf.BoolValue.fromObject(object.enhancedQueryInsightsEnabled); + message.enhancedQueryInsightsEnabled = $root.google.protobuf.BoolValue.fromObject(object.enhancedQueryInsightsEnabled, long + 1); } return message; }; @@ -14682,9 +15742,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InsightsConfig.toObject = function toObject(message, options) { + InsightsConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.queryInsightsEnabled = false; @@ -14694,18 +15758,18 @@ object.queryPlansPerMinute = null; object.enhancedQueryInsightsEnabled = null; } - if (message.queryInsightsEnabled != null && message.hasOwnProperty("queryInsightsEnabled")) + if (message.queryInsightsEnabled != null && Object.hasOwnProperty.call(message, "queryInsightsEnabled")) object.queryInsightsEnabled = message.queryInsightsEnabled; - if (message.recordClientAddress != null && message.hasOwnProperty("recordClientAddress")) + if (message.recordClientAddress != null && Object.hasOwnProperty.call(message, "recordClientAddress")) object.recordClientAddress = message.recordClientAddress; - if (message.recordApplicationTags != null && message.hasOwnProperty("recordApplicationTags")) + if (message.recordApplicationTags != null && Object.hasOwnProperty.call(message, "recordApplicationTags")) object.recordApplicationTags = message.recordApplicationTags; - if (message.queryStringLength != null && message.hasOwnProperty("queryStringLength")) - object.queryStringLength = $root.google.protobuf.Int32Value.toObject(message.queryStringLength, options); - if (message.queryPlansPerMinute != null && message.hasOwnProperty("queryPlansPerMinute")) - object.queryPlansPerMinute = $root.google.protobuf.Int32Value.toObject(message.queryPlansPerMinute, options); - if (message.enhancedQueryInsightsEnabled != null && message.hasOwnProperty("enhancedQueryInsightsEnabled")) - object.enhancedQueryInsightsEnabled = $root.google.protobuf.BoolValue.toObject(message.enhancedQueryInsightsEnabled, options); + if (message.queryStringLength != null && Object.hasOwnProperty.call(message, "queryStringLength")) + object.queryStringLength = $root.google.protobuf.Int32Value.toObject(message.queryStringLength, options, q + 1); + if (message.queryPlansPerMinute != null && Object.hasOwnProperty.call(message, "queryPlansPerMinute")) + object.queryPlansPerMinute = $root.google.protobuf.Int32Value.toObject(message.queryPlansPerMinute, options, q + 1); + if (message.enhancedQueryInsightsEnabled != null && Object.hasOwnProperty.call(message, "enhancedQueryInsightsEnabled")) + object.enhancedQueryInsightsEnabled = $root.google.protobuf.BoolValue.toObject(message.enhancedQueryInsightsEnabled, options, q + 1); return object; }; @@ -14768,7 +15832,7 @@ function MySqlReplicaConfiguration(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -14881,9 +15945,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MySqlReplicaConfiguration.encode = function encode(message, writer) { + MySqlReplicaConfiguration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.dumpFilePath != null && Object.hasOwnProperty.call(message, "dumpFilePath")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.dumpFilePath); if (message.username != null && Object.hasOwnProperty.call(message, "username")) @@ -14891,9 +15959,9 @@ if (message.password != null && Object.hasOwnProperty.call(message, "password")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.password); if (message.connectRetryInterval != null && Object.hasOwnProperty.call(message, "connectRetryInterval")) - $root.google.protobuf.Int32Value.encode(message.connectRetryInterval, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.connectRetryInterval, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.masterHeartbeatPeriod != null && Object.hasOwnProperty.call(message, "masterHeartbeatPeriod")) - $root.google.protobuf.Int64Value.encode(message.masterHeartbeatPeriod, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.masterHeartbeatPeriod, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.caCertificate != null && Object.hasOwnProperty.call(message, "caCertificate")) writer.uint32(/* id 6, wireType 2 =*/50).string(message.caCertificate); if (message.clientCertificate != null && Object.hasOwnProperty.call(message, "clientCertificate")) @@ -14903,7 +15971,7 @@ if (message.sslCipher != null && Object.hasOwnProperty.call(message, "sslCipher")) writer.uint32(/* id 9, wireType 2 =*/74).string(message.sslCipher); if (message.verifyServerCertificate != null && Object.hasOwnProperty.call(message, "verifyServerCertificate")) - $root.google.protobuf.BoolValue.encode(message.verifyServerCertificate, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.verifyServerCertificate, writer.uint32(/* id 10, wireType 2 =*/82).fork(), q + 1).ldelim(); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 11, wireType 2 =*/90).string(message.kind); return writer; @@ -14919,7 +15987,7 @@ * @returns {$protobuf.Writer} Writer */ MySqlReplicaConfiguration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -14933,9 +16001,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MySqlReplicaConfiguration.decode = function decode(reader, length, error) { + MySqlReplicaConfiguration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.MySqlReplicaConfiguration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -14955,11 +16027,11 @@ break; } case 4: { - message.connectRetryInterval = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.connectRetryInterval = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.masterHeartbeatPeriod = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.masterHeartbeatPeriod = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { @@ -14979,7 +16051,7 @@ break; } case 10: { - message.verifyServerCertificate = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.verifyServerCertificate = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { @@ -14987,7 +16059,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -15018,46 +16090,50 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MySqlReplicaConfiguration.verify = function verify(message) { + MySqlReplicaConfiguration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.dumpFilePath != null && message.hasOwnProperty("dumpFilePath")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.dumpFilePath != null && Object.hasOwnProperty.call(message, "dumpFilePath")) if (!$util.isString(message.dumpFilePath)) return "dumpFilePath: string expected"; - if (message.username != null && message.hasOwnProperty("username")) + if (message.username != null && Object.hasOwnProperty.call(message, "username")) if (!$util.isString(message.username)) return "username: string expected"; - if (message.password != null && message.hasOwnProperty("password")) + if (message.password != null && Object.hasOwnProperty.call(message, "password")) if (!$util.isString(message.password)) return "password: string expected"; - if (message.connectRetryInterval != null && message.hasOwnProperty("connectRetryInterval")) { - var error = $root.google.protobuf.Int32Value.verify(message.connectRetryInterval); + if (message.connectRetryInterval != null && Object.hasOwnProperty.call(message, "connectRetryInterval")) { + var error = $root.google.protobuf.Int32Value.verify(message.connectRetryInterval, long + 1); if (error) return "connectRetryInterval." + error; } - if (message.masterHeartbeatPeriod != null && message.hasOwnProperty("masterHeartbeatPeriod")) { - var error = $root.google.protobuf.Int64Value.verify(message.masterHeartbeatPeriod); + if (message.masterHeartbeatPeriod != null && Object.hasOwnProperty.call(message, "masterHeartbeatPeriod")) { + var error = $root.google.protobuf.Int64Value.verify(message.masterHeartbeatPeriod, long + 1); if (error) return "masterHeartbeatPeriod." + error; } - if (message.caCertificate != null && message.hasOwnProperty("caCertificate")) + if (message.caCertificate != null && Object.hasOwnProperty.call(message, "caCertificate")) if (!$util.isString(message.caCertificate)) return "caCertificate: string expected"; - if (message.clientCertificate != null && message.hasOwnProperty("clientCertificate")) + if (message.clientCertificate != null && Object.hasOwnProperty.call(message, "clientCertificate")) if (!$util.isString(message.clientCertificate)) return "clientCertificate: string expected"; - if (message.clientKey != null && message.hasOwnProperty("clientKey")) + if (message.clientKey != null && Object.hasOwnProperty.call(message, "clientKey")) if (!$util.isString(message.clientKey)) return "clientKey: string expected"; - if (message.sslCipher != null && message.hasOwnProperty("sslCipher")) + if (message.sslCipher != null && Object.hasOwnProperty.call(message, "sslCipher")) if (!$util.isString(message.sslCipher)) return "sslCipher: string expected"; - if (message.verifyServerCertificate != null && message.hasOwnProperty("verifyServerCertificate")) { - var error = $root.google.protobuf.BoolValue.verify(message.verifyServerCertificate); + if (message.verifyServerCertificate != null && Object.hasOwnProperty.call(message, "verifyServerCertificate")) { + var error = $root.google.protobuf.BoolValue.verify(message.verifyServerCertificate, long + 1); if (error) return "verifyServerCertificate." + error; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -15071,9 +16147,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.MySqlReplicaConfiguration} MySqlReplicaConfiguration */ - MySqlReplicaConfiguration.fromObject = function fromObject(object) { + MySqlReplicaConfiguration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.MySqlReplicaConfiguration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.MySqlReplicaConfiguration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.MySqlReplicaConfiguration(); if (object.dumpFilePath != null) message.dumpFilePath = String(object.dumpFilePath); @@ -15082,14 +16164,14 @@ if (object.password != null) message.password = String(object.password); if (object.connectRetryInterval != null) { - if (typeof object.connectRetryInterval !== "object") + if (!$util.isObject(object.connectRetryInterval)) throw TypeError(".google.cloud.sql.v1.MySqlReplicaConfiguration.connectRetryInterval: object expected"); - message.connectRetryInterval = $root.google.protobuf.Int32Value.fromObject(object.connectRetryInterval); + message.connectRetryInterval = $root.google.protobuf.Int32Value.fromObject(object.connectRetryInterval, long + 1); } if (object.masterHeartbeatPeriod != null) { - if (typeof object.masterHeartbeatPeriod !== "object") + if (!$util.isObject(object.masterHeartbeatPeriod)) throw TypeError(".google.cloud.sql.v1.MySqlReplicaConfiguration.masterHeartbeatPeriod: object expected"); - message.masterHeartbeatPeriod = $root.google.protobuf.Int64Value.fromObject(object.masterHeartbeatPeriod); + message.masterHeartbeatPeriod = $root.google.protobuf.Int64Value.fromObject(object.masterHeartbeatPeriod, long + 1); } if (object.caCertificate != null) message.caCertificate = String(object.caCertificate); @@ -15100,9 +16182,9 @@ if (object.sslCipher != null) message.sslCipher = String(object.sslCipher); if (object.verifyServerCertificate != null) { - if (typeof object.verifyServerCertificate !== "object") + if (!$util.isObject(object.verifyServerCertificate)) throw TypeError(".google.cloud.sql.v1.MySqlReplicaConfiguration.verifyServerCertificate: object expected"); - message.verifyServerCertificate = $root.google.protobuf.BoolValue.fromObject(object.verifyServerCertificate); + message.verifyServerCertificate = $root.google.protobuf.BoolValue.fromObject(object.verifyServerCertificate, long + 1); } if (object.kind != null) message.kind = String(object.kind); @@ -15118,9 +16200,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MySqlReplicaConfiguration.toObject = function toObject(message, options) { + MySqlReplicaConfiguration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.dumpFilePath = ""; @@ -15135,27 +16221,27 @@ object.verifyServerCertificate = null; object.kind = ""; } - if (message.dumpFilePath != null && message.hasOwnProperty("dumpFilePath")) + if (message.dumpFilePath != null && Object.hasOwnProperty.call(message, "dumpFilePath")) object.dumpFilePath = message.dumpFilePath; - if (message.username != null && message.hasOwnProperty("username")) + if (message.username != null && Object.hasOwnProperty.call(message, "username")) object.username = message.username; - if (message.password != null && message.hasOwnProperty("password")) + if (message.password != null && Object.hasOwnProperty.call(message, "password")) object.password = message.password; - if (message.connectRetryInterval != null && message.hasOwnProperty("connectRetryInterval")) - object.connectRetryInterval = $root.google.protobuf.Int32Value.toObject(message.connectRetryInterval, options); - if (message.masterHeartbeatPeriod != null && message.hasOwnProperty("masterHeartbeatPeriod")) - object.masterHeartbeatPeriod = $root.google.protobuf.Int64Value.toObject(message.masterHeartbeatPeriod, options); - if (message.caCertificate != null && message.hasOwnProperty("caCertificate")) + if (message.connectRetryInterval != null && Object.hasOwnProperty.call(message, "connectRetryInterval")) + object.connectRetryInterval = $root.google.protobuf.Int32Value.toObject(message.connectRetryInterval, options, q + 1); + if (message.masterHeartbeatPeriod != null && Object.hasOwnProperty.call(message, "masterHeartbeatPeriod")) + object.masterHeartbeatPeriod = $root.google.protobuf.Int64Value.toObject(message.masterHeartbeatPeriod, options, q + 1); + if (message.caCertificate != null && Object.hasOwnProperty.call(message, "caCertificate")) object.caCertificate = message.caCertificate; - if (message.clientCertificate != null && message.hasOwnProperty("clientCertificate")) + if (message.clientCertificate != null && Object.hasOwnProperty.call(message, "clientCertificate")) object.clientCertificate = message.clientCertificate; - if (message.clientKey != null && message.hasOwnProperty("clientKey")) + if (message.clientKey != null && Object.hasOwnProperty.call(message, "clientKey")) object.clientKey = message.clientKey; - if (message.sslCipher != null && message.hasOwnProperty("sslCipher")) + if (message.sslCipher != null && Object.hasOwnProperty.call(message, "sslCipher")) object.sslCipher = message.sslCipher; - if (message.verifyServerCertificate != null && message.hasOwnProperty("verifyServerCertificate")) - object.verifyServerCertificate = $root.google.protobuf.BoolValue.toObject(message.verifyServerCertificate, options); - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.verifyServerCertificate != null && Object.hasOwnProperty.call(message, "verifyServerCertificate")) + object.verifyServerCertificate = $root.google.protobuf.BoolValue.toObject(message.verifyServerCertificate, options, q + 1); + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -15210,7 +16296,7 @@ function DiskEncryptionConfiguration(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -15251,9 +16337,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DiskEncryptionConfiguration.encode = function encode(message, writer) { + DiskEncryptionConfiguration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kmsKeyName != null && Object.hasOwnProperty.call(message, "kmsKeyName")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kmsKeyName); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -15271,7 +16361,7 @@ * @returns {$protobuf.Writer} Writer */ DiskEncryptionConfiguration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -15285,9 +16375,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DiskEncryptionConfiguration.decode = function decode(reader, length, error) { + DiskEncryptionConfiguration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.DiskEncryptionConfiguration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -15303,7 +16397,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -15334,13 +16428,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DiskEncryptionConfiguration.verify = function verify(message) { + DiskEncryptionConfiguration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kmsKeyName != null && message.hasOwnProperty("kmsKeyName")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kmsKeyName != null && Object.hasOwnProperty.call(message, "kmsKeyName")) if (!$util.isString(message.kmsKeyName)) return "kmsKeyName: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -15354,9 +16452,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.DiskEncryptionConfiguration} DiskEncryptionConfiguration */ - DiskEncryptionConfiguration.fromObject = function fromObject(object) { + DiskEncryptionConfiguration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.DiskEncryptionConfiguration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.DiskEncryptionConfiguration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.DiskEncryptionConfiguration(); if (object.kmsKeyName != null) message.kmsKeyName = String(object.kmsKeyName); @@ -15374,17 +16478,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DiskEncryptionConfiguration.toObject = function toObject(message, options) { + DiskEncryptionConfiguration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kmsKeyName = ""; object.kind = ""; } - if (message.kmsKeyName != null && message.hasOwnProperty("kmsKeyName")) + if (message.kmsKeyName != null && Object.hasOwnProperty.call(message, "kmsKeyName")) object.kmsKeyName = message.kmsKeyName; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -15439,7 +16547,7 @@ function DiskEncryptionStatus(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -15480,9 +16588,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DiskEncryptionStatus.encode = function encode(message, writer) { + DiskEncryptionStatus.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kmsKeyVersionName != null && Object.hasOwnProperty.call(message, "kmsKeyVersionName")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kmsKeyVersionName); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -15500,7 +16612,7 @@ * @returns {$protobuf.Writer} Writer */ DiskEncryptionStatus.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -15514,9 +16626,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DiskEncryptionStatus.decode = function decode(reader, length, error) { + DiskEncryptionStatus.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.DiskEncryptionStatus(); while (reader.pos < end) { var tag = reader.uint32(); @@ -15532,7 +16648,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -15563,13 +16679,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DiskEncryptionStatus.verify = function verify(message) { + DiskEncryptionStatus.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kmsKeyVersionName != null && message.hasOwnProperty("kmsKeyVersionName")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kmsKeyVersionName != null && Object.hasOwnProperty.call(message, "kmsKeyVersionName")) if (!$util.isString(message.kmsKeyVersionName)) return "kmsKeyVersionName: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -15583,9 +16703,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.DiskEncryptionStatus} DiskEncryptionStatus */ - DiskEncryptionStatus.fromObject = function fromObject(object) { + DiskEncryptionStatus.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.DiskEncryptionStatus) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.DiskEncryptionStatus: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.DiskEncryptionStatus(); if (object.kmsKeyVersionName != null) message.kmsKeyVersionName = String(object.kmsKeyVersionName); @@ -15603,17 +16729,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DiskEncryptionStatus.toObject = function toObject(message, options) { + DiskEncryptionStatus.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kmsKeyVersionName = ""; object.kind = ""; } - if (message.kmsKeyVersionName != null && message.hasOwnProperty("kmsKeyVersionName")) + if (message.kmsKeyVersionName != null && Object.hasOwnProperty.call(message, "kmsKeyVersionName")) object.kmsKeyVersionName = message.kmsKeyVersionName; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -15669,7 +16799,7 @@ function IpMapping(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -15718,15 +16848,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - IpMapping.encode = function encode(message, writer) { + IpMapping.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.type != null && Object.hasOwnProperty.call(message, "type")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type); if (message.ipAddress != null && Object.hasOwnProperty.call(message, "ipAddress")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.ipAddress); if (message.timeToRetire != null && Object.hasOwnProperty.call(message, "timeToRetire")) - $root.google.protobuf.Timestamp.encode(message.timeToRetire, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.timeToRetire, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -15740,7 +16874,7 @@ * @returns {$protobuf.Writer} Writer */ IpMapping.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -15754,9 +16888,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - IpMapping.decode = function decode(reader, length, error) { + IpMapping.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.IpMapping(); while (reader.pos < end) { var tag = reader.uint32(); @@ -15772,11 +16910,11 @@ break; } case 3: { - message.timeToRetire = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.timeToRetire = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -15807,10 +16945,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - IpMapping.verify = function verify(message) { + IpMapping.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.type != null && message.hasOwnProperty("type")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.type != null && Object.hasOwnProperty.call(message, "type")) switch (message.type) { default: return "type: enum value expected"; @@ -15821,11 +16963,11 @@ case 4: break; } - if (message.ipAddress != null && message.hasOwnProperty("ipAddress")) + if (message.ipAddress != null && Object.hasOwnProperty.call(message, "ipAddress")) if (!$util.isString(message.ipAddress)) return "ipAddress: string expected"; - if (message.timeToRetire != null && message.hasOwnProperty("timeToRetire")) { - var error = $root.google.protobuf.Timestamp.verify(message.timeToRetire); + if (message.timeToRetire != null && Object.hasOwnProperty.call(message, "timeToRetire")) { + var error = $root.google.protobuf.Timestamp.verify(message.timeToRetire, long + 1); if (error) return "timeToRetire." + error; } @@ -15840,9 +16982,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.IpMapping} IpMapping */ - IpMapping.fromObject = function fromObject(object) { + IpMapping.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.IpMapping) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.IpMapping: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.IpMapping(); switch (object.type) { default: @@ -15875,9 +17023,9 @@ if (object.ipAddress != null) message.ipAddress = String(object.ipAddress); if (object.timeToRetire != null) { - if (typeof object.timeToRetire !== "object") + if (!$util.isObject(object.timeToRetire)) throw TypeError(".google.cloud.sql.v1.IpMapping.timeToRetire: object expected"); - message.timeToRetire = $root.google.protobuf.Timestamp.fromObject(object.timeToRetire); + message.timeToRetire = $root.google.protobuf.Timestamp.fromObject(object.timeToRetire, long + 1); } return message; }; @@ -15891,21 +17039,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - IpMapping.toObject = function toObject(message, options) { + IpMapping.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.type = options.enums === String ? "SQL_IP_ADDRESS_TYPE_UNSPECIFIED" : 0; object.ipAddress = ""; object.timeToRetire = null; } - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = options.enums === String ? $root.google.cloud.sql.v1.SqlIpAddressType[message.type] === undefined ? message.type : $root.google.cloud.sql.v1.SqlIpAddressType[message.type] : message.type; - if (message.ipAddress != null && message.hasOwnProperty("ipAddress")) + if (message.ipAddress != null && Object.hasOwnProperty.call(message, "ipAddress")) object.ipAddress = message.ipAddress; - if (message.timeToRetire != null && message.hasOwnProperty("timeToRetire")) - object.timeToRetire = $root.google.protobuf.Timestamp.toObject(message.timeToRetire, options); + if (message.timeToRetire != null && Object.hasOwnProperty.call(message, "timeToRetire")) + object.timeToRetire = $root.google.protobuf.Timestamp.toObject(message.timeToRetire, options, q + 1); return object; }; @@ -15978,7 +17130,7 @@ function SqlSubOperationType(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -16025,9 +17177,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlSubOperationType.encode = function encode(message, writer) { + SqlSubOperationType.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.maintenanceType != null && Object.hasOwnProperty.call(message, "maintenanceType")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.maintenanceType); return writer; @@ -16043,7 +17199,7 @@ * @returns {$protobuf.Writer} Writer */ SqlSubOperationType.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -16057,9 +17213,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlSubOperationType.decode = function decode(reader, length, error) { + SqlSubOperationType.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlSubOperationType(); while (reader.pos < end) { var tag = reader.uint32(); @@ -16071,7 +17231,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -16102,11 +17262,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlSubOperationType.verify = function verify(message) { + SqlSubOperationType.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.maintenanceType != null && message.hasOwnProperty("maintenanceType")) { + if (message.maintenanceType != null && Object.hasOwnProperty.call(message, "maintenanceType")) { properties.subOperationDetails = 1; switch (message.maintenanceType) { default: @@ -16130,9 +17294,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlSubOperationType} SqlSubOperationType */ - SqlSubOperationType.fromObject = function fromObject(object) { + SqlSubOperationType.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlSubOperationType) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlSubOperationType: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlSubOperationType(); switch (object.maintenanceType) { default: @@ -16174,11 +17344,15 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlSubOperationType.toObject = function toObject(message, options) { + SqlSubOperationType.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.maintenanceType != null && message.hasOwnProperty("maintenanceType")) { + if (message.maintenanceType != null && Object.hasOwnProperty.call(message, "maintenanceType")) { object.maintenanceType = options.enums === String ? $root.google.cloud.sql.v1.SqlMaintenanceType[message.maintenanceType] === undefined ? message.maintenanceType : $root.google.cloud.sql.v1.SqlMaintenanceType[message.maintenanceType] : message.maintenanceType; if (options.oneofs) object.subOperationDetails = "maintenanceType"; @@ -16254,7 +17428,7 @@ function Operation(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -16439,9 +17613,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Operation.encode = function encode(message, writer) { + Operation.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.targetLink != null && Object.hasOwnProperty.call(message, "targetLink")) @@ -16451,19 +17629,19 @@ if (message.user != null && Object.hasOwnProperty.call(message, "user")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.user); if (message.insertTime != null && Object.hasOwnProperty.call(message, "insertTime")) - $root.google.protobuf.Timestamp.encode(message.insertTime, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.insertTime, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) - $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) - $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.error != null && Object.hasOwnProperty.call(message, "error")) - $root.google.cloud.sql.v1.OperationErrors.encode(message.error, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.cloud.sql.v1.OperationErrors.encode(message.error, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); if (message.operationType != null && Object.hasOwnProperty.call(message, "operationType")) writer.uint32(/* id 9, wireType 0 =*/72).int32(message.operationType); if (message.importContext != null && Object.hasOwnProperty.call(message, "importContext")) - $root.google.cloud.sql.v1.ImportContext.encode(message.importContext, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + $root.google.cloud.sql.v1.ImportContext.encode(message.importContext, writer.uint32(/* id 10, wireType 2 =*/82).fork(), q + 1).ldelim(); if (message.exportContext != null && Object.hasOwnProperty.call(message, "exportContext")) - $root.google.cloud.sql.v1.ExportContext.encode(message.exportContext, writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim(); + $root.google.cloud.sql.v1.ExportContext.encode(message.exportContext, writer.uint32(/* id 11, wireType 2 =*/90).fork(), q + 1).ldelim(); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 12, wireType 2 =*/98).string(message.name); if (message.targetId != null && Object.hasOwnProperty.call(message, "targetId")) @@ -16473,15 +17651,15 @@ if (message.targetProject != null && Object.hasOwnProperty.call(message, "targetProject")) writer.uint32(/* id 15, wireType 2 =*/122).string(message.targetProject); if (message.backupContext != null && Object.hasOwnProperty.call(message, "backupContext")) - $root.google.cloud.sql.v1.BackupContext.encode(message.backupContext, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); + $root.google.cloud.sql.v1.BackupContext.encode(message.backupContext, writer.uint32(/* id 17, wireType 2 =*/138).fork(), q + 1).ldelim(); if (message.apiWarning != null && Object.hasOwnProperty.call(message, "apiWarning")) - $root.google.cloud.sql.v1.ApiWarning.encode(message.apiWarning, writer.uint32(/* id 19, wireType 2 =*/154).fork()).ldelim(); + $root.google.cloud.sql.v1.ApiWarning.encode(message.apiWarning, writer.uint32(/* id 19, wireType 2 =*/154).fork(), q + 1).ldelim(); if (message.acquireSsrsLeaseContext != null && Object.hasOwnProperty.call(message, "acquireSsrsLeaseContext")) - $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.encode(message.acquireSsrsLeaseContext, writer.uint32(/* id 20, wireType 2 =*/162).fork()).ldelim(); + $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.encode(message.acquireSsrsLeaseContext, writer.uint32(/* id 20, wireType 2 =*/162).fork(), q + 1).ldelim(); if (message.subOperationType != null && Object.hasOwnProperty.call(message, "subOperationType")) - $root.google.cloud.sql.v1.SqlSubOperationType.encode(message.subOperationType, writer.uint32(/* id 48, wireType 2 =*/386).fork()).ldelim(); + $root.google.cloud.sql.v1.SqlSubOperationType.encode(message.subOperationType, writer.uint32(/* id 48, wireType 2 =*/386).fork(), q + 1).ldelim(); if (message.preCheckMajorVersionUpgradeContext != null && Object.hasOwnProperty.call(message, "preCheckMajorVersionUpgradeContext")) - $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.encode(message.preCheckMajorVersionUpgradeContext, writer.uint32(/* id 50, wireType 2 =*/402).fork()).ldelim(); + $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.encode(message.preCheckMajorVersionUpgradeContext, writer.uint32(/* id 50, wireType 2 =*/402).fork(), q + 1).ldelim(); return writer; }; @@ -16495,7 +17673,7 @@ * @returns {$protobuf.Writer} Writer */ Operation.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -16509,9 +17687,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Operation.decode = function decode(reader, length, error) { + Operation.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.Operation(); while (reader.pos < end) { var tag = reader.uint32(); @@ -16535,23 +17717,23 @@ break; } case 5: { - message.insertTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.insertTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { - message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.error = $root.google.cloud.sql.v1.OperationErrors.decode(reader, reader.uint32()); + message.error = $root.google.cloud.sql.v1.OperationErrors.decode(reader, reader.uint32(), undefined, long + 1); break; } case 19: { - message.apiWarning = $root.google.cloud.sql.v1.ApiWarning.decode(reader, reader.uint32()); + message.apiWarning = $root.google.cloud.sql.v1.ApiWarning.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { @@ -16559,19 +17741,19 @@ break; } case 10: { - message.importContext = $root.google.cloud.sql.v1.ImportContext.decode(reader, reader.uint32()); + message.importContext = $root.google.cloud.sql.v1.ImportContext.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { - message.exportContext = $root.google.cloud.sql.v1.ExportContext.decode(reader, reader.uint32()); + message.exportContext = $root.google.cloud.sql.v1.ExportContext.decode(reader, reader.uint32(), undefined, long + 1); break; } case 17: { - message.backupContext = $root.google.cloud.sql.v1.BackupContext.decode(reader, reader.uint32()); + message.backupContext = $root.google.cloud.sql.v1.BackupContext.decode(reader, reader.uint32(), undefined, long + 1); break; } case 50: { - message.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.decode(reader, reader.uint32()); + message.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.decode(reader, reader.uint32(), undefined, long + 1); break; } case 12: { @@ -16591,15 +17773,15 @@ break; } case 20: { - message.acquireSsrsLeaseContext = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.decode(reader, reader.uint32()); + message.acquireSsrsLeaseContext = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.decode(reader, reader.uint32(), undefined, long + 1); break; } case 48: { - message.subOperationType = $root.google.cloud.sql.v1.SqlSubOperationType.decode(reader, reader.uint32()); + message.subOperationType = $root.google.cloud.sql.v1.SqlSubOperationType.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -16630,16 +17812,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Operation.verify = function verify(message) { + Operation.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.targetLink != null && message.hasOwnProperty("targetLink")) + if (message.targetLink != null && Object.hasOwnProperty.call(message, "targetLink")) if (!$util.isString(message.targetLink)) return "targetLink: string expected"; - if (message.status != null && message.hasOwnProperty("status")) + if (message.status != null && Object.hasOwnProperty.call(message, "status")) switch (message.status) { default: return "status: enum value expected"; @@ -16649,35 +17835,35 @@ case 3: break; } - if (message.user != null && message.hasOwnProperty("user")) + if (message.user != null && Object.hasOwnProperty.call(message, "user")) if (!$util.isString(message.user)) return "user: string expected"; - if (message.insertTime != null && message.hasOwnProperty("insertTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.insertTime); + if (message.insertTime != null && Object.hasOwnProperty.call(message, "insertTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.insertTime, long + 1); if (error) return "insertTime." + error; } - if (message.startTime != null && message.hasOwnProperty("startTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.startTime); + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.startTime, long + 1); if (error) return "startTime." + error; } - if (message.endTime != null && message.hasOwnProperty("endTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.endTime); + if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.endTime, long + 1); if (error) return "endTime." + error; } - if (message.error != null && message.hasOwnProperty("error")) { - var error = $root.google.cloud.sql.v1.OperationErrors.verify(message.error); + if (message.error != null && Object.hasOwnProperty.call(message, "error")) { + var error = $root.google.cloud.sql.v1.OperationErrors.verify(message.error, long + 1); if (error) return "error." + error; } - if (message.apiWarning != null && message.hasOwnProperty("apiWarning")) { - var error = $root.google.cloud.sql.v1.ApiWarning.verify(message.apiWarning); + if (message.apiWarning != null && Object.hasOwnProperty.call(message, "apiWarning")) { + var error = $root.google.cloud.sql.v1.ApiWarning.verify(message.apiWarning, long + 1); if (error) return "apiWarning." + error; } - if (message.operationType != null && message.hasOwnProperty("operationType")) + if (message.operationType != null && Object.hasOwnProperty.call(message, "operationType")) switch (message.operationType) { default: return "operationType: enum value expected"; @@ -16733,47 +17919,48 @@ case 51: case 52: case 53: + case 54: break; } - if (message.importContext != null && message.hasOwnProperty("importContext")) { - var error = $root.google.cloud.sql.v1.ImportContext.verify(message.importContext); + if (message.importContext != null && Object.hasOwnProperty.call(message, "importContext")) { + var error = $root.google.cloud.sql.v1.ImportContext.verify(message.importContext, long + 1); if (error) return "importContext." + error; } - if (message.exportContext != null && message.hasOwnProperty("exportContext")) { - var error = $root.google.cloud.sql.v1.ExportContext.verify(message.exportContext); + if (message.exportContext != null && Object.hasOwnProperty.call(message, "exportContext")) { + var error = $root.google.cloud.sql.v1.ExportContext.verify(message.exportContext, long + 1); if (error) return "exportContext." + error; } - if (message.backupContext != null && message.hasOwnProperty("backupContext")) { - var error = $root.google.cloud.sql.v1.BackupContext.verify(message.backupContext); + if (message.backupContext != null && Object.hasOwnProperty.call(message, "backupContext")) { + var error = $root.google.cloud.sql.v1.BackupContext.verify(message.backupContext, long + 1); if (error) return "backupContext." + error; } - if (message.preCheckMajorVersionUpgradeContext != null && message.hasOwnProperty("preCheckMajorVersionUpgradeContext")) { - var error = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.verify(message.preCheckMajorVersionUpgradeContext); + if (message.preCheckMajorVersionUpgradeContext != null && Object.hasOwnProperty.call(message, "preCheckMajorVersionUpgradeContext")) { + var error = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.verify(message.preCheckMajorVersionUpgradeContext, long + 1); if (error) return "preCheckMajorVersionUpgradeContext." + error; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.targetId != null && message.hasOwnProperty("targetId")) + if (message.targetId != null && Object.hasOwnProperty.call(message, "targetId")) if (!$util.isString(message.targetId)) return "targetId: string expected"; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) if (!$util.isString(message.selfLink)) return "selfLink: string expected"; - if (message.targetProject != null && message.hasOwnProperty("targetProject")) + if (message.targetProject != null && Object.hasOwnProperty.call(message, "targetProject")) if (!$util.isString(message.targetProject)) return "targetProject: string expected"; - if (message.acquireSsrsLeaseContext != null && message.hasOwnProperty("acquireSsrsLeaseContext")) { - var error = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.verify(message.acquireSsrsLeaseContext); + if (message.acquireSsrsLeaseContext != null && Object.hasOwnProperty.call(message, "acquireSsrsLeaseContext")) { + var error = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.verify(message.acquireSsrsLeaseContext, long + 1); if (error) return "acquireSsrsLeaseContext." + error; } - if (message.subOperationType != null && message.hasOwnProperty("subOperationType")) { - var error = $root.google.cloud.sql.v1.SqlSubOperationType.verify(message.subOperationType); + if (message.subOperationType != null && Object.hasOwnProperty.call(message, "subOperationType")) { + var error = $root.google.cloud.sql.v1.SqlSubOperationType.verify(message.subOperationType, long + 1); if (error) return "subOperationType." + error; } @@ -16788,9 +17975,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.Operation} Operation */ - Operation.fromObject = function fromObject(object) { + Operation.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.Operation) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.Operation: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.Operation(); if (object.kind != null) message.kind = String(object.kind); @@ -16823,29 +18016,29 @@ if (object.user != null) message.user = String(object.user); if (object.insertTime != null) { - if (typeof object.insertTime !== "object") + if (!$util.isObject(object.insertTime)) throw TypeError(".google.cloud.sql.v1.Operation.insertTime: object expected"); - message.insertTime = $root.google.protobuf.Timestamp.fromObject(object.insertTime); + message.insertTime = $root.google.protobuf.Timestamp.fromObject(object.insertTime, long + 1); } if (object.startTime != null) { - if (typeof object.startTime !== "object") + if (!$util.isObject(object.startTime)) throw TypeError(".google.cloud.sql.v1.Operation.startTime: object expected"); - message.startTime = $root.google.protobuf.Timestamp.fromObject(object.startTime); + message.startTime = $root.google.protobuf.Timestamp.fromObject(object.startTime, long + 1); } if (object.endTime != null) { - if (typeof object.endTime !== "object") + if (!$util.isObject(object.endTime)) throw TypeError(".google.cloud.sql.v1.Operation.endTime: object expected"); - message.endTime = $root.google.protobuf.Timestamp.fromObject(object.endTime); + message.endTime = $root.google.protobuf.Timestamp.fromObject(object.endTime, long + 1); } if (object.error != null) { - if (typeof object.error !== "object") + if (!$util.isObject(object.error)) throw TypeError(".google.cloud.sql.v1.Operation.error: object expected"); - message.error = $root.google.cloud.sql.v1.OperationErrors.fromObject(object.error); + message.error = $root.google.cloud.sql.v1.OperationErrors.fromObject(object.error, long + 1); } if (object.apiWarning != null) { - if (typeof object.apiWarning !== "object") + if (!$util.isObject(object.apiWarning)) throw TypeError(".google.cloud.sql.v1.Operation.apiWarning: object expected"); - message.apiWarning = $root.google.cloud.sql.v1.ApiWarning.fromObject(object.apiWarning); + message.apiWarning = $root.google.cloud.sql.v1.ApiWarning.fromObject(object.apiWarning, long + 1); } switch (object.operationType) { default: @@ -17062,26 +18255,30 @@ case 53: message.operationType = 53; break; + case "PRE_CHECK_MAJOR_VERSION_UPGRADE": + case 54: + message.operationType = 54; + break; } if (object.importContext != null) { - if (typeof object.importContext !== "object") + if (!$util.isObject(object.importContext)) throw TypeError(".google.cloud.sql.v1.Operation.importContext: object expected"); - message.importContext = $root.google.cloud.sql.v1.ImportContext.fromObject(object.importContext); + message.importContext = $root.google.cloud.sql.v1.ImportContext.fromObject(object.importContext, long + 1); } if (object.exportContext != null) { - if (typeof object.exportContext !== "object") + if (!$util.isObject(object.exportContext)) throw TypeError(".google.cloud.sql.v1.Operation.exportContext: object expected"); - message.exportContext = $root.google.cloud.sql.v1.ExportContext.fromObject(object.exportContext); + message.exportContext = $root.google.cloud.sql.v1.ExportContext.fromObject(object.exportContext, long + 1); } if (object.backupContext != null) { - if (typeof object.backupContext !== "object") + if (!$util.isObject(object.backupContext)) throw TypeError(".google.cloud.sql.v1.Operation.backupContext: object expected"); - message.backupContext = $root.google.cloud.sql.v1.BackupContext.fromObject(object.backupContext); + message.backupContext = $root.google.cloud.sql.v1.BackupContext.fromObject(object.backupContext, long + 1); } if (object.preCheckMajorVersionUpgradeContext != null) { - if (typeof object.preCheckMajorVersionUpgradeContext !== "object") + if (!$util.isObject(object.preCheckMajorVersionUpgradeContext)) throw TypeError(".google.cloud.sql.v1.Operation.preCheckMajorVersionUpgradeContext: object expected"); - message.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.fromObject(object.preCheckMajorVersionUpgradeContext); + message.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.fromObject(object.preCheckMajorVersionUpgradeContext, long + 1); } if (object.name != null) message.name = String(object.name); @@ -17092,14 +18289,14 @@ if (object.targetProject != null) message.targetProject = String(object.targetProject); if (object.acquireSsrsLeaseContext != null) { - if (typeof object.acquireSsrsLeaseContext !== "object") + if (!$util.isObject(object.acquireSsrsLeaseContext)) throw TypeError(".google.cloud.sql.v1.Operation.acquireSsrsLeaseContext: object expected"); - message.acquireSsrsLeaseContext = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.fromObject(object.acquireSsrsLeaseContext); + message.acquireSsrsLeaseContext = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.fromObject(object.acquireSsrsLeaseContext, long + 1); } if (object.subOperationType != null) { - if (typeof object.subOperationType !== "object") + if (!$util.isObject(object.subOperationType)) throw TypeError(".google.cloud.sql.v1.Operation.subOperationType: object expected"); - message.subOperationType = $root.google.cloud.sql.v1.SqlSubOperationType.fromObject(object.subOperationType); + message.subOperationType = $root.google.cloud.sql.v1.SqlSubOperationType.fromObject(object.subOperationType, long + 1); } return message; }; @@ -17113,9 +18310,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Operation.toObject = function toObject(message, options) { + Operation.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -17139,46 +18340,46 @@ object.subOperationType = null; object.preCheckMajorVersionUpgradeContext = null; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.targetLink != null && message.hasOwnProperty("targetLink")) + if (message.targetLink != null && Object.hasOwnProperty.call(message, "targetLink")) object.targetLink = message.targetLink; - if (message.status != null && message.hasOwnProperty("status")) + if (message.status != null && Object.hasOwnProperty.call(message, "status")) object.status = options.enums === String ? $root.google.cloud.sql.v1.Operation.SqlOperationStatus[message.status] === undefined ? message.status : $root.google.cloud.sql.v1.Operation.SqlOperationStatus[message.status] : message.status; - if (message.user != null && message.hasOwnProperty("user")) + if (message.user != null && Object.hasOwnProperty.call(message, "user")) object.user = message.user; - if (message.insertTime != null && message.hasOwnProperty("insertTime")) - object.insertTime = $root.google.protobuf.Timestamp.toObject(message.insertTime, options); - if (message.startTime != null && message.hasOwnProperty("startTime")) - object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options); - if (message.endTime != null && message.hasOwnProperty("endTime")) - object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options); - if (message.error != null && message.hasOwnProperty("error")) - object.error = $root.google.cloud.sql.v1.OperationErrors.toObject(message.error, options); - if (message.operationType != null && message.hasOwnProperty("operationType")) + if (message.insertTime != null && Object.hasOwnProperty.call(message, "insertTime")) + object.insertTime = $root.google.protobuf.Timestamp.toObject(message.insertTime, options, q + 1); + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) + object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options, q + 1); + if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) + object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options, q + 1); + if (message.error != null && Object.hasOwnProperty.call(message, "error")) + object.error = $root.google.cloud.sql.v1.OperationErrors.toObject(message.error, options, q + 1); + if (message.operationType != null && Object.hasOwnProperty.call(message, "operationType")) object.operationType = options.enums === String ? $root.google.cloud.sql.v1.Operation.SqlOperationType[message.operationType] === undefined ? message.operationType : $root.google.cloud.sql.v1.Operation.SqlOperationType[message.operationType] : message.operationType; - if (message.importContext != null && message.hasOwnProperty("importContext")) - object.importContext = $root.google.cloud.sql.v1.ImportContext.toObject(message.importContext, options); - if (message.exportContext != null && message.hasOwnProperty("exportContext")) - object.exportContext = $root.google.cloud.sql.v1.ExportContext.toObject(message.exportContext, options); - if (message.name != null && message.hasOwnProperty("name")) + if (message.importContext != null && Object.hasOwnProperty.call(message, "importContext")) + object.importContext = $root.google.cloud.sql.v1.ImportContext.toObject(message.importContext, options, q + 1); + if (message.exportContext != null && Object.hasOwnProperty.call(message, "exportContext")) + object.exportContext = $root.google.cloud.sql.v1.ExportContext.toObject(message.exportContext, options, q + 1); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.targetId != null && message.hasOwnProperty("targetId")) + if (message.targetId != null && Object.hasOwnProperty.call(message, "targetId")) object.targetId = message.targetId; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) object.selfLink = message.selfLink; - if (message.targetProject != null && message.hasOwnProperty("targetProject")) + if (message.targetProject != null && Object.hasOwnProperty.call(message, "targetProject")) object.targetProject = message.targetProject; - if (message.backupContext != null && message.hasOwnProperty("backupContext")) - object.backupContext = $root.google.cloud.sql.v1.BackupContext.toObject(message.backupContext, options); - if (message.apiWarning != null && message.hasOwnProperty("apiWarning")) - object.apiWarning = $root.google.cloud.sql.v1.ApiWarning.toObject(message.apiWarning, options); - if (message.acquireSsrsLeaseContext != null && message.hasOwnProperty("acquireSsrsLeaseContext")) - object.acquireSsrsLeaseContext = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.toObject(message.acquireSsrsLeaseContext, options); - if (message.subOperationType != null && message.hasOwnProperty("subOperationType")) - object.subOperationType = $root.google.cloud.sql.v1.SqlSubOperationType.toObject(message.subOperationType, options); - if (message.preCheckMajorVersionUpgradeContext != null && message.hasOwnProperty("preCheckMajorVersionUpgradeContext")) - object.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.toObject(message.preCheckMajorVersionUpgradeContext, options); + if (message.backupContext != null && Object.hasOwnProperty.call(message, "backupContext")) + object.backupContext = $root.google.cloud.sql.v1.BackupContext.toObject(message.backupContext, options, q + 1); + if (message.apiWarning != null && Object.hasOwnProperty.call(message, "apiWarning")) + object.apiWarning = $root.google.cloud.sql.v1.ApiWarning.toObject(message.apiWarning, options, q + 1); + if (message.acquireSsrsLeaseContext != null && Object.hasOwnProperty.call(message, "acquireSsrsLeaseContext")) + object.acquireSsrsLeaseContext = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.toObject(message.acquireSsrsLeaseContext, options, q + 1); + if (message.subOperationType != null && Object.hasOwnProperty.call(message, "subOperationType")) + object.subOperationType = $root.google.cloud.sql.v1.SqlSubOperationType.toObject(message.subOperationType, options, q + 1); + if (message.preCheckMajorVersionUpgradeContext != null && Object.hasOwnProperty.call(message, "preCheckMajorVersionUpgradeContext")) + object.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.toObject(message.preCheckMajorVersionUpgradeContext, options, q + 1); return object; }; @@ -17264,6 +18465,7 @@ * @property {number} ENHANCED_BACKUP=51 ENHANCED_BACKUP value * @property {number} REPAIR_READ_POOL=52 REPAIR_READ_POOL value * @property {number} CREATE_READ_POOL=53 CREATE_READ_POOL value + * @property {number} PRE_CHECK_MAJOR_VERSION_UPGRADE=54 PRE_CHECK_MAJOR_VERSION_UPGRADE value */ Operation.SqlOperationType = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -17319,6 +18521,7 @@ values[valuesById[51] = "ENHANCED_BACKUP"] = 51; values[valuesById[52] = "REPAIR_READ_POOL"] = 52; values[valuesById[53] = "CREATE_READ_POOL"] = 53; + values[valuesById[54] = "PRE_CHECK_MAJOR_VERSION_UPGRADE"] = 54; return values; })(); @@ -17365,7 +18568,7 @@ function OperationError(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -17414,9 +18617,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - OperationError.encode = function encode(message, writer) { + OperationError.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.code != null && Object.hasOwnProperty.call(message, "code")) @@ -17436,7 +18643,7 @@ * @returns {$protobuf.Writer} Writer */ OperationError.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -17450,9 +18657,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OperationError.decode = function decode(reader, length, error) { + OperationError.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.OperationError(); while (reader.pos < end) { var tag = reader.uint32(); @@ -17472,7 +18683,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -17503,16 +18714,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OperationError.verify = function verify(message) { + OperationError.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.code != null && message.hasOwnProperty("code")) + if (message.code != null && Object.hasOwnProperty.call(message, "code")) if (!$util.isString(message.code)) return "code: string expected"; - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) if (!$util.isString(message.message)) return "message: string expected"; return null; @@ -17526,9 +18741,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.OperationError} OperationError */ - OperationError.fromObject = function fromObject(object) { + OperationError.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.OperationError) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.OperationError: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.OperationError(); if (object.kind != null) message.kind = String(object.kind); @@ -17548,20 +18769,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - OperationError.toObject = function toObject(message, options) { + OperationError.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.code = ""; object.message = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.code != null && message.hasOwnProperty("code")) + if (message.code != null && Object.hasOwnProperty.call(message, "code")) object.code = message.code; - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) object.message = message.message; return object; }; @@ -17617,7 +18842,7 @@ this.errors = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -17658,14 +18883,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - OperationErrors.encode = function encode(message, writer) { + OperationErrors.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.errors != null && message.errors.length) for (var i = 0; i < message.errors.length; ++i) - $root.google.cloud.sql.v1.OperationError.encode(message.errors[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.OperationError.encode(message.errors[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -17679,7 +18908,7 @@ * @returns {$protobuf.Writer} Writer */ OperationErrors.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -17693,9 +18922,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OperationErrors.decode = function decode(reader, length, error) { + OperationErrors.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.OperationErrors(); while (reader.pos < end) { var tag = reader.uint32(); @@ -17709,11 +18942,11 @@ case 2: { if (!(message.errors && message.errors.length)) message.errors = []; - message.errors.push($root.google.cloud.sql.v1.OperationError.decode(reader, reader.uint32())); + message.errors.push($root.google.cloud.sql.v1.OperationError.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -17744,17 +18977,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OperationErrors.verify = function verify(message) { + OperationErrors.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.errors != null && message.hasOwnProperty("errors")) { + if (message.errors != null && Object.hasOwnProperty.call(message, "errors")) { if (!Array.isArray(message.errors)) return "errors: array expected"; for (var i = 0; i < message.errors.length; ++i) { - var error = $root.google.cloud.sql.v1.OperationError.verify(message.errors[i]); + var error = $root.google.cloud.sql.v1.OperationError.verify(message.errors[i], long + 1); if (error) return "errors." + error; } @@ -17770,9 +19007,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.OperationErrors} OperationErrors */ - OperationErrors.fromObject = function fromObject(object) { + OperationErrors.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.OperationErrors) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.OperationErrors: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.OperationErrors(); if (object.kind != null) message.kind = String(object.kind); @@ -17781,9 +19024,9 @@ throw TypeError(".google.cloud.sql.v1.OperationErrors.errors: array expected"); message.errors = []; for (var i = 0; i < object.errors.length; ++i) { - if (typeof object.errors[i] !== "object") + if (!$util.isObject(object.errors[i])) throw TypeError(".google.cloud.sql.v1.OperationErrors.errors: object expected"); - message.errors[i] = $root.google.cloud.sql.v1.OperationError.fromObject(object.errors[i]); + message.errors[i] = $root.google.cloud.sql.v1.OperationError.fromObject(object.errors[i], long + 1); } } return message; @@ -17798,20 +19041,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - OperationErrors.toObject = function toObject(message, options) { + OperationErrors.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.errors = []; if (options.defaults) object.kind = ""; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.errors && message.errors.length) { object.errors = []; for (var j = 0; j < message.errors.length; ++j) - object.errors[j] = $root.google.cloud.sql.v1.OperationError.toObject(message.errors[j], options); + object.errors[j] = $root.google.cloud.sql.v1.OperationError.toObject(message.errors[j], options, q + 1); } return object; }; @@ -17871,7 +19118,7 @@ function PasswordValidationPolicy(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -17952,23 +19199,27 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PasswordValidationPolicy.encode = function encode(message, writer) { + PasswordValidationPolicy.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.minLength != null && Object.hasOwnProperty.call(message, "minLength")) - $root.google.protobuf.Int32Value.encode(message.minLength, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.minLength, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.complexity != null && Object.hasOwnProperty.call(message, "complexity")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.complexity); if (message.reuseInterval != null && Object.hasOwnProperty.call(message, "reuseInterval")) - $root.google.protobuf.Int32Value.encode(message.reuseInterval, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.reuseInterval, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.disallowUsernameSubstring != null && Object.hasOwnProperty.call(message, "disallowUsernameSubstring")) - $root.google.protobuf.BoolValue.encode(message.disallowUsernameSubstring, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.disallowUsernameSubstring, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.passwordChangeInterval != null && Object.hasOwnProperty.call(message, "passwordChangeInterval")) - $root.google.protobuf.Duration.encode(message.passwordChangeInterval, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.passwordChangeInterval, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.enablePasswordPolicy != null && Object.hasOwnProperty.call(message, "enablePasswordPolicy")) - $root.google.protobuf.BoolValue.encode(message.enablePasswordPolicy, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.enablePasswordPolicy, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.disallowCompromisedCredentials != null && Object.hasOwnProperty.call(message, "disallowCompromisedCredentials")) - $root.google.protobuf.BoolValue.encode(message.disallowCompromisedCredentials, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.disallowCompromisedCredentials, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); return writer; }; @@ -17982,7 +19233,7 @@ * @returns {$protobuf.Writer} Writer */ PasswordValidationPolicy.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -17996,9 +19247,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PasswordValidationPolicy.decode = function decode(reader, length, error) { + PasswordValidationPolicy.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.PasswordValidationPolicy(); while (reader.pos < end) { var tag = reader.uint32(); @@ -18006,7 +19261,7 @@ break; switch (tag >>> 3) { case 1: { - message.minLength = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.minLength = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -18014,27 +19269,27 @@ break; } case 3: { - message.reuseInterval = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.reuseInterval = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { - message.disallowUsernameSubstring = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.disallowUsernameSubstring = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.passwordChangeInterval = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.passwordChangeInterval = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.enablePasswordPolicy = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.enablePasswordPolicy = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { - message.disallowCompromisedCredentials = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.disallowCompromisedCredentials = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -18065,15 +19320,19 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PasswordValidationPolicy.verify = function verify(message) { + PasswordValidationPolicy.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.minLength != null && message.hasOwnProperty("minLength")) { - var error = $root.google.protobuf.Int32Value.verify(message.minLength); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.minLength != null && Object.hasOwnProperty.call(message, "minLength")) { + var error = $root.google.protobuf.Int32Value.verify(message.minLength, long + 1); if (error) return "minLength." + error; } - if (message.complexity != null && message.hasOwnProperty("complexity")) + if (message.complexity != null && Object.hasOwnProperty.call(message, "complexity")) switch (message.complexity) { default: return "complexity: enum value expected"; @@ -18081,28 +19340,28 @@ case 1: break; } - if (message.reuseInterval != null && message.hasOwnProperty("reuseInterval")) { - var error = $root.google.protobuf.Int32Value.verify(message.reuseInterval); + if (message.reuseInterval != null && Object.hasOwnProperty.call(message, "reuseInterval")) { + var error = $root.google.protobuf.Int32Value.verify(message.reuseInterval, long + 1); if (error) return "reuseInterval." + error; } - if (message.disallowUsernameSubstring != null && message.hasOwnProperty("disallowUsernameSubstring")) { - var error = $root.google.protobuf.BoolValue.verify(message.disallowUsernameSubstring); + if (message.disallowUsernameSubstring != null && Object.hasOwnProperty.call(message, "disallowUsernameSubstring")) { + var error = $root.google.protobuf.BoolValue.verify(message.disallowUsernameSubstring, long + 1); if (error) return "disallowUsernameSubstring." + error; } - if (message.passwordChangeInterval != null && message.hasOwnProperty("passwordChangeInterval")) { - var error = $root.google.protobuf.Duration.verify(message.passwordChangeInterval); + if (message.passwordChangeInterval != null && Object.hasOwnProperty.call(message, "passwordChangeInterval")) { + var error = $root.google.protobuf.Duration.verify(message.passwordChangeInterval, long + 1); if (error) return "passwordChangeInterval." + error; } - if (message.enablePasswordPolicy != null && message.hasOwnProperty("enablePasswordPolicy")) { - var error = $root.google.protobuf.BoolValue.verify(message.enablePasswordPolicy); + if (message.enablePasswordPolicy != null && Object.hasOwnProperty.call(message, "enablePasswordPolicy")) { + var error = $root.google.protobuf.BoolValue.verify(message.enablePasswordPolicy, long + 1); if (error) return "enablePasswordPolicy." + error; } - if (message.disallowCompromisedCredentials != null && message.hasOwnProperty("disallowCompromisedCredentials")) { - var error = $root.google.protobuf.BoolValue.verify(message.disallowCompromisedCredentials); + if (message.disallowCompromisedCredentials != null && Object.hasOwnProperty.call(message, "disallowCompromisedCredentials")) { + var error = $root.google.protobuf.BoolValue.verify(message.disallowCompromisedCredentials, long + 1); if (error) return "disallowCompromisedCredentials." + error; } @@ -18117,14 +19376,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.PasswordValidationPolicy} PasswordValidationPolicy */ - PasswordValidationPolicy.fromObject = function fromObject(object) { + PasswordValidationPolicy.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.PasswordValidationPolicy) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.PasswordValidationPolicy: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.PasswordValidationPolicy(); if (object.minLength != null) { - if (typeof object.minLength !== "object") + if (!$util.isObject(object.minLength)) throw TypeError(".google.cloud.sql.v1.PasswordValidationPolicy.minLength: object expected"); - message.minLength = $root.google.protobuf.Int32Value.fromObject(object.minLength); + message.minLength = $root.google.protobuf.Int32Value.fromObject(object.minLength, long + 1); } switch (object.complexity) { default: @@ -18143,29 +19408,29 @@ break; } if (object.reuseInterval != null) { - if (typeof object.reuseInterval !== "object") + if (!$util.isObject(object.reuseInterval)) throw TypeError(".google.cloud.sql.v1.PasswordValidationPolicy.reuseInterval: object expected"); - message.reuseInterval = $root.google.protobuf.Int32Value.fromObject(object.reuseInterval); + message.reuseInterval = $root.google.protobuf.Int32Value.fromObject(object.reuseInterval, long + 1); } if (object.disallowUsernameSubstring != null) { - if (typeof object.disallowUsernameSubstring !== "object") + if (!$util.isObject(object.disallowUsernameSubstring)) throw TypeError(".google.cloud.sql.v1.PasswordValidationPolicy.disallowUsernameSubstring: object expected"); - message.disallowUsernameSubstring = $root.google.protobuf.BoolValue.fromObject(object.disallowUsernameSubstring); + message.disallowUsernameSubstring = $root.google.protobuf.BoolValue.fromObject(object.disallowUsernameSubstring, long + 1); } if (object.passwordChangeInterval != null) { - if (typeof object.passwordChangeInterval !== "object") + if (!$util.isObject(object.passwordChangeInterval)) throw TypeError(".google.cloud.sql.v1.PasswordValidationPolicy.passwordChangeInterval: object expected"); - message.passwordChangeInterval = $root.google.protobuf.Duration.fromObject(object.passwordChangeInterval); + message.passwordChangeInterval = $root.google.protobuf.Duration.fromObject(object.passwordChangeInterval, long + 1); } if (object.enablePasswordPolicy != null) { - if (typeof object.enablePasswordPolicy !== "object") + if (!$util.isObject(object.enablePasswordPolicy)) throw TypeError(".google.cloud.sql.v1.PasswordValidationPolicy.enablePasswordPolicy: object expected"); - message.enablePasswordPolicy = $root.google.protobuf.BoolValue.fromObject(object.enablePasswordPolicy); + message.enablePasswordPolicy = $root.google.protobuf.BoolValue.fromObject(object.enablePasswordPolicy, long + 1); } if (object.disallowCompromisedCredentials != null) { - if (typeof object.disallowCompromisedCredentials !== "object") + if (!$util.isObject(object.disallowCompromisedCredentials)) throw TypeError(".google.cloud.sql.v1.PasswordValidationPolicy.disallowCompromisedCredentials: object expected"); - message.disallowCompromisedCredentials = $root.google.protobuf.BoolValue.fromObject(object.disallowCompromisedCredentials); + message.disallowCompromisedCredentials = $root.google.protobuf.BoolValue.fromObject(object.disallowCompromisedCredentials, long + 1); } return message; }; @@ -18179,9 +19444,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PasswordValidationPolicy.toObject = function toObject(message, options) { + PasswordValidationPolicy.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.minLength = null; @@ -18192,20 +19461,20 @@ object.enablePasswordPolicy = null; object.disallowCompromisedCredentials = null; } - if (message.minLength != null && message.hasOwnProperty("minLength")) - object.minLength = $root.google.protobuf.Int32Value.toObject(message.minLength, options); - if (message.complexity != null && message.hasOwnProperty("complexity")) + if (message.minLength != null && Object.hasOwnProperty.call(message, "minLength")) + object.minLength = $root.google.protobuf.Int32Value.toObject(message.minLength, options, q + 1); + if (message.complexity != null && Object.hasOwnProperty.call(message, "complexity")) object.complexity = options.enums === String ? $root.google.cloud.sql.v1.PasswordValidationPolicy.Complexity[message.complexity] === undefined ? message.complexity : $root.google.cloud.sql.v1.PasswordValidationPolicy.Complexity[message.complexity] : message.complexity; - if (message.reuseInterval != null && message.hasOwnProperty("reuseInterval")) - object.reuseInterval = $root.google.protobuf.Int32Value.toObject(message.reuseInterval, options); - if (message.disallowUsernameSubstring != null && message.hasOwnProperty("disallowUsernameSubstring")) - object.disallowUsernameSubstring = $root.google.protobuf.BoolValue.toObject(message.disallowUsernameSubstring, options); - if (message.passwordChangeInterval != null && message.hasOwnProperty("passwordChangeInterval")) - object.passwordChangeInterval = $root.google.protobuf.Duration.toObject(message.passwordChangeInterval, options); - if (message.enablePasswordPolicy != null && message.hasOwnProperty("enablePasswordPolicy")) - object.enablePasswordPolicy = $root.google.protobuf.BoolValue.toObject(message.enablePasswordPolicy, options); - if (message.disallowCompromisedCredentials != null && message.hasOwnProperty("disallowCompromisedCredentials")) - object.disallowCompromisedCredentials = $root.google.protobuf.BoolValue.toObject(message.disallowCompromisedCredentials, options); + if (message.reuseInterval != null && Object.hasOwnProperty.call(message, "reuseInterval")) + object.reuseInterval = $root.google.protobuf.Int32Value.toObject(message.reuseInterval, options, q + 1); + if (message.disallowUsernameSubstring != null && Object.hasOwnProperty.call(message, "disallowUsernameSubstring")) + object.disallowUsernameSubstring = $root.google.protobuf.BoolValue.toObject(message.disallowUsernameSubstring, options, q + 1); + if (message.passwordChangeInterval != null && Object.hasOwnProperty.call(message, "passwordChangeInterval")) + object.passwordChangeInterval = $root.google.protobuf.Duration.toObject(message.passwordChangeInterval, options, q + 1); + if (message.enablePasswordPolicy != null && Object.hasOwnProperty.call(message, "enablePasswordPolicy")) + object.enablePasswordPolicy = $root.google.protobuf.BoolValue.toObject(message.enablePasswordPolicy, options, q + 1); + if (message.disallowCompromisedCredentials != null && Object.hasOwnProperty.call(message, "disallowCompromisedCredentials")) + object.disallowCompromisedCredentials = $root.google.protobuf.BoolValue.toObject(message.disallowCompromisedCredentials, options, q + 1); return object; }; @@ -18272,7 +19541,7 @@ function DataCacheConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -18305,9 +19574,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DataCacheConfig.encode = function encode(message, writer) { + DataCacheConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.dataCacheEnabled != null && Object.hasOwnProperty.call(message, "dataCacheEnabled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.dataCacheEnabled); return writer; @@ -18323,7 +19596,7 @@ * @returns {$protobuf.Writer} Writer */ DataCacheConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -18337,9 +19610,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DataCacheConfig.decode = function decode(reader, length, error) { + DataCacheConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.DataCacheConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -18351,7 +19628,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -18382,10 +19659,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DataCacheConfig.verify = function verify(message) { + DataCacheConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.dataCacheEnabled != null && message.hasOwnProperty("dataCacheEnabled")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.dataCacheEnabled != null && Object.hasOwnProperty.call(message, "dataCacheEnabled")) if (typeof message.dataCacheEnabled !== "boolean") return "dataCacheEnabled: boolean expected"; return null; @@ -18399,9 +19680,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.DataCacheConfig} DataCacheConfig */ - DataCacheConfig.fromObject = function fromObject(object) { + DataCacheConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.DataCacheConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.DataCacheConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.DataCacheConfig(); if (object.dataCacheEnabled != null) message.dataCacheEnabled = Boolean(object.dataCacheEnabled); @@ -18417,13 +19704,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DataCacheConfig.toObject = function toObject(message, options) { + DataCacheConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.dataCacheEnabled = false; - if (message.dataCacheEnabled != null && message.hasOwnProperty("dataCacheEnabled")) + if (message.dataCacheEnabled != null && Object.hasOwnProperty.call(message, "dataCacheEnabled")) object.dataCacheEnabled = message.dataCacheEnabled; return object; }; @@ -18478,7 +19769,7 @@ function FinalBackupConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -18534,9 +19825,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FinalBackupConfig.encode = function encode(message, writer) { + FinalBackupConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.enabled); if (message.retentionDays != null && Object.hasOwnProperty.call(message, "retentionDays")) @@ -18554,7 +19849,7 @@ * @returns {$protobuf.Writer} Writer */ FinalBackupConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -18568,9 +19863,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FinalBackupConfig.decode = function decode(reader, length, error) { + FinalBackupConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.FinalBackupConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -18586,7 +19885,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -18617,16 +19916,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FinalBackupConfig.verify = function verify(message) { + FinalBackupConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.enabled != null && message.hasOwnProperty("enabled")) { + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) { properties._enabled = 1; if (typeof message.enabled !== "boolean") return "enabled: boolean expected"; } - if (message.retentionDays != null && message.hasOwnProperty("retentionDays")) { + if (message.retentionDays != null && Object.hasOwnProperty.call(message, "retentionDays")) { properties._retentionDays = 1; if (!$util.isInteger(message.retentionDays)) return "retentionDays: integer expected"; @@ -18642,9 +19945,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.FinalBackupConfig} FinalBackupConfig */ - FinalBackupConfig.fromObject = function fromObject(object) { + FinalBackupConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.FinalBackupConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.FinalBackupConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.FinalBackupConfig(); if (object.enabled != null) message.enabled = Boolean(object.enabled); @@ -18662,16 +19971,20 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FinalBackupConfig.toObject = function toObject(message, options) { + FinalBackupConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.enabled != null && message.hasOwnProperty("enabled")) { + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) { object.enabled = message.enabled; if (options.oneofs) object._enabled = "enabled"; } - if (message.retentionDays != null && message.hasOwnProperty("retentionDays")) { + if (message.retentionDays != null && Object.hasOwnProperty.call(message, "retentionDays")) { object.retentionDays = message.retentionDays; if (options.oneofs) object._retentionDays = "retentionDays"; @@ -18755,6 +20068,7 @@ * @property {google.cloud.sql.v1.IConnectionPoolConfig|null} [connectionPoolConfig] Settings connectionPoolConfig * @property {google.cloud.sql.v1.IFinalBackupConfig|null} [finalBackupConfig] Settings finalBackupConfig * @property {google.cloud.sql.v1.IReadPoolAutoScaleConfig|null} [readPoolAutoScaleConfig] Settings readPoolAutoScaleConfig + * @property {google.protobuf.IBoolValue|null} [acceleratedReplicaMode] Settings acceleratedReplicaMode * @property {boolean|null} [autoUpgradeEnabled] Settings autoUpgradeEnabled * @property {google.cloud.sql.v1.ISqlServerEntraIdConfig|null} [entraidConfig] Settings entraidConfig * @property {google.cloud.sql.v1.Settings.DataApiAccess|null} [dataApiAccess] Settings dataApiAccess @@ -18776,7 +20090,7 @@ this.denyMaintenancePeriods = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -19108,6 +20422,14 @@ */ Settings.prototype.readPoolAutoScaleConfig = null; + /** + * Settings acceleratedReplicaMode. + * @member {google.protobuf.IBoolValue|null|undefined} acceleratedReplicaMode + * @memberof google.cloud.sql.v1.Settings + * @instance + */ + Settings.prototype.acceleratedReplicaMode = null; + /** * Settings autoUpgradeEnabled. * @member {boolean|null|undefined} autoUpgradeEnabled @@ -19206,11 +20528,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Settings.encode = function encode(message, writer) { + Settings.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.settingsVersion != null && Object.hasOwnProperty.call(message, "settingsVersion")) - $root.google.protobuf.Int64Value.encode(message.settingsVersion, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.settingsVersion, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.authorizedGaeApplications != null && message.authorizedGaeApplications.length) for (var i = 0; i < message.authorizedGaeApplications.length; ++i) writer.uint32(/* id 2, wireType 2 =*/18).string(message.authorizedGaeApplications[i]); @@ -19228,81 +20554,83 @@ if (message.replicationType != null && Object.hasOwnProperty.call(message, "replicationType")) writer.uint32(/* id 8, wireType 0 =*/64).int32(message.replicationType); if (message.storageAutoResizeLimit != null && Object.hasOwnProperty.call(message, "storageAutoResizeLimit")) - $root.google.protobuf.Int64Value.encode(message.storageAutoResizeLimit, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.storageAutoResizeLimit, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); if (message.activationPolicy != null && Object.hasOwnProperty.call(message, "activationPolicy")) writer.uint32(/* id 10, wireType 0 =*/80).int32(message.activationPolicy); if (message.ipConfiguration != null && Object.hasOwnProperty.call(message, "ipConfiguration")) - $root.google.cloud.sql.v1.IpConfiguration.encode(message.ipConfiguration, writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim(); + $root.google.cloud.sql.v1.IpConfiguration.encode(message.ipConfiguration, writer.uint32(/* id 11, wireType 2 =*/90).fork(), q + 1).ldelim(); if (message.storageAutoResize != null && Object.hasOwnProperty.call(message, "storageAutoResize")) - $root.google.protobuf.BoolValue.encode(message.storageAutoResize, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.storageAutoResize, writer.uint32(/* id 12, wireType 2 =*/98).fork(), q + 1).ldelim(); if (message.locationPreference != null && Object.hasOwnProperty.call(message, "locationPreference")) - $root.google.cloud.sql.v1.LocationPreference.encode(message.locationPreference, writer.uint32(/* id 13, wireType 2 =*/106).fork()).ldelim(); + $root.google.cloud.sql.v1.LocationPreference.encode(message.locationPreference, writer.uint32(/* id 13, wireType 2 =*/106).fork(), q + 1).ldelim(); if (message.databaseFlags != null && message.databaseFlags.length) for (var i = 0; i < message.databaseFlags.length; ++i) - $root.google.cloud.sql.v1.DatabaseFlags.encode(message.databaseFlags[i], writer.uint32(/* id 14, wireType 2 =*/114).fork()).ldelim(); + $root.google.cloud.sql.v1.DatabaseFlags.encode(message.databaseFlags[i], writer.uint32(/* id 14, wireType 2 =*/114).fork(), q + 1).ldelim(); if (message.dataDiskType != null && Object.hasOwnProperty.call(message, "dataDiskType")) writer.uint32(/* id 15, wireType 0 =*/120).int32(message.dataDiskType); if (message.maintenanceWindow != null && Object.hasOwnProperty.call(message, "maintenanceWindow")) - $root.google.cloud.sql.v1.MaintenanceWindow.encode(message.maintenanceWindow, writer.uint32(/* id 16, wireType 2 =*/130).fork()).ldelim(); + $root.google.cloud.sql.v1.MaintenanceWindow.encode(message.maintenanceWindow, writer.uint32(/* id 16, wireType 2 =*/130).fork(), q + 1).ldelim(); if (message.backupConfiguration != null && Object.hasOwnProperty.call(message, "backupConfiguration")) - $root.google.cloud.sql.v1.BackupConfiguration.encode(message.backupConfiguration, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); + $root.google.cloud.sql.v1.BackupConfiguration.encode(message.backupConfiguration, writer.uint32(/* id 17, wireType 2 =*/138).fork(), q + 1).ldelim(); if (message.databaseReplicationEnabled != null && Object.hasOwnProperty.call(message, "databaseReplicationEnabled")) - $root.google.protobuf.BoolValue.encode(message.databaseReplicationEnabled, writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.databaseReplicationEnabled, writer.uint32(/* id 18, wireType 2 =*/146).fork(), q + 1).ldelim(); if (message.crashSafeReplicationEnabled != null && Object.hasOwnProperty.call(message, "crashSafeReplicationEnabled")) - $root.google.protobuf.BoolValue.encode(message.crashSafeReplicationEnabled, writer.uint32(/* id 19, wireType 2 =*/154).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.crashSafeReplicationEnabled, writer.uint32(/* id 19, wireType 2 =*/154).fork(), q + 1).ldelim(); if (message.dataDiskSizeGb != null && Object.hasOwnProperty.call(message, "dataDiskSizeGb")) - $root.google.protobuf.Int64Value.encode(message.dataDiskSizeGb, writer.uint32(/* id 20, wireType 2 =*/162).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.dataDiskSizeGb, writer.uint32(/* id 20, wireType 2 =*/162).fork(), q + 1).ldelim(); if (message.activeDirectoryConfig != null && Object.hasOwnProperty.call(message, "activeDirectoryConfig")) - $root.google.cloud.sql.v1.SqlActiveDirectoryConfig.encode(message.activeDirectoryConfig, writer.uint32(/* id 22, wireType 2 =*/178).fork()).ldelim(); + $root.google.cloud.sql.v1.SqlActiveDirectoryConfig.encode(message.activeDirectoryConfig, writer.uint32(/* id 22, wireType 2 =*/178).fork(), q + 1).ldelim(); if (message.collation != null && Object.hasOwnProperty.call(message, "collation")) writer.uint32(/* id 23, wireType 2 =*/186).string(message.collation); if (message.denyMaintenancePeriods != null && message.denyMaintenancePeriods.length) for (var i = 0; i < message.denyMaintenancePeriods.length; ++i) - $root.google.cloud.sql.v1.DenyMaintenancePeriod.encode(message.denyMaintenancePeriods[i], writer.uint32(/* id 24, wireType 2 =*/194).fork()).ldelim(); + $root.google.cloud.sql.v1.DenyMaintenancePeriod.encode(message.denyMaintenancePeriods[i], writer.uint32(/* id 24, wireType 2 =*/194).fork(), q + 1).ldelim(); if (message.insightsConfig != null && Object.hasOwnProperty.call(message, "insightsConfig")) - $root.google.cloud.sql.v1.InsightsConfig.encode(message.insightsConfig, writer.uint32(/* id 25, wireType 2 =*/202).fork()).ldelim(); + $root.google.cloud.sql.v1.InsightsConfig.encode(message.insightsConfig, writer.uint32(/* id 25, wireType 2 =*/202).fork(), q + 1).ldelim(); if (message.passwordValidationPolicy != null && Object.hasOwnProperty.call(message, "passwordValidationPolicy")) - $root.google.cloud.sql.v1.PasswordValidationPolicy.encode(message.passwordValidationPolicy, writer.uint32(/* id 27, wireType 2 =*/218).fork()).ldelim(); + $root.google.cloud.sql.v1.PasswordValidationPolicy.encode(message.passwordValidationPolicy, writer.uint32(/* id 27, wireType 2 =*/218).fork(), q + 1).ldelim(); if (message.sqlServerAuditConfig != null && Object.hasOwnProperty.call(message, "sqlServerAuditConfig")) - $root.google.cloud.sql.v1.SqlServerAuditConfig.encode(message.sqlServerAuditConfig, writer.uint32(/* id 29, wireType 2 =*/234).fork()).ldelim(); + $root.google.cloud.sql.v1.SqlServerAuditConfig.encode(message.sqlServerAuditConfig, writer.uint32(/* id 29, wireType 2 =*/234).fork(), q + 1).ldelim(); if (message.connectorEnforcement != null && Object.hasOwnProperty.call(message, "connectorEnforcement")) writer.uint32(/* id 32, wireType 0 =*/256).int32(message.connectorEnforcement); if (message.deletionProtectionEnabled != null && Object.hasOwnProperty.call(message, "deletionProtectionEnabled")) - $root.google.protobuf.BoolValue.encode(message.deletionProtectionEnabled, writer.uint32(/* id 33, wireType 2 =*/266).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.deletionProtectionEnabled, writer.uint32(/* id 33, wireType 2 =*/266).fork(), q + 1).ldelim(); if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) writer.uint32(/* id 34, wireType 2 =*/274).string(message.timeZone); if (message.advancedMachineFeatures != null && Object.hasOwnProperty.call(message, "advancedMachineFeatures")) - $root.google.cloud.sql.v1.AdvancedMachineFeatures.encode(message.advancedMachineFeatures, writer.uint32(/* id 35, wireType 2 =*/282).fork()).ldelim(); + $root.google.cloud.sql.v1.AdvancedMachineFeatures.encode(message.advancedMachineFeatures, writer.uint32(/* id 35, wireType 2 =*/282).fork(), q + 1).ldelim(); if (message.dataCacheConfig != null && Object.hasOwnProperty.call(message, "dataCacheConfig")) - $root.google.cloud.sql.v1.DataCacheConfig.encode(message.dataCacheConfig, writer.uint32(/* id 37, wireType 2 =*/298).fork()).ldelim(); + $root.google.cloud.sql.v1.DataCacheConfig.encode(message.dataCacheConfig, writer.uint32(/* id 37, wireType 2 =*/298).fork(), q + 1).ldelim(); if (message.edition != null && Object.hasOwnProperty.call(message, "edition")) writer.uint32(/* id 38, wireType 0 =*/304).int32(message.edition); if (message.replicationLagMaxSeconds != null && Object.hasOwnProperty.call(message, "replicationLagMaxSeconds")) - $root.google.protobuf.Int32Value.encode(message.replicationLagMaxSeconds, writer.uint32(/* id 39, wireType 2 =*/314).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.replicationLagMaxSeconds, writer.uint32(/* id 39, wireType 2 =*/314).fork(), q + 1).ldelim(); if (message.enableGoogleMlIntegration != null && Object.hasOwnProperty.call(message, "enableGoogleMlIntegration")) - $root.google.protobuf.BoolValue.encode(message.enableGoogleMlIntegration, writer.uint32(/* id 40, wireType 2 =*/322).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.enableGoogleMlIntegration, writer.uint32(/* id 40, wireType 2 =*/322).fork(), q + 1).ldelim(); if (message.enableDataplexIntegration != null && Object.hasOwnProperty.call(message, "enableDataplexIntegration")) - $root.google.protobuf.BoolValue.encode(message.enableDataplexIntegration, writer.uint32(/* id 41, wireType 2 =*/330).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.enableDataplexIntegration, writer.uint32(/* id 41, wireType 2 =*/330).fork(), q + 1).ldelim(); if (message.retainBackupsOnDelete != null && Object.hasOwnProperty.call(message, "retainBackupsOnDelete")) - $root.google.protobuf.BoolValue.encode(message.retainBackupsOnDelete, writer.uint32(/* id 42, wireType 2 =*/338).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.retainBackupsOnDelete, writer.uint32(/* id 42, wireType 2 =*/338).fork(), q + 1).ldelim(); if (message.dataDiskProvisionedIops != null && Object.hasOwnProperty.call(message, "dataDiskProvisionedIops")) writer.uint32(/* id 43, wireType 0 =*/344).int64(message.dataDiskProvisionedIops); if (message.dataDiskProvisionedThroughput != null && Object.hasOwnProperty.call(message, "dataDiskProvisionedThroughput")) writer.uint32(/* id 44, wireType 0 =*/352).int64(message.dataDiskProvisionedThroughput); if (message.connectionPoolConfig != null && Object.hasOwnProperty.call(message, "connectionPoolConfig")) - $root.google.cloud.sql.v1.ConnectionPoolConfig.encode(message.connectionPoolConfig, writer.uint32(/* id 45, wireType 2 =*/362).fork()).ldelim(); + $root.google.cloud.sql.v1.ConnectionPoolConfig.encode(message.connectionPoolConfig, writer.uint32(/* id 45, wireType 2 =*/362).fork(), q + 1).ldelim(); if (message.finalBackupConfig != null && Object.hasOwnProperty.call(message, "finalBackupConfig")) - $root.google.cloud.sql.v1.FinalBackupConfig.encode(message.finalBackupConfig, writer.uint32(/* id 47, wireType 2 =*/378).fork()).ldelim(); + $root.google.cloud.sql.v1.FinalBackupConfig.encode(message.finalBackupConfig, writer.uint32(/* id 47, wireType 2 =*/378).fork(), q + 1).ldelim(); if (message.readPoolAutoScaleConfig != null && Object.hasOwnProperty.call(message, "readPoolAutoScaleConfig")) - $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.encode(message.readPoolAutoScaleConfig, writer.uint32(/* id 48, wireType 2 =*/386).fork()).ldelim(); + $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.encode(message.readPoolAutoScaleConfig, writer.uint32(/* id 48, wireType 2 =*/386).fork(), q + 1).ldelim(); + if (message.acceleratedReplicaMode != null && Object.hasOwnProperty.call(message, "acceleratedReplicaMode")) + $root.google.protobuf.BoolValue.encode(message.acceleratedReplicaMode, writer.uint32(/* id 49, wireType 2 =*/394).fork(), q + 1).ldelim(); if (message.autoUpgradeEnabled != null && Object.hasOwnProperty.call(message, "autoUpgradeEnabled")) writer.uint32(/* id 50, wireType 0 =*/400).bool(message.autoUpgradeEnabled); if (message.entraidConfig != null && Object.hasOwnProperty.call(message, "entraidConfig")) - $root.google.cloud.sql.v1.SqlServerEntraIdConfig.encode(message.entraidConfig, writer.uint32(/* id 52, wireType 2 =*/418).fork()).ldelim(); + $root.google.cloud.sql.v1.SqlServerEntraIdConfig.encode(message.entraidConfig, writer.uint32(/* id 52, wireType 2 =*/418).fork(), q + 1).ldelim(); if (message.dataApiAccess != null && Object.hasOwnProperty.call(message, "dataApiAccess")) writer.uint32(/* id 53, wireType 0 =*/424).int32(message.dataApiAccess); if (message.performanceCaptureConfig != null && Object.hasOwnProperty.call(message, "performanceCaptureConfig")) - $root.google.cloud.sql.v1.PerformanceCaptureConfig.encode(message.performanceCaptureConfig, writer.uint32(/* id 54, wireType 2 =*/434).fork()).ldelim(); + $root.google.cloud.sql.v1.PerformanceCaptureConfig.encode(message.performanceCaptureConfig, writer.uint32(/* id 54, wireType 2 =*/434).fork(), q + 1).ldelim(); return writer; }; @@ -19316,7 +20644,7 @@ * @returns {$protobuf.Writer} Writer */ Settings.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -19330,9 +20658,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Settings.decode = function decode(reader, length, error) { + Settings.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.Settings(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -19340,7 +20672,7 @@ break; switch (tag >>> 3) { case 1: { - message.settingsVersion = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.settingsVersion = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -19373,10 +20705,12 @@ value = reader.string(); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.userLabels, key); message.userLabels[key] = value; break; } @@ -19393,7 +20727,7 @@ break; } case 9: { - message.storageAutoResizeLimit = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.storageAutoResizeLimit = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { @@ -19401,21 +20735,21 @@ break; } case 11: { - message.ipConfiguration = $root.google.cloud.sql.v1.IpConfiguration.decode(reader, reader.uint32()); + message.ipConfiguration = $root.google.cloud.sql.v1.IpConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 12: { - message.storageAutoResize = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.storageAutoResize = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 13: { - message.locationPreference = $root.google.cloud.sql.v1.LocationPreference.decode(reader, reader.uint32()); + message.locationPreference = $root.google.cloud.sql.v1.LocationPreference.decode(reader, reader.uint32(), undefined, long + 1); break; } case 14: { if (!(message.databaseFlags && message.databaseFlags.length)) message.databaseFlags = []; - message.databaseFlags.push($root.google.cloud.sql.v1.DatabaseFlags.decode(reader, reader.uint32())); + message.databaseFlags.push($root.google.cloud.sql.v1.DatabaseFlags.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 15: { @@ -19423,27 +20757,27 @@ break; } case 16: { - message.maintenanceWindow = $root.google.cloud.sql.v1.MaintenanceWindow.decode(reader, reader.uint32()); + message.maintenanceWindow = $root.google.cloud.sql.v1.MaintenanceWindow.decode(reader, reader.uint32(), undefined, long + 1); break; } case 17: { - message.backupConfiguration = $root.google.cloud.sql.v1.BackupConfiguration.decode(reader, reader.uint32()); + message.backupConfiguration = $root.google.cloud.sql.v1.BackupConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 18: { - message.databaseReplicationEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.databaseReplicationEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 19: { - message.crashSafeReplicationEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.crashSafeReplicationEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 20: { - message.dataDiskSizeGb = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.dataDiskSizeGb = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 22: { - message.activeDirectoryConfig = $root.google.cloud.sql.v1.SqlActiveDirectoryConfig.decode(reader, reader.uint32()); + message.activeDirectoryConfig = $root.google.cloud.sql.v1.SqlActiveDirectoryConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 23: { @@ -19453,19 +20787,19 @@ case 24: { if (!(message.denyMaintenancePeriods && message.denyMaintenancePeriods.length)) message.denyMaintenancePeriods = []; - message.denyMaintenancePeriods.push($root.google.cloud.sql.v1.DenyMaintenancePeriod.decode(reader, reader.uint32())); + message.denyMaintenancePeriods.push($root.google.cloud.sql.v1.DenyMaintenancePeriod.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 25: { - message.insightsConfig = $root.google.cloud.sql.v1.InsightsConfig.decode(reader, reader.uint32()); + message.insightsConfig = $root.google.cloud.sql.v1.InsightsConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 27: { - message.passwordValidationPolicy = $root.google.cloud.sql.v1.PasswordValidationPolicy.decode(reader, reader.uint32()); + message.passwordValidationPolicy = $root.google.cloud.sql.v1.PasswordValidationPolicy.decode(reader, reader.uint32(), undefined, long + 1); break; } case 29: { - message.sqlServerAuditConfig = $root.google.cloud.sql.v1.SqlServerAuditConfig.decode(reader, reader.uint32()); + message.sqlServerAuditConfig = $root.google.cloud.sql.v1.SqlServerAuditConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 38: { @@ -19477,7 +20811,7 @@ break; } case 33: { - message.deletionProtectionEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.deletionProtectionEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 34: { @@ -19485,27 +20819,27 @@ break; } case 35: { - message.advancedMachineFeatures = $root.google.cloud.sql.v1.AdvancedMachineFeatures.decode(reader, reader.uint32()); + message.advancedMachineFeatures = $root.google.cloud.sql.v1.AdvancedMachineFeatures.decode(reader, reader.uint32(), undefined, long + 1); break; } case 37: { - message.dataCacheConfig = $root.google.cloud.sql.v1.DataCacheConfig.decode(reader, reader.uint32()); + message.dataCacheConfig = $root.google.cloud.sql.v1.DataCacheConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 39: { - message.replicationLagMaxSeconds = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.replicationLagMaxSeconds = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 40: { - message.enableGoogleMlIntegration = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.enableGoogleMlIntegration = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 41: { - message.enableDataplexIntegration = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.enableDataplexIntegration = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 42: { - message.retainBackupsOnDelete = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.retainBackupsOnDelete = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 43: { @@ -19517,15 +20851,19 @@ break; } case 45: { - message.connectionPoolConfig = $root.google.cloud.sql.v1.ConnectionPoolConfig.decode(reader, reader.uint32()); + message.connectionPoolConfig = $root.google.cloud.sql.v1.ConnectionPoolConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 47: { - message.finalBackupConfig = $root.google.cloud.sql.v1.FinalBackupConfig.decode(reader, reader.uint32()); + message.finalBackupConfig = $root.google.cloud.sql.v1.FinalBackupConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 48: { - message.readPoolAutoScaleConfig = $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.decode(reader, reader.uint32()); + message.readPoolAutoScaleConfig = $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + case 49: { + message.acceleratedReplicaMode = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 50: { @@ -19533,7 +20871,7 @@ break; } case 52: { - message.entraidConfig = $root.google.cloud.sql.v1.SqlServerEntraIdConfig.decode(reader, reader.uint32()); + message.entraidConfig = $root.google.cloud.sql.v1.SqlServerEntraIdConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 53: { @@ -19541,11 +20879,11 @@ break; } case 54: { - message.performanceCaptureConfig = $root.google.cloud.sql.v1.PerformanceCaptureConfig.decode(reader, reader.uint32()); + message.performanceCaptureConfig = $root.google.cloud.sql.v1.PerformanceCaptureConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -19576,29 +20914,33 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Settings.verify = function verify(message) { + Settings.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.settingsVersion != null && message.hasOwnProperty("settingsVersion")) { - var error = $root.google.protobuf.Int64Value.verify(message.settingsVersion); + if (message.settingsVersion != null && Object.hasOwnProperty.call(message, "settingsVersion")) { + var error = $root.google.protobuf.Int64Value.verify(message.settingsVersion, long + 1); if (error) return "settingsVersion." + error; } - if (message.authorizedGaeApplications != null && message.hasOwnProperty("authorizedGaeApplications")) { + if (message.authorizedGaeApplications != null && Object.hasOwnProperty.call(message, "authorizedGaeApplications")) { if (!Array.isArray(message.authorizedGaeApplications)) return "authorizedGaeApplications: array expected"; for (var i = 0; i < message.authorizedGaeApplications.length; ++i) if (!$util.isString(message.authorizedGaeApplications[i])) return "authorizedGaeApplications: string[] expected"; } - if (message.tier != null && message.hasOwnProperty("tier")) + if (message.tier != null && Object.hasOwnProperty.call(message, "tier")) if (!$util.isString(message.tier)) return "tier: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.userLabels != null && message.hasOwnProperty("userLabels")) { + if (message.userLabels != null && Object.hasOwnProperty.call(message, "userLabels")) { if (!$util.isObject(message.userLabels)) return "userLabels: object expected"; var key = Object.keys(message.userLabels); @@ -19606,7 +20948,7 @@ if (!$util.isString(message.userLabels[key[i]])) return "userLabels: string{k:string} expected"; } - if (message.availabilityType != null && message.hasOwnProperty("availabilityType")) + if (message.availabilityType != null && Object.hasOwnProperty.call(message, "availabilityType")) switch (message.availabilityType) { default: return "availabilityType: enum value expected"; @@ -19615,7 +20957,7 @@ case 2: break; } - if (message.pricingPlan != null && message.hasOwnProperty("pricingPlan")) + if (message.pricingPlan != null && Object.hasOwnProperty.call(message, "pricingPlan")) switch (message.pricingPlan) { default: return "pricingPlan: enum value expected"; @@ -19624,7 +20966,7 @@ case 2: break; } - if (message.replicationType != null && message.hasOwnProperty("replicationType")) + if (message.replicationType != null && Object.hasOwnProperty.call(message, "replicationType")) switch (message.replicationType) { default: return "replicationType: enum value expected"; @@ -19633,12 +20975,12 @@ case 2: break; } - if (message.storageAutoResizeLimit != null && message.hasOwnProperty("storageAutoResizeLimit")) { - var error = $root.google.protobuf.Int64Value.verify(message.storageAutoResizeLimit); + if (message.storageAutoResizeLimit != null && Object.hasOwnProperty.call(message, "storageAutoResizeLimit")) { + var error = $root.google.protobuf.Int64Value.verify(message.storageAutoResizeLimit, long + 1); if (error) return "storageAutoResizeLimit." + error; } - if (message.activationPolicy != null && message.hasOwnProperty("activationPolicy")) + if (message.activationPolicy != null && Object.hasOwnProperty.call(message, "activationPolicy")) switch (message.activationPolicy) { default: return "activationPolicy: enum value expected"; @@ -19648,31 +20990,31 @@ case 3: break; } - if (message.ipConfiguration != null && message.hasOwnProperty("ipConfiguration")) { - var error = $root.google.cloud.sql.v1.IpConfiguration.verify(message.ipConfiguration); + if (message.ipConfiguration != null && Object.hasOwnProperty.call(message, "ipConfiguration")) { + var error = $root.google.cloud.sql.v1.IpConfiguration.verify(message.ipConfiguration, long + 1); if (error) return "ipConfiguration." + error; } - if (message.storageAutoResize != null && message.hasOwnProperty("storageAutoResize")) { - var error = $root.google.protobuf.BoolValue.verify(message.storageAutoResize); + if (message.storageAutoResize != null && Object.hasOwnProperty.call(message, "storageAutoResize")) { + var error = $root.google.protobuf.BoolValue.verify(message.storageAutoResize, long + 1); if (error) return "storageAutoResize." + error; } - if (message.locationPreference != null && message.hasOwnProperty("locationPreference")) { - var error = $root.google.cloud.sql.v1.LocationPreference.verify(message.locationPreference); + if (message.locationPreference != null && Object.hasOwnProperty.call(message, "locationPreference")) { + var error = $root.google.cloud.sql.v1.LocationPreference.verify(message.locationPreference, long + 1); if (error) return "locationPreference." + error; } - if (message.databaseFlags != null && message.hasOwnProperty("databaseFlags")) { + if (message.databaseFlags != null && Object.hasOwnProperty.call(message, "databaseFlags")) { if (!Array.isArray(message.databaseFlags)) return "databaseFlags: array expected"; for (var i = 0; i < message.databaseFlags.length; ++i) { - var error = $root.google.cloud.sql.v1.DatabaseFlags.verify(message.databaseFlags[i]); + var error = $root.google.cloud.sql.v1.DatabaseFlags.verify(message.databaseFlags[i], long + 1); if (error) return "databaseFlags." + error; } } - if (message.dataDiskType != null && message.hasOwnProperty("dataDiskType")) + if (message.dataDiskType != null && Object.hasOwnProperty.call(message, "dataDiskType")) switch (message.dataDiskType) { default: return "dataDiskType: enum value expected"; @@ -19683,64 +21025,64 @@ case 4: break; } - if (message.maintenanceWindow != null && message.hasOwnProperty("maintenanceWindow")) { - var error = $root.google.cloud.sql.v1.MaintenanceWindow.verify(message.maintenanceWindow); + if (message.maintenanceWindow != null && Object.hasOwnProperty.call(message, "maintenanceWindow")) { + var error = $root.google.cloud.sql.v1.MaintenanceWindow.verify(message.maintenanceWindow, long + 1); if (error) return "maintenanceWindow." + error; } - if (message.backupConfiguration != null && message.hasOwnProperty("backupConfiguration")) { - var error = $root.google.cloud.sql.v1.BackupConfiguration.verify(message.backupConfiguration); + if (message.backupConfiguration != null && Object.hasOwnProperty.call(message, "backupConfiguration")) { + var error = $root.google.cloud.sql.v1.BackupConfiguration.verify(message.backupConfiguration, long + 1); if (error) return "backupConfiguration." + error; } - if (message.databaseReplicationEnabled != null && message.hasOwnProperty("databaseReplicationEnabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.databaseReplicationEnabled); + if (message.databaseReplicationEnabled != null && Object.hasOwnProperty.call(message, "databaseReplicationEnabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.databaseReplicationEnabled, long + 1); if (error) return "databaseReplicationEnabled." + error; } - if (message.crashSafeReplicationEnabled != null && message.hasOwnProperty("crashSafeReplicationEnabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.crashSafeReplicationEnabled); + if (message.crashSafeReplicationEnabled != null && Object.hasOwnProperty.call(message, "crashSafeReplicationEnabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.crashSafeReplicationEnabled, long + 1); if (error) return "crashSafeReplicationEnabled." + error; } - if (message.dataDiskSizeGb != null && message.hasOwnProperty("dataDiskSizeGb")) { - var error = $root.google.protobuf.Int64Value.verify(message.dataDiskSizeGb); + if (message.dataDiskSizeGb != null && Object.hasOwnProperty.call(message, "dataDiskSizeGb")) { + var error = $root.google.protobuf.Int64Value.verify(message.dataDiskSizeGb, long + 1); if (error) return "dataDiskSizeGb." + error; } - if (message.activeDirectoryConfig != null && message.hasOwnProperty("activeDirectoryConfig")) { - var error = $root.google.cloud.sql.v1.SqlActiveDirectoryConfig.verify(message.activeDirectoryConfig); + if (message.activeDirectoryConfig != null && Object.hasOwnProperty.call(message, "activeDirectoryConfig")) { + var error = $root.google.cloud.sql.v1.SqlActiveDirectoryConfig.verify(message.activeDirectoryConfig, long + 1); if (error) return "activeDirectoryConfig." + error; } - if (message.collation != null && message.hasOwnProperty("collation")) + if (message.collation != null && Object.hasOwnProperty.call(message, "collation")) if (!$util.isString(message.collation)) return "collation: string expected"; - if (message.denyMaintenancePeriods != null && message.hasOwnProperty("denyMaintenancePeriods")) { + if (message.denyMaintenancePeriods != null && Object.hasOwnProperty.call(message, "denyMaintenancePeriods")) { if (!Array.isArray(message.denyMaintenancePeriods)) return "denyMaintenancePeriods: array expected"; for (var i = 0; i < message.denyMaintenancePeriods.length; ++i) { - var error = $root.google.cloud.sql.v1.DenyMaintenancePeriod.verify(message.denyMaintenancePeriods[i]); + var error = $root.google.cloud.sql.v1.DenyMaintenancePeriod.verify(message.denyMaintenancePeriods[i], long + 1); if (error) return "denyMaintenancePeriods." + error; } } - if (message.insightsConfig != null && message.hasOwnProperty("insightsConfig")) { - var error = $root.google.cloud.sql.v1.InsightsConfig.verify(message.insightsConfig); + if (message.insightsConfig != null && Object.hasOwnProperty.call(message, "insightsConfig")) { + var error = $root.google.cloud.sql.v1.InsightsConfig.verify(message.insightsConfig, long + 1); if (error) return "insightsConfig." + error; } - if (message.passwordValidationPolicy != null && message.hasOwnProperty("passwordValidationPolicy")) { - var error = $root.google.cloud.sql.v1.PasswordValidationPolicy.verify(message.passwordValidationPolicy); + if (message.passwordValidationPolicy != null && Object.hasOwnProperty.call(message, "passwordValidationPolicy")) { + var error = $root.google.cloud.sql.v1.PasswordValidationPolicy.verify(message.passwordValidationPolicy, long + 1); if (error) return "passwordValidationPolicy." + error; } - if (message.sqlServerAuditConfig != null && message.hasOwnProperty("sqlServerAuditConfig")) { - var error = $root.google.cloud.sql.v1.SqlServerAuditConfig.verify(message.sqlServerAuditConfig); + if (message.sqlServerAuditConfig != null && Object.hasOwnProperty.call(message, "sqlServerAuditConfig")) { + var error = $root.google.cloud.sql.v1.SqlServerAuditConfig.verify(message.sqlServerAuditConfig, long + 1); if (error) return "sqlServerAuditConfig." + error; } - if (message.edition != null && message.hasOwnProperty("edition")) + if (message.edition != null && Object.hasOwnProperty.call(message, "edition")) switch (message.edition) { default: return "edition: enum value expected"; @@ -19749,7 +21091,7 @@ case 3: break; } - if (message.connectorEnforcement != null && message.hasOwnProperty("connectorEnforcement")) + if (message.connectorEnforcement != null && Object.hasOwnProperty.call(message, "connectorEnforcement")) switch (message.connectorEnforcement) { default: return "connectorEnforcement: enum value expected"; @@ -19758,89 +21100,94 @@ case 2: break; } - if (message.deletionProtectionEnabled != null && message.hasOwnProperty("deletionProtectionEnabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.deletionProtectionEnabled); + if (message.deletionProtectionEnabled != null && Object.hasOwnProperty.call(message, "deletionProtectionEnabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.deletionProtectionEnabled, long + 1); if (error) return "deletionProtectionEnabled." + error; } - if (message.timeZone != null && message.hasOwnProperty("timeZone")) + if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) if (!$util.isString(message.timeZone)) return "timeZone: string expected"; - if (message.advancedMachineFeatures != null && message.hasOwnProperty("advancedMachineFeatures")) { - var error = $root.google.cloud.sql.v1.AdvancedMachineFeatures.verify(message.advancedMachineFeatures); + if (message.advancedMachineFeatures != null && Object.hasOwnProperty.call(message, "advancedMachineFeatures")) { + var error = $root.google.cloud.sql.v1.AdvancedMachineFeatures.verify(message.advancedMachineFeatures, long + 1); if (error) return "advancedMachineFeatures." + error; } - if (message.dataCacheConfig != null && message.hasOwnProperty("dataCacheConfig")) { - var error = $root.google.cloud.sql.v1.DataCacheConfig.verify(message.dataCacheConfig); + if (message.dataCacheConfig != null && Object.hasOwnProperty.call(message, "dataCacheConfig")) { + var error = $root.google.cloud.sql.v1.DataCacheConfig.verify(message.dataCacheConfig, long + 1); if (error) return "dataCacheConfig." + error; } - if (message.replicationLagMaxSeconds != null && message.hasOwnProperty("replicationLagMaxSeconds")) { - var error = $root.google.protobuf.Int32Value.verify(message.replicationLagMaxSeconds); + if (message.replicationLagMaxSeconds != null && Object.hasOwnProperty.call(message, "replicationLagMaxSeconds")) { + var error = $root.google.protobuf.Int32Value.verify(message.replicationLagMaxSeconds, long + 1); if (error) return "replicationLagMaxSeconds." + error; } - if (message.enableGoogleMlIntegration != null && message.hasOwnProperty("enableGoogleMlIntegration")) { - var error = $root.google.protobuf.BoolValue.verify(message.enableGoogleMlIntegration); + if (message.enableGoogleMlIntegration != null && Object.hasOwnProperty.call(message, "enableGoogleMlIntegration")) { + var error = $root.google.protobuf.BoolValue.verify(message.enableGoogleMlIntegration, long + 1); if (error) return "enableGoogleMlIntegration." + error; } - if (message.enableDataplexIntegration != null && message.hasOwnProperty("enableDataplexIntegration")) { - var error = $root.google.protobuf.BoolValue.verify(message.enableDataplexIntegration); + if (message.enableDataplexIntegration != null && Object.hasOwnProperty.call(message, "enableDataplexIntegration")) { + var error = $root.google.protobuf.BoolValue.verify(message.enableDataplexIntegration, long + 1); if (error) return "enableDataplexIntegration." + error; } - if (message.retainBackupsOnDelete != null && message.hasOwnProperty("retainBackupsOnDelete")) { - var error = $root.google.protobuf.BoolValue.verify(message.retainBackupsOnDelete); + if (message.retainBackupsOnDelete != null && Object.hasOwnProperty.call(message, "retainBackupsOnDelete")) { + var error = $root.google.protobuf.BoolValue.verify(message.retainBackupsOnDelete, long + 1); if (error) return "retainBackupsOnDelete." + error; } - if (message.dataDiskProvisionedIops != null && message.hasOwnProperty("dataDiskProvisionedIops")) { + if (message.dataDiskProvisionedIops != null && Object.hasOwnProperty.call(message, "dataDiskProvisionedIops")) { properties._dataDiskProvisionedIops = 1; if (!$util.isInteger(message.dataDiskProvisionedIops) && !(message.dataDiskProvisionedIops && $util.isInteger(message.dataDiskProvisionedIops.low) && $util.isInteger(message.dataDiskProvisionedIops.high))) return "dataDiskProvisionedIops: integer|Long expected"; } - if (message.dataDiskProvisionedThroughput != null && message.hasOwnProperty("dataDiskProvisionedThroughput")) { + if (message.dataDiskProvisionedThroughput != null && Object.hasOwnProperty.call(message, "dataDiskProvisionedThroughput")) { properties._dataDiskProvisionedThroughput = 1; if (!$util.isInteger(message.dataDiskProvisionedThroughput) && !(message.dataDiskProvisionedThroughput && $util.isInteger(message.dataDiskProvisionedThroughput.low) && $util.isInteger(message.dataDiskProvisionedThroughput.high))) return "dataDiskProvisionedThroughput: integer|Long expected"; } - if (message.connectionPoolConfig != null && message.hasOwnProperty("connectionPoolConfig")) { + if (message.connectionPoolConfig != null && Object.hasOwnProperty.call(message, "connectionPoolConfig")) { properties._connectionPoolConfig = 1; { - var error = $root.google.cloud.sql.v1.ConnectionPoolConfig.verify(message.connectionPoolConfig); + var error = $root.google.cloud.sql.v1.ConnectionPoolConfig.verify(message.connectionPoolConfig, long + 1); if (error) return "connectionPoolConfig." + error; } } - if (message.finalBackupConfig != null && message.hasOwnProperty("finalBackupConfig")) { + if (message.finalBackupConfig != null && Object.hasOwnProperty.call(message, "finalBackupConfig")) { properties._finalBackupConfig = 1; { - var error = $root.google.cloud.sql.v1.FinalBackupConfig.verify(message.finalBackupConfig); + var error = $root.google.cloud.sql.v1.FinalBackupConfig.verify(message.finalBackupConfig, long + 1); if (error) return "finalBackupConfig." + error; } } - if (message.readPoolAutoScaleConfig != null && message.hasOwnProperty("readPoolAutoScaleConfig")) { + if (message.readPoolAutoScaleConfig != null && Object.hasOwnProperty.call(message, "readPoolAutoScaleConfig")) { properties._readPoolAutoScaleConfig = 1; { - var error = $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.verify(message.readPoolAutoScaleConfig); + var error = $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.verify(message.readPoolAutoScaleConfig, long + 1); if (error) return "readPoolAutoScaleConfig." + error; } } - if (message.autoUpgradeEnabled != null && message.hasOwnProperty("autoUpgradeEnabled")) { + if (message.acceleratedReplicaMode != null && Object.hasOwnProperty.call(message, "acceleratedReplicaMode")) { + var error = $root.google.protobuf.BoolValue.verify(message.acceleratedReplicaMode, long + 1); + if (error) + return "acceleratedReplicaMode." + error; + } + if (message.autoUpgradeEnabled != null && Object.hasOwnProperty.call(message, "autoUpgradeEnabled")) { properties._autoUpgradeEnabled = 1; if (typeof message.autoUpgradeEnabled !== "boolean") return "autoUpgradeEnabled: boolean expected"; } - if (message.entraidConfig != null && message.hasOwnProperty("entraidConfig")) { - var error = $root.google.cloud.sql.v1.SqlServerEntraIdConfig.verify(message.entraidConfig); + if (message.entraidConfig != null && Object.hasOwnProperty.call(message, "entraidConfig")) { + var error = $root.google.cloud.sql.v1.SqlServerEntraIdConfig.verify(message.entraidConfig, long + 1); if (error) return "entraidConfig." + error; } - if (message.dataApiAccess != null && message.hasOwnProperty("dataApiAccess")) { + if (message.dataApiAccess != null && Object.hasOwnProperty.call(message, "dataApiAccess")) { properties._dataApiAccess = 1; switch (message.dataApiAccess) { default: @@ -19851,8 +21198,8 @@ break; } } - if (message.performanceCaptureConfig != null && message.hasOwnProperty("performanceCaptureConfig")) { - var error = $root.google.cloud.sql.v1.PerformanceCaptureConfig.verify(message.performanceCaptureConfig); + if (message.performanceCaptureConfig != null && Object.hasOwnProperty.call(message, "performanceCaptureConfig")) { + var error = $root.google.cloud.sql.v1.PerformanceCaptureConfig.verify(message.performanceCaptureConfig, long + 1); if (error) return "performanceCaptureConfig." + error; } @@ -19867,14 +21214,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.Settings} Settings */ - Settings.fromObject = function fromObject(object) { + Settings.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.Settings) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.Settings: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.Settings(); if (object.settingsVersion != null) { - if (typeof object.settingsVersion !== "object") + if (!$util.isObject(object.settingsVersion)) throw TypeError(".google.cloud.sql.v1.Settings.settingsVersion: object expected"); - message.settingsVersion = $root.google.protobuf.Int64Value.fromObject(object.settingsVersion); + message.settingsVersion = $root.google.protobuf.Int64Value.fromObject(object.settingsVersion, long + 1); } if (object.authorizedGaeApplications) { if (!Array.isArray(object.authorizedGaeApplications)) @@ -19888,11 +21241,14 @@ if (object.kind != null) message.kind = String(object.kind); if (object.userLabels) { - if (typeof object.userLabels !== "object") + if (!$util.isObject(object.userLabels)) throw TypeError(".google.cloud.sql.v1.Settings.userLabels: object expected"); message.userLabels = {}; - for (var keys = Object.keys(object.userLabels), i = 0; i < keys.length; ++i) + for (var keys = Object.keys(object.userLabels), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.userLabels, keys[i]); message.userLabels[keys[i]] = String(object.userLabels[keys[i]]); + } } switch (object.availabilityType) { default: @@ -19955,9 +21311,9 @@ break; } if (object.storageAutoResizeLimit != null) { - if (typeof object.storageAutoResizeLimit !== "object") + if (!$util.isObject(object.storageAutoResizeLimit)) throw TypeError(".google.cloud.sql.v1.Settings.storageAutoResizeLimit: object expected"); - message.storageAutoResizeLimit = $root.google.protobuf.Int64Value.fromObject(object.storageAutoResizeLimit); + message.storageAutoResizeLimit = $root.google.protobuf.Int64Value.fromObject(object.storageAutoResizeLimit, long + 1); } switch (object.activationPolicy) { default: @@ -19984,28 +21340,28 @@ break; } if (object.ipConfiguration != null) { - if (typeof object.ipConfiguration !== "object") + if (!$util.isObject(object.ipConfiguration)) throw TypeError(".google.cloud.sql.v1.Settings.ipConfiguration: object expected"); - message.ipConfiguration = $root.google.cloud.sql.v1.IpConfiguration.fromObject(object.ipConfiguration); + message.ipConfiguration = $root.google.cloud.sql.v1.IpConfiguration.fromObject(object.ipConfiguration, long + 1); } if (object.storageAutoResize != null) { - if (typeof object.storageAutoResize !== "object") + if (!$util.isObject(object.storageAutoResize)) throw TypeError(".google.cloud.sql.v1.Settings.storageAutoResize: object expected"); - message.storageAutoResize = $root.google.protobuf.BoolValue.fromObject(object.storageAutoResize); + message.storageAutoResize = $root.google.protobuf.BoolValue.fromObject(object.storageAutoResize, long + 1); } if (object.locationPreference != null) { - if (typeof object.locationPreference !== "object") + if (!$util.isObject(object.locationPreference)) throw TypeError(".google.cloud.sql.v1.Settings.locationPreference: object expected"); - message.locationPreference = $root.google.cloud.sql.v1.LocationPreference.fromObject(object.locationPreference); + message.locationPreference = $root.google.cloud.sql.v1.LocationPreference.fromObject(object.locationPreference, long + 1); } if (object.databaseFlags) { if (!Array.isArray(object.databaseFlags)) throw TypeError(".google.cloud.sql.v1.Settings.databaseFlags: array expected"); message.databaseFlags = []; for (var i = 0; i < object.databaseFlags.length; ++i) { - if (typeof object.databaseFlags[i] !== "object") + if (!$util.isObject(object.databaseFlags[i])) throw TypeError(".google.cloud.sql.v1.Settings.databaseFlags: object expected"); - message.databaseFlags[i] = $root.google.cloud.sql.v1.DatabaseFlags.fromObject(object.databaseFlags[i]); + message.databaseFlags[i] = $root.google.cloud.sql.v1.DatabaseFlags.fromObject(object.databaseFlags[i], long + 1); } } switch (object.dataDiskType) { @@ -20037,34 +21393,34 @@ break; } if (object.maintenanceWindow != null) { - if (typeof object.maintenanceWindow !== "object") + if (!$util.isObject(object.maintenanceWindow)) throw TypeError(".google.cloud.sql.v1.Settings.maintenanceWindow: object expected"); - message.maintenanceWindow = $root.google.cloud.sql.v1.MaintenanceWindow.fromObject(object.maintenanceWindow); + message.maintenanceWindow = $root.google.cloud.sql.v1.MaintenanceWindow.fromObject(object.maintenanceWindow, long + 1); } if (object.backupConfiguration != null) { - if (typeof object.backupConfiguration !== "object") + if (!$util.isObject(object.backupConfiguration)) throw TypeError(".google.cloud.sql.v1.Settings.backupConfiguration: object expected"); - message.backupConfiguration = $root.google.cloud.sql.v1.BackupConfiguration.fromObject(object.backupConfiguration); + message.backupConfiguration = $root.google.cloud.sql.v1.BackupConfiguration.fromObject(object.backupConfiguration, long + 1); } if (object.databaseReplicationEnabled != null) { - if (typeof object.databaseReplicationEnabled !== "object") + if (!$util.isObject(object.databaseReplicationEnabled)) throw TypeError(".google.cloud.sql.v1.Settings.databaseReplicationEnabled: object expected"); - message.databaseReplicationEnabled = $root.google.protobuf.BoolValue.fromObject(object.databaseReplicationEnabled); + message.databaseReplicationEnabled = $root.google.protobuf.BoolValue.fromObject(object.databaseReplicationEnabled, long + 1); } if (object.crashSafeReplicationEnabled != null) { - if (typeof object.crashSafeReplicationEnabled !== "object") + if (!$util.isObject(object.crashSafeReplicationEnabled)) throw TypeError(".google.cloud.sql.v1.Settings.crashSafeReplicationEnabled: object expected"); - message.crashSafeReplicationEnabled = $root.google.protobuf.BoolValue.fromObject(object.crashSafeReplicationEnabled); + message.crashSafeReplicationEnabled = $root.google.protobuf.BoolValue.fromObject(object.crashSafeReplicationEnabled, long + 1); } if (object.dataDiskSizeGb != null) { - if (typeof object.dataDiskSizeGb !== "object") + if (!$util.isObject(object.dataDiskSizeGb)) throw TypeError(".google.cloud.sql.v1.Settings.dataDiskSizeGb: object expected"); - message.dataDiskSizeGb = $root.google.protobuf.Int64Value.fromObject(object.dataDiskSizeGb); + message.dataDiskSizeGb = $root.google.protobuf.Int64Value.fromObject(object.dataDiskSizeGb, long + 1); } if (object.activeDirectoryConfig != null) { - if (typeof object.activeDirectoryConfig !== "object") + if (!$util.isObject(object.activeDirectoryConfig)) throw TypeError(".google.cloud.sql.v1.Settings.activeDirectoryConfig: object expected"); - message.activeDirectoryConfig = $root.google.cloud.sql.v1.SqlActiveDirectoryConfig.fromObject(object.activeDirectoryConfig); + message.activeDirectoryConfig = $root.google.cloud.sql.v1.SqlActiveDirectoryConfig.fromObject(object.activeDirectoryConfig, long + 1); } if (object.collation != null) message.collation = String(object.collation); @@ -20073,25 +21429,25 @@ throw TypeError(".google.cloud.sql.v1.Settings.denyMaintenancePeriods: array expected"); message.denyMaintenancePeriods = []; for (var i = 0; i < object.denyMaintenancePeriods.length; ++i) { - if (typeof object.denyMaintenancePeriods[i] !== "object") + if (!$util.isObject(object.denyMaintenancePeriods[i])) throw TypeError(".google.cloud.sql.v1.Settings.denyMaintenancePeriods: object expected"); - message.denyMaintenancePeriods[i] = $root.google.cloud.sql.v1.DenyMaintenancePeriod.fromObject(object.denyMaintenancePeriods[i]); + message.denyMaintenancePeriods[i] = $root.google.cloud.sql.v1.DenyMaintenancePeriod.fromObject(object.denyMaintenancePeriods[i], long + 1); } } if (object.insightsConfig != null) { - if (typeof object.insightsConfig !== "object") + if (!$util.isObject(object.insightsConfig)) throw TypeError(".google.cloud.sql.v1.Settings.insightsConfig: object expected"); - message.insightsConfig = $root.google.cloud.sql.v1.InsightsConfig.fromObject(object.insightsConfig); + message.insightsConfig = $root.google.cloud.sql.v1.InsightsConfig.fromObject(object.insightsConfig, long + 1); } if (object.passwordValidationPolicy != null) { - if (typeof object.passwordValidationPolicy !== "object") + if (!$util.isObject(object.passwordValidationPolicy)) throw TypeError(".google.cloud.sql.v1.Settings.passwordValidationPolicy: object expected"); - message.passwordValidationPolicy = $root.google.cloud.sql.v1.PasswordValidationPolicy.fromObject(object.passwordValidationPolicy); + message.passwordValidationPolicy = $root.google.cloud.sql.v1.PasswordValidationPolicy.fromObject(object.passwordValidationPolicy, long + 1); } if (object.sqlServerAuditConfig != null) { - if (typeof object.sqlServerAuditConfig !== "object") + if (!$util.isObject(object.sqlServerAuditConfig)) throw TypeError(".google.cloud.sql.v1.Settings.sqlServerAuditConfig: object expected"); - message.sqlServerAuditConfig = $root.google.cloud.sql.v1.SqlServerAuditConfig.fromObject(object.sqlServerAuditConfig); + message.sqlServerAuditConfig = $root.google.cloud.sql.v1.SqlServerAuditConfig.fromObject(object.sqlServerAuditConfig, long + 1); } switch (object.edition) { default: @@ -20134,45 +21490,45 @@ break; } if (object.deletionProtectionEnabled != null) { - if (typeof object.deletionProtectionEnabled !== "object") + if (!$util.isObject(object.deletionProtectionEnabled)) throw TypeError(".google.cloud.sql.v1.Settings.deletionProtectionEnabled: object expected"); - message.deletionProtectionEnabled = $root.google.protobuf.BoolValue.fromObject(object.deletionProtectionEnabled); + message.deletionProtectionEnabled = $root.google.protobuf.BoolValue.fromObject(object.deletionProtectionEnabled, long + 1); } if (object.timeZone != null) message.timeZone = String(object.timeZone); if (object.advancedMachineFeatures != null) { - if (typeof object.advancedMachineFeatures !== "object") + if (!$util.isObject(object.advancedMachineFeatures)) throw TypeError(".google.cloud.sql.v1.Settings.advancedMachineFeatures: object expected"); - message.advancedMachineFeatures = $root.google.cloud.sql.v1.AdvancedMachineFeatures.fromObject(object.advancedMachineFeatures); + message.advancedMachineFeatures = $root.google.cloud.sql.v1.AdvancedMachineFeatures.fromObject(object.advancedMachineFeatures, long + 1); } if (object.dataCacheConfig != null) { - if (typeof object.dataCacheConfig !== "object") + if (!$util.isObject(object.dataCacheConfig)) throw TypeError(".google.cloud.sql.v1.Settings.dataCacheConfig: object expected"); - message.dataCacheConfig = $root.google.cloud.sql.v1.DataCacheConfig.fromObject(object.dataCacheConfig); + message.dataCacheConfig = $root.google.cloud.sql.v1.DataCacheConfig.fromObject(object.dataCacheConfig, long + 1); } if (object.replicationLagMaxSeconds != null) { - if (typeof object.replicationLagMaxSeconds !== "object") + if (!$util.isObject(object.replicationLagMaxSeconds)) throw TypeError(".google.cloud.sql.v1.Settings.replicationLagMaxSeconds: object expected"); - message.replicationLagMaxSeconds = $root.google.protobuf.Int32Value.fromObject(object.replicationLagMaxSeconds); + message.replicationLagMaxSeconds = $root.google.protobuf.Int32Value.fromObject(object.replicationLagMaxSeconds, long + 1); } if (object.enableGoogleMlIntegration != null) { - if (typeof object.enableGoogleMlIntegration !== "object") + if (!$util.isObject(object.enableGoogleMlIntegration)) throw TypeError(".google.cloud.sql.v1.Settings.enableGoogleMlIntegration: object expected"); - message.enableGoogleMlIntegration = $root.google.protobuf.BoolValue.fromObject(object.enableGoogleMlIntegration); + message.enableGoogleMlIntegration = $root.google.protobuf.BoolValue.fromObject(object.enableGoogleMlIntegration, long + 1); } if (object.enableDataplexIntegration != null) { - if (typeof object.enableDataplexIntegration !== "object") + if (!$util.isObject(object.enableDataplexIntegration)) throw TypeError(".google.cloud.sql.v1.Settings.enableDataplexIntegration: object expected"); - message.enableDataplexIntegration = $root.google.protobuf.BoolValue.fromObject(object.enableDataplexIntegration); + message.enableDataplexIntegration = $root.google.protobuf.BoolValue.fromObject(object.enableDataplexIntegration, long + 1); } if (object.retainBackupsOnDelete != null) { - if (typeof object.retainBackupsOnDelete !== "object") + if (!$util.isObject(object.retainBackupsOnDelete)) throw TypeError(".google.cloud.sql.v1.Settings.retainBackupsOnDelete: object expected"); - message.retainBackupsOnDelete = $root.google.protobuf.BoolValue.fromObject(object.retainBackupsOnDelete); + message.retainBackupsOnDelete = $root.google.protobuf.BoolValue.fromObject(object.retainBackupsOnDelete, long + 1); } if (object.dataDiskProvisionedIops != null) if ($util.Long) - (message.dataDiskProvisionedIops = $util.Long.fromValue(object.dataDiskProvisionedIops)).unsigned = false; + message.dataDiskProvisionedIops = $util.Long.fromValue(object.dataDiskProvisionedIops, false); else if (typeof object.dataDiskProvisionedIops === "string") message.dataDiskProvisionedIops = parseInt(object.dataDiskProvisionedIops, 10); else if (typeof object.dataDiskProvisionedIops === "number") @@ -20181,7 +21537,7 @@ message.dataDiskProvisionedIops = new $util.LongBits(object.dataDiskProvisionedIops.low >>> 0, object.dataDiskProvisionedIops.high >>> 0).toNumber(); if (object.dataDiskProvisionedThroughput != null) if ($util.Long) - (message.dataDiskProvisionedThroughput = $util.Long.fromValue(object.dataDiskProvisionedThroughput)).unsigned = false; + message.dataDiskProvisionedThroughput = $util.Long.fromValue(object.dataDiskProvisionedThroughput, false); else if (typeof object.dataDiskProvisionedThroughput === "string") message.dataDiskProvisionedThroughput = parseInt(object.dataDiskProvisionedThroughput, 10); else if (typeof object.dataDiskProvisionedThroughput === "number") @@ -20189,26 +21545,31 @@ else if (typeof object.dataDiskProvisionedThroughput === "object") message.dataDiskProvisionedThroughput = new $util.LongBits(object.dataDiskProvisionedThroughput.low >>> 0, object.dataDiskProvisionedThroughput.high >>> 0).toNumber(); if (object.connectionPoolConfig != null) { - if (typeof object.connectionPoolConfig !== "object") + if (!$util.isObject(object.connectionPoolConfig)) throw TypeError(".google.cloud.sql.v1.Settings.connectionPoolConfig: object expected"); - message.connectionPoolConfig = $root.google.cloud.sql.v1.ConnectionPoolConfig.fromObject(object.connectionPoolConfig); + message.connectionPoolConfig = $root.google.cloud.sql.v1.ConnectionPoolConfig.fromObject(object.connectionPoolConfig, long + 1); } if (object.finalBackupConfig != null) { - if (typeof object.finalBackupConfig !== "object") + if (!$util.isObject(object.finalBackupConfig)) throw TypeError(".google.cloud.sql.v1.Settings.finalBackupConfig: object expected"); - message.finalBackupConfig = $root.google.cloud.sql.v1.FinalBackupConfig.fromObject(object.finalBackupConfig); + message.finalBackupConfig = $root.google.cloud.sql.v1.FinalBackupConfig.fromObject(object.finalBackupConfig, long + 1); } if (object.readPoolAutoScaleConfig != null) { - if (typeof object.readPoolAutoScaleConfig !== "object") + if (!$util.isObject(object.readPoolAutoScaleConfig)) throw TypeError(".google.cloud.sql.v1.Settings.readPoolAutoScaleConfig: object expected"); - message.readPoolAutoScaleConfig = $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.fromObject(object.readPoolAutoScaleConfig); + message.readPoolAutoScaleConfig = $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.fromObject(object.readPoolAutoScaleConfig, long + 1); + } + if (object.acceleratedReplicaMode != null) { + if (!$util.isObject(object.acceleratedReplicaMode)) + throw TypeError(".google.cloud.sql.v1.Settings.acceleratedReplicaMode: object expected"); + message.acceleratedReplicaMode = $root.google.protobuf.BoolValue.fromObject(object.acceleratedReplicaMode, long + 1); } if (object.autoUpgradeEnabled != null) message.autoUpgradeEnabled = Boolean(object.autoUpgradeEnabled); if (object.entraidConfig != null) { - if (typeof object.entraidConfig !== "object") + if (!$util.isObject(object.entraidConfig)) throw TypeError(".google.cloud.sql.v1.Settings.entraidConfig: object expected"); - message.entraidConfig = $root.google.cloud.sql.v1.SqlServerEntraIdConfig.fromObject(object.entraidConfig); + message.entraidConfig = $root.google.cloud.sql.v1.SqlServerEntraIdConfig.fromObject(object.entraidConfig, long + 1); } switch (object.dataApiAccess) { default: @@ -20231,9 +21592,9 @@ break; } if (object.performanceCaptureConfig != null) { - if (typeof object.performanceCaptureConfig !== "object") + if (!$util.isObject(object.performanceCaptureConfig)) throw TypeError(".google.cloud.sql.v1.Settings.performanceCaptureConfig: object expected"); - message.performanceCaptureConfig = $root.google.cloud.sql.v1.PerformanceCaptureConfig.fromObject(object.performanceCaptureConfig); + message.performanceCaptureConfig = $root.google.cloud.sql.v1.PerformanceCaptureConfig.fromObject(object.performanceCaptureConfig, long + 1); } return message; }; @@ -20247,9 +21608,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Settings.toObject = function toObject(message, options) { + Settings.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.authorizedGaeApplications = []; @@ -20291,139 +21656,149 @@ object.enableGoogleMlIntegration = null; object.enableDataplexIntegration = null; object.retainBackupsOnDelete = null; + object.acceleratedReplicaMode = null; object.entraidConfig = null; object.performanceCaptureConfig = null; } - if (message.settingsVersion != null && message.hasOwnProperty("settingsVersion")) - object.settingsVersion = $root.google.protobuf.Int64Value.toObject(message.settingsVersion, options); + if (message.settingsVersion != null && Object.hasOwnProperty.call(message, "settingsVersion")) + object.settingsVersion = $root.google.protobuf.Int64Value.toObject(message.settingsVersion, options, q + 1); if (message.authorizedGaeApplications && message.authorizedGaeApplications.length) { object.authorizedGaeApplications = []; for (var j = 0; j < message.authorizedGaeApplications.length; ++j) object.authorizedGaeApplications[j] = message.authorizedGaeApplications[j]; } - if (message.tier != null && message.hasOwnProperty("tier")) + if (message.tier != null && Object.hasOwnProperty.call(message, "tier")) object.tier = message.tier; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; var keys2; if (message.userLabels && (keys2 = Object.keys(message.userLabels)).length) { object.userLabels = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.userLabels, keys2[j]); object.userLabels[keys2[j]] = message.userLabels[keys2[j]]; + } } - if (message.availabilityType != null && message.hasOwnProperty("availabilityType")) + if (message.availabilityType != null && Object.hasOwnProperty.call(message, "availabilityType")) object.availabilityType = options.enums === String ? $root.google.cloud.sql.v1.SqlAvailabilityType[message.availabilityType] === undefined ? message.availabilityType : $root.google.cloud.sql.v1.SqlAvailabilityType[message.availabilityType] : message.availabilityType; - if (message.pricingPlan != null && message.hasOwnProperty("pricingPlan")) + if (message.pricingPlan != null && Object.hasOwnProperty.call(message, "pricingPlan")) object.pricingPlan = options.enums === String ? $root.google.cloud.sql.v1.SqlPricingPlan[message.pricingPlan] === undefined ? message.pricingPlan : $root.google.cloud.sql.v1.SqlPricingPlan[message.pricingPlan] : message.pricingPlan; - if (message.replicationType != null && message.hasOwnProperty("replicationType")) + if (message.replicationType != null && Object.hasOwnProperty.call(message, "replicationType")) object.replicationType = options.enums === String ? $root.google.cloud.sql.v1.SqlReplicationType[message.replicationType] === undefined ? message.replicationType : $root.google.cloud.sql.v1.SqlReplicationType[message.replicationType] : message.replicationType; - if (message.storageAutoResizeLimit != null && message.hasOwnProperty("storageAutoResizeLimit")) - object.storageAutoResizeLimit = $root.google.protobuf.Int64Value.toObject(message.storageAutoResizeLimit, options); - if (message.activationPolicy != null && message.hasOwnProperty("activationPolicy")) + if (message.storageAutoResizeLimit != null && Object.hasOwnProperty.call(message, "storageAutoResizeLimit")) + object.storageAutoResizeLimit = $root.google.protobuf.Int64Value.toObject(message.storageAutoResizeLimit, options, q + 1); + if (message.activationPolicy != null && Object.hasOwnProperty.call(message, "activationPolicy")) object.activationPolicy = options.enums === String ? $root.google.cloud.sql.v1.Settings.SqlActivationPolicy[message.activationPolicy] === undefined ? message.activationPolicy : $root.google.cloud.sql.v1.Settings.SqlActivationPolicy[message.activationPolicy] : message.activationPolicy; - if (message.ipConfiguration != null && message.hasOwnProperty("ipConfiguration")) - object.ipConfiguration = $root.google.cloud.sql.v1.IpConfiguration.toObject(message.ipConfiguration, options); - if (message.storageAutoResize != null && message.hasOwnProperty("storageAutoResize")) - object.storageAutoResize = $root.google.protobuf.BoolValue.toObject(message.storageAutoResize, options); - if (message.locationPreference != null && message.hasOwnProperty("locationPreference")) - object.locationPreference = $root.google.cloud.sql.v1.LocationPreference.toObject(message.locationPreference, options); + if (message.ipConfiguration != null && Object.hasOwnProperty.call(message, "ipConfiguration")) + object.ipConfiguration = $root.google.cloud.sql.v1.IpConfiguration.toObject(message.ipConfiguration, options, q + 1); + if (message.storageAutoResize != null && Object.hasOwnProperty.call(message, "storageAutoResize")) + object.storageAutoResize = $root.google.protobuf.BoolValue.toObject(message.storageAutoResize, options, q + 1); + if (message.locationPreference != null && Object.hasOwnProperty.call(message, "locationPreference")) + object.locationPreference = $root.google.cloud.sql.v1.LocationPreference.toObject(message.locationPreference, options, q + 1); if (message.databaseFlags && message.databaseFlags.length) { object.databaseFlags = []; for (var j = 0; j < message.databaseFlags.length; ++j) - object.databaseFlags[j] = $root.google.cloud.sql.v1.DatabaseFlags.toObject(message.databaseFlags[j], options); + object.databaseFlags[j] = $root.google.cloud.sql.v1.DatabaseFlags.toObject(message.databaseFlags[j], options, q + 1); } - if (message.dataDiskType != null && message.hasOwnProperty("dataDiskType")) + if (message.dataDiskType != null && Object.hasOwnProperty.call(message, "dataDiskType")) object.dataDiskType = options.enums === String ? $root.google.cloud.sql.v1.SqlDataDiskType[message.dataDiskType] === undefined ? message.dataDiskType : $root.google.cloud.sql.v1.SqlDataDiskType[message.dataDiskType] : message.dataDiskType; - if (message.maintenanceWindow != null && message.hasOwnProperty("maintenanceWindow")) - object.maintenanceWindow = $root.google.cloud.sql.v1.MaintenanceWindow.toObject(message.maintenanceWindow, options); - if (message.backupConfiguration != null && message.hasOwnProperty("backupConfiguration")) - object.backupConfiguration = $root.google.cloud.sql.v1.BackupConfiguration.toObject(message.backupConfiguration, options); - if (message.databaseReplicationEnabled != null && message.hasOwnProperty("databaseReplicationEnabled")) - object.databaseReplicationEnabled = $root.google.protobuf.BoolValue.toObject(message.databaseReplicationEnabled, options); - if (message.crashSafeReplicationEnabled != null && message.hasOwnProperty("crashSafeReplicationEnabled")) - object.crashSafeReplicationEnabled = $root.google.protobuf.BoolValue.toObject(message.crashSafeReplicationEnabled, options); - if (message.dataDiskSizeGb != null && message.hasOwnProperty("dataDiskSizeGb")) - object.dataDiskSizeGb = $root.google.protobuf.Int64Value.toObject(message.dataDiskSizeGb, options); - if (message.activeDirectoryConfig != null && message.hasOwnProperty("activeDirectoryConfig")) - object.activeDirectoryConfig = $root.google.cloud.sql.v1.SqlActiveDirectoryConfig.toObject(message.activeDirectoryConfig, options); - if (message.collation != null && message.hasOwnProperty("collation")) + if (message.maintenanceWindow != null && Object.hasOwnProperty.call(message, "maintenanceWindow")) + object.maintenanceWindow = $root.google.cloud.sql.v1.MaintenanceWindow.toObject(message.maintenanceWindow, options, q + 1); + if (message.backupConfiguration != null && Object.hasOwnProperty.call(message, "backupConfiguration")) + object.backupConfiguration = $root.google.cloud.sql.v1.BackupConfiguration.toObject(message.backupConfiguration, options, q + 1); + if (message.databaseReplicationEnabled != null && Object.hasOwnProperty.call(message, "databaseReplicationEnabled")) + object.databaseReplicationEnabled = $root.google.protobuf.BoolValue.toObject(message.databaseReplicationEnabled, options, q + 1); + if (message.crashSafeReplicationEnabled != null && Object.hasOwnProperty.call(message, "crashSafeReplicationEnabled")) + object.crashSafeReplicationEnabled = $root.google.protobuf.BoolValue.toObject(message.crashSafeReplicationEnabled, options, q + 1); + if (message.dataDiskSizeGb != null && Object.hasOwnProperty.call(message, "dataDiskSizeGb")) + object.dataDiskSizeGb = $root.google.protobuf.Int64Value.toObject(message.dataDiskSizeGb, options, q + 1); + if (message.activeDirectoryConfig != null && Object.hasOwnProperty.call(message, "activeDirectoryConfig")) + object.activeDirectoryConfig = $root.google.cloud.sql.v1.SqlActiveDirectoryConfig.toObject(message.activeDirectoryConfig, options, q + 1); + if (message.collation != null && Object.hasOwnProperty.call(message, "collation")) object.collation = message.collation; if (message.denyMaintenancePeriods && message.denyMaintenancePeriods.length) { object.denyMaintenancePeriods = []; for (var j = 0; j < message.denyMaintenancePeriods.length; ++j) - object.denyMaintenancePeriods[j] = $root.google.cloud.sql.v1.DenyMaintenancePeriod.toObject(message.denyMaintenancePeriods[j], options); - } - if (message.insightsConfig != null && message.hasOwnProperty("insightsConfig")) - object.insightsConfig = $root.google.cloud.sql.v1.InsightsConfig.toObject(message.insightsConfig, options); - if (message.passwordValidationPolicy != null && message.hasOwnProperty("passwordValidationPolicy")) - object.passwordValidationPolicy = $root.google.cloud.sql.v1.PasswordValidationPolicy.toObject(message.passwordValidationPolicy, options); - if (message.sqlServerAuditConfig != null && message.hasOwnProperty("sqlServerAuditConfig")) - object.sqlServerAuditConfig = $root.google.cloud.sql.v1.SqlServerAuditConfig.toObject(message.sqlServerAuditConfig, options); - if (message.connectorEnforcement != null && message.hasOwnProperty("connectorEnforcement")) + object.denyMaintenancePeriods[j] = $root.google.cloud.sql.v1.DenyMaintenancePeriod.toObject(message.denyMaintenancePeriods[j], options, q + 1); + } + if (message.insightsConfig != null && Object.hasOwnProperty.call(message, "insightsConfig")) + object.insightsConfig = $root.google.cloud.sql.v1.InsightsConfig.toObject(message.insightsConfig, options, q + 1); + if (message.passwordValidationPolicy != null && Object.hasOwnProperty.call(message, "passwordValidationPolicy")) + object.passwordValidationPolicy = $root.google.cloud.sql.v1.PasswordValidationPolicy.toObject(message.passwordValidationPolicy, options, q + 1); + if (message.sqlServerAuditConfig != null && Object.hasOwnProperty.call(message, "sqlServerAuditConfig")) + object.sqlServerAuditConfig = $root.google.cloud.sql.v1.SqlServerAuditConfig.toObject(message.sqlServerAuditConfig, options, q + 1); + if (message.connectorEnforcement != null && Object.hasOwnProperty.call(message, "connectorEnforcement")) object.connectorEnforcement = options.enums === String ? $root.google.cloud.sql.v1.Settings.ConnectorEnforcement[message.connectorEnforcement] === undefined ? message.connectorEnforcement : $root.google.cloud.sql.v1.Settings.ConnectorEnforcement[message.connectorEnforcement] : message.connectorEnforcement; - if (message.deletionProtectionEnabled != null && message.hasOwnProperty("deletionProtectionEnabled")) - object.deletionProtectionEnabled = $root.google.protobuf.BoolValue.toObject(message.deletionProtectionEnabled, options); - if (message.timeZone != null && message.hasOwnProperty("timeZone")) + if (message.deletionProtectionEnabled != null && Object.hasOwnProperty.call(message, "deletionProtectionEnabled")) + object.deletionProtectionEnabled = $root.google.protobuf.BoolValue.toObject(message.deletionProtectionEnabled, options, q + 1); + if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) object.timeZone = message.timeZone; - if (message.advancedMachineFeatures != null && message.hasOwnProperty("advancedMachineFeatures")) - object.advancedMachineFeatures = $root.google.cloud.sql.v1.AdvancedMachineFeatures.toObject(message.advancedMachineFeatures, options); - if (message.dataCacheConfig != null && message.hasOwnProperty("dataCacheConfig")) - object.dataCacheConfig = $root.google.cloud.sql.v1.DataCacheConfig.toObject(message.dataCacheConfig, options); - if (message.edition != null && message.hasOwnProperty("edition")) + if (message.advancedMachineFeatures != null && Object.hasOwnProperty.call(message, "advancedMachineFeatures")) + object.advancedMachineFeatures = $root.google.cloud.sql.v1.AdvancedMachineFeatures.toObject(message.advancedMachineFeatures, options, q + 1); + if (message.dataCacheConfig != null && Object.hasOwnProperty.call(message, "dataCacheConfig")) + object.dataCacheConfig = $root.google.cloud.sql.v1.DataCacheConfig.toObject(message.dataCacheConfig, options, q + 1); + if (message.edition != null && Object.hasOwnProperty.call(message, "edition")) object.edition = options.enums === String ? $root.google.cloud.sql.v1.Settings.Edition[message.edition] === undefined ? message.edition : $root.google.cloud.sql.v1.Settings.Edition[message.edition] : message.edition; - if (message.replicationLagMaxSeconds != null && message.hasOwnProperty("replicationLagMaxSeconds")) - object.replicationLagMaxSeconds = $root.google.protobuf.Int32Value.toObject(message.replicationLagMaxSeconds, options); - if (message.enableGoogleMlIntegration != null && message.hasOwnProperty("enableGoogleMlIntegration")) - object.enableGoogleMlIntegration = $root.google.protobuf.BoolValue.toObject(message.enableGoogleMlIntegration, options); - if (message.enableDataplexIntegration != null && message.hasOwnProperty("enableDataplexIntegration")) - object.enableDataplexIntegration = $root.google.protobuf.BoolValue.toObject(message.enableDataplexIntegration, options); - if (message.retainBackupsOnDelete != null && message.hasOwnProperty("retainBackupsOnDelete")) - object.retainBackupsOnDelete = $root.google.protobuf.BoolValue.toObject(message.retainBackupsOnDelete, options); - if (message.dataDiskProvisionedIops != null && message.hasOwnProperty("dataDiskProvisionedIops")) { - if (typeof message.dataDiskProvisionedIops === "number") + if (message.replicationLagMaxSeconds != null && Object.hasOwnProperty.call(message, "replicationLagMaxSeconds")) + object.replicationLagMaxSeconds = $root.google.protobuf.Int32Value.toObject(message.replicationLagMaxSeconds, options, q + 1); + if (message.enableGoogleMlIntegration != null && Object.hasOwnProperty.call(message, "enableGoogleMlIntegration")) + object.enableGoogleMlIntegration = $root.google.protobuf.BoolValue.toObject(message.enableGoogleMlIntegration, options, q + 1); + if (message.enableDataplexIntegration != null && Object.hasOwnProperty.call(message, "enableDataplexIntegration")) + object.enableDataplexIntegration = $root.google.protobuf.BoolValue.toObject(message.enableDataplexIntegration, options, q + 1); + if (message.retainBackupsOnDelete != null && Object.hasOwnProperty.call(message, "retainBackupsOnDelete")) + object.retainBackupsOnDelete = $root.google.protobuf.BoolValue.toObject(message.retainBackupsOnDelete, options, q + 1); + if (message.dataDiskProvisionedIops != null && Object.hasOwnProperty.call(message, "dataDiskProvisionedIops")) { + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.dataDiskProvisionedIops = typeof message.dataDiskProvisionedIops === "number" ? BigInt(message.dataDiskProvisionedIops) : $util.Long.fromBits(message.dataDiskProvisionedIops.low >>> 0, message.dataDiskProvisionedIops.high >>> 0, false).toBigInt(); + else if (typeof message.dataDiskProvisionedIops === "number") object.dataDiskProvisionedIops = options.longs === String ? String(message.dataDiskProvisionedIops) : message.dataDiskProvisionedIops; else object.dataDiskProvisionedIops = options.longs === String ? $util.Long.prototype.toString.call(message.dataDiskProvisionedIops) : options.longs === Number ? new $util.LongBits(message.dataDiskProvisionedIops.low >>> 0, message.dataDiskProvisionedIops.high >>> 0).toNumber() : message.dataDiskProvisionedIops; if (options.oneofs) object._dataDiskProvisionedIops = "dataDiskProvisionedIops"; } - if (message.dataDiskProvisionedThroughput != null && message.hasOwnProperty("dataDiskProvisionedThroughput")) { - if (typeof message.dataDiskProvisionedThroughput === "number") + if (message.dataDiskProvisionedThroughput != null && Object.hasOwnProperty.call(message, "dataDiskProvisionedThroughput")) { + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.dataDiskProvisionedThroughput = typeof message.dataDiskProvisionedThroughput === "number" ? BigInt(message.dataDiskProvisionedThroughput) : $util.Long.fromBits(message.dataDiskProvisionedThroughput.low >>> 0, message.dataDiskProvisionedThroughput.high >>> 0, false).toBigInt(); + else if (typeof message.dataDiskProvisionedThroughput === "number") object.dataDiskProvisionedThroughput = options.longs === String ? String(message.dataDiskProvisionedThroughput) : message.dataDiskProvisionedThroughput; else object.dataDiskProvisionedThroughput = options.longs === String ? $util.Long.prototype.toString.call(message.dataDiskProvisionedThroughput) : options.longs === Number ? new $util.LongBits(message.dataDiskProvisionedThroughput.low >>> 0, message.dataDiskProvisionedThroughput.high >>> 0).toNumber() : message.dataDiskProvisionedThroughput; if (options.oneofs) object._dataDiskProvisionedThroughput = "dataDiskProvisionedThroughput"; } - if (message.connectionPoolConfig != null && message.hasOwnProperty("connectionPoolConfig")) { - object.connectionPoolConfig = $root.google.cloud.sql.v1.ConnectionPoolConfig.toObject(message.connectionPoolConfig, options); + if (message.connectionPoolConfig != null && Object.hasOwnProperty.call(message, "connectionPoolConfig")) { + object.connectionPoolConfig = $root.google.cloud.sql.v1.ConnectionPoolConfig.toObject(message.connectionPoolConfig, options, q + 1); if (options.oneofs) object._connectionPoolConfig = "connectionPoolConfig"; } - if (message.finalBackupConfig != null && message.hasOwnProperty("finalBackupConfig")) { - object.finalBackupConfig = $root.google.cloud.sql.v1.FinalBackupConfig.toObject(message.finalBackupConfig, options); + if (message.finalBackupConfig != null && Object.hasOwnProperty.call(message, "finalBackupConfig")) { + object.finalBackupConfig = $root.google.cloud.sql.v1.FinalBackupConfig.toObject(message.finalBackupConfig, options, q + 1); if (options.oneofs) object._finalBackupConfig = "finalBackupConfig"; } - if (message.readPoolAutoScaleConfig != null && message.hasOwnProperty("readPoolAutoScaleConfig")) { - object.readPoolAutoScaleConfig = $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.toObject(message.readPoolAutoScaleConfig, options); + if (message.readPoolAutoScaleConfig != null && Object.hasOwnProperty.call(message, "readPoolAutoScaleConfig")) { + object.readPoolAutoScaleConfig = $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.toObject(message.readPoolAutoScaleConfig, options, q + 1); if (options.oneofs) object._readPoolAutoScaleConfig = "readPoolAutoScaleConfig"; } - if (message.autoUpgradeEnabled != null && message.hasOwnProperty("autoUpgradeEnabled")) { + if (message.acceleratedReplicaMode != null && Object.hasOwnProperty.call(message, "acceleratedReplicaMode")) + object.acceleratedReplicaMode = $root.google.protobuf.BoolValue.toObject(message.acceleratedReplicaMode, options, q + 1); + if (message.autoUpgradeEnabled != null && Object.hasOwnProperty.call(message, "autoUpgradeEnabled")) { object.autoUpgradeEnabled = message.autoUpgradeEnabled; if (options.oneofs) object._autoUpgradeEnabled = "autoUpgradeEnabled"; } - if (message.entraidConfig != null && message.hasOwnProperty("entraidConfig")) - object.entraidConfig = $root.google.cloud.sql.v1.SqlServerEntraIdConfig.toObject(message.entraidConfig, options); - if (message.dataApiAccess != null && message.hasOwnProperty("dataApiAccess")) { + if (message.entraidConfig != null && Object.hasOwnProperty.call(message, "entraidConfig")) + object.entraidConfig = $root.google.cloud.sql.v1.SqlServerEntraIdConfig.toObject(message.entraidConfig, options, q + 1); + if (message.dataApiAccess != null && Object.hasOwnProperty.call(message, "dataApiAccess")) { object.dataApiAccess = options.enums === String ? $root.google.cloud.sql.v1.Settings.DataApiAccess[message.dataApiAccess] === undefined ? message.dataApiAccess : $root.google.cloud.sql.v1.Settings.DataApiAccess[message.dataApiAccess] : message.dataApiAccess; if (options.oneofs) object._dataApiAccess = "dataApiAccess"; } - if (message.performanceCaptureConfig != null && message.hasOwnProperty("performanceCaptureConfig")) - object.performanceCaptureConfig = $root.google.cloud.sql.v1.PerformanceCaptureConfig.toObject(message.performanceCaptureConfig, options); + if (message.performanceCaptureConfig != null && Object.hasOwnProperty.call(message, "performanceCaptureConfig")) + object.performanceCaptureConfig = $root.google.cloud.sql.v1.PerformanceCaptureConfig.toObject(message.performanceCaptureConfig, options, q + 1); return object; }; @@ -20547,7 +21922,7 @@ function PerformanceCaptureConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -20659,9 +22034,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PerformanceCaptureConfig.encode = function encode(message, writer) { + PerformanceCaptureConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.enabled); if (message.probingIntervalSeconds != null && Object.hasOwnProperty.call(message, "probingIntervalSeconds")) @@ -20687,7 +22066,7 @@ * @returns {$protobuf.Writer} Writer */ PerformanceCaptureConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -20701,9 +22080,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PerformanceCaptureConfig.decode = function decode(reader, length, error) { + PerformanceCaptureConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.PerformanceCaptureConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -20735,7 +22118,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -20766,36 +22149,40 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PerformanceCaptureConfig.verify = function verify(message) { + PerformanceCaptureConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.enabled != null && message.hasOwnProperty("enabled")) { + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) { properties._enabled = 1; if (typeof message.enabled !== "boolean") return "enabled: boolean expected"; } - if (message.probingIntervalSeconds != null && message.hasOwnProperty("probingIntervalSeconds")) { + if (message.probingIntervalSeconds != null && Object.hasOwnProperty.call(message, "probingIntervalSeconds")) { properties._probingIntervalSeconds = 1; if (!$util.isInteger(message.probingIntervalSeconds)) return "probingIntervalSeconds: integer expected"; } - if (message.probeThreshold != null && message.hasOwnProperty("probeThreshold")) { + if (message.probeThreshold != null && Object.hasOwnProperty.call(message, "probeThreshold")) { properties._probeThreshold = 1; if (!$util.isInteger(message.probeThreshold)) return "probeThreshold: integer expected"; } - if (message.runningThreadsThreshold != null && message.hasOwnProperty("runningThreadsThreshold")) { + if (message.runningThreadsThreshold != null && Object.hasOwnProperty.call(message, "runningThreadsThreshold")) { properties._runningThreadsThreshold = 1; if (!$util.isInteger(message.runningThreadsThreshold)) return "runningThreadsThreshold: integer expected"; } - if (message.secondsBehindSourceThreshold != null && message.hasOwnProperty("secondsBehindSourceThreshold")) { + if (message.secondsBehindSourceThreshold != null && Object.hasOwnProperty.call(message, "secondsBehindSourceThreshold")) { properties._secondsBehindSourceThreshold = 1; if (!$util.isInteger(message.secondsBehindSourceThreshold)) return "secondsBehindSourceThreshold: integer expected"; } - if (message.transactionDurationThreshold != null && message.hasOwnProperty("transactionDurationThreshold")) { + if (message.transactionDurationThreshold != null && Object.hasOwnProperty.call(message, "transactionDurationThreshold")) { properties._transactionDurationThreshold = 1; if (!$util.isInteger(message.transactionDurationThreshold)) return "transactionDurationThreshold: integer expected"; @@ -20811,9 +22198,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.PerformanceCaptureConfig} PerformanceCaptureConfig */ - PerformanceCaptureConfig.fromObject = function fromObject(object) { + PerformanceCaptureConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.PerformanceCaptureConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.PerformanceCaptureConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.PerformanceCaptureConfig(); if (object.enabled != null) message.enabled = Boolean(object.enabled); @@ -20839,36 +22232,40 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PerformanceCaptureConfig.toObject = function toObject(message, options) { + PerformanceCaptureConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.enabled != null && message.hasOwnProperty("enabled")) { + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) { object.enabled = message.enabled; if (options.oneofs) object._enabled = "enabled"; } - if (message.probingIntervalSeconds != null && message.hasOwnProperty("probingIntervalSeconds")) { + if (message.probingIntervalSeconds != null && Object.hasOwnProperty.call(message, "probingIntervalSeconds")) { object.probingIntervalSeconds = message.probingIntervalSeconds; if (options.oneofs) object._probingIntervalSeconds = "probingIntervalSeconds"; } - if (message.probeThreshold != null && message.hasOwnProperty("probeThreshold")) { + if (message.probeThreshold != null && Object.hasOwnProperty.call(message, "probeThreshold")) { object.probeThreshold = message.probeThreshold; if (options.oneofs) object._probeThreshold = "probeThreshold"; } - if (message.runningThreadsThreshold != null && message.hasOwnProperty("runningThreadsThreshold")) { + if (message.runningThreadsThreshold != null && Object.hasOwnProperty.call(message, "runningThreadsThreshold")) { object.runningThreadsThreshold = message.runningThreadsThreshold; if (options.oneofs) object._runningThreadsThreshold = "runningThreadsThreshold"; } - if (message.secondsBehindSourceThreshold != null && message.hasOwnProperty("secondsBehindSourceThreshold")) { + if (message.secondsBehindSourceThreshold != null && Object.hasOwnProperty.call(message, "secondsBehindSourceThreshold")) { object.secondsBehindSourceThreshold = message.secondsBehindSourceThreshold; if (options.oneofs) object._secondsBehindSourceThreshold = "secondsBehindSourceThreshold"; } - if (message.transactionDurationThreshold != null && message.hasOwnProperty("transactionDurationThreshold")) { + if (message.transactionDurationThreshold != null && Object.hasOwnProperty.call(message, "transactionDurationThreshold")) { object.transactionDurationThreshold = message.transactionDurationThreshold; if (options.oneofs) object._transactionDurationThreshold = "transactionDurationThreshold"; @@ -20926,7 +22323,7 @@ function ConnectionPoolFlags(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -20967,9 +22364,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ConnectionPoolFlags.encode = function encode(message, writer) { + ConnectionPoolFlags.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.value != null && Object.hasOwnProperty.call(message, "value")) @@ -20987,7 +22388,7 @@ * @returns {$protobuf.Writer} Writer */ ConnectionPoolFlags.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -21001,9 +22402,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ConnectionPoolFlags.decode = function decode(reader, length, error) { + ConnectionPoolFlags.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ConnectionPoolFlags(); while (reader.pos < end) { var tag = reader.uint32(); @@ -21019,7 +22424,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -21050,13 +22455,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ConnectionPoolFlags.verify = function verify(message) { + ConnectionPoolFlags.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!$util.isString(message.value)) return "value: string expected"; return null; @@ -21070,9 +22479,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ConnectionPoolFlags} ConnectionPoolFlags */ - ConnectionPoolFlags.fromObject = function fromObject(object) { + ConnectionPoolFlags.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ConnectionPoolFlags) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ConnectionPoolFlags: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ConnectionPoolFlags(); if (object.name != null) message.name = String(object.name); @@ -21090,17 +22505,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ConnectionPoolFlags.toObject = function toObject(message, options) { + ConnectionPoolFlags.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; object.value = ""; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = message.value; return object; }; @@ -21157,7 +22576,7 @@ this.flags = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -21221,14 +22640,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ConnectionPoolConfig.encode = function encode(message, writer) { + ConnectionPoolConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.connectionPoolingEnabled != null && Object.hasOwnProperty.call(message, "connectionPoolingEnabled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.connectionPoolingEnabled); if (message.flags != null && message.flags.length) for (var i = 0; i < message.flags.length; ++i) - $root.google.cloud.sql.v1.ConnectionPoolFlags.encode(message.flags[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.cloud.sql.v1.ConnectionPoolFlags.encode(message.flags[i], writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); if (message.poolerCount != null && Object.hasOwnProperty.call(message, "poolerCount")) writer.uint32(/* id 9, wireType 0 =*/72).int32(message.poolerCount); return writer; @@ -21244,7 +22667,7 @@ * @returns {$protobuf.Writer} Writer */ ConnectionPoolConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -21258,9 +22681,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ConnectionPoolConfig.decode = function decode(reader, length, error) { + ConnectionPoolConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ConnectionPoolConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -21274,7 +22701,7 @@ case 8: { if (!(message.flags && message.flags.length)) message.flags = []; - message.flags.push($root.google.cloud.sql.v1.ConnectionPoolFlags.decode(reader, reader.uint32())); + message.flags.push($root.google.cloud.sql.v1.ConnectionPoolFlags.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 9: { @@ -21282,7 +22709,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -21313,25 +22740,29 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ConnectionPoolConfig.verify = function verify(message) { + ConnectionPoolConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.connectionPoolingEnabled != null && message.hasOwnProperty("connectionPoolingEnabled")) { + if (message.connectionPoolingEnabled != null && Object.hasOwnProperty.call(message, "connectionPoolingEnabled")) { properties._connectionPoolingEnabled = 1; if (typeof message.connectionPoolingEnabled !== "boolean") return "connectionPoolingEnabled: boolean expected"; } - if (message.flags != null && message.hasOwnProperty("flags")) { + if (message.flags != null && Object.hasOwnProperty.call(message, "flags")) { if (!Array.isArray(message.flags)) return "flags: array expected"; for (var i = 0; i < message.flags.length; ++i) { - var error = $root.google.cloud.sql.v1.ConnectionPoolFlags.verify(message.flags[i]); + var error = $root.google.cloud.sql.v1.ConnectionPoolFlags.verify(message.flags[i], long + 1); if (error) return "flags." + error; } } - if (message.poolerCount != null && message.hasOwnProperty("poolerCount")) { + if (message.poolerCount != null && Object.hasOwnProperty.call(message, "poolerCount")) { properties._poolerCount = 1; if (!$util.isInteger(message.poolerCount)) return "poolerCount: integer expected"; @@ -21347,9 +22778,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ConnectionPoolConfig} ConnectionPoolConfig */ - ConnectionPoolConfig.fromObject = function fromObject(object) { + ConnectionPoolConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ConnectionPoolConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ConnectionPoolConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ConnectionPoolConfig(); if (object.connectionPoolingEnabled != null) message.connectionPoolingEnabled = Boolean(object.connectionPoolingEnabled); @@ -21358,9 +22795,9 @@ throw TypeError(".google.cloud.sql.v1.ConnectionPoolConfig.flags: array expected"); message.flags = []; for (var i = 0; i < object.flags.length; ++i) { - if (typeof object.flags[i] !== "object") + if (!$util.isObject(object.flags[i])) throw TypeError(".google.cloud.sql.v1.ConnectionPoolConfig.flags: object expected"); - message.flags[i] = $root.google.cloud.sql.v1.ConnectionPoolFlags.fromObject(object.flags[i]); + message.flags[i] = $root.google.cloud.sql.v1.ConnectionPoolFlags.fromObject(object.flags[i], long + 1); } } if (object.poolerCount != null) @@ -21377,13 +22814,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ConnectionPoolConfig.toObject = function toObject(message, options) { + ConnectionPoolConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.flags = []; - if (message.connectionPoolingEnabled != null && message.hasOwnProperty("connectionPoolingEnabled")) { + if (message.connectionPoolingEnabled != null && Object.hasOwnProperty.call(message, "connectionPoolingEnabled")) { object.connectionPoolingEnabled = message.connectionPoolingEnabled; if (options.oneofs) object._connectionPoolingEnabled = "connectionPoolingEnabled"; @@ -21391,9 +22832,9 @@ if (message.flags && message.flags.length) { object.flags = []; for (var j = 0; j < message.flags.length; ++j) - object.flags[j] = $root.google.cloud.sql.v1.ConnectionPoolFlags.toObject(message.flags[j], options); + object.flags[j] = $root.google.cloud.sql.v1.ConnectionPoolFlags.toObject(message.flags[j], options, q + 1); } - if (message.poolerCount != null && message.hasOwnProperty("poolerCount")) { + if (message.poolerCount != null && Object.hasOwnProperty.call(message, "poolerCount")) { object.poolerCount = message.poolerCount; if (options.oneofs) object._poolerCount = "poolerCount"; @@ -21457,7 +22898,7 @@ this.targetMetrics = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -21577,9 +23018,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ReadPoolAutoScaleConfig.encode = function encode(message, writer) { + ReadPoolAutoScaleConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.enabled); if (message.minNodeCount != null && Object.hasOwnProperty.call(message, "minNodeCount")) @@ -21588,7 +23033,7 @@ writer.uint32(/* id 3, wireType 0 =*/24).int32(message.maxNodeCount); if (message.targetMetrics != null && message.targetMetrics.length) for (var i = 0; i < message.targetMetrics.length; ++i) - $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.TargetMetric.encode(message.targetMetrics[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.TargetMetric.encode(message.targetMetrics[i], writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.disableScaleIn != null && Object.hasOwnProperty.call(message, "disableScaleIn")) writer.uint32(/* id 5, wireType 0 =*/40).bool(message.disableScaleIn); if (message.scaleInCooldownSeconds != null && Object.hasOwnProperty.call(message, "scaleInCooldownSeconds")) @@ -21608,7 +23053,7 @@ * @returns {$protobuf.Writer} Writer */ ReadPoolAutoScaleConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -21622,9 +23067,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ReadPoolAutoScaleConfig.decode = function decode(reader, length, error) { + ReadPoolAutoScaleConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -21646,7 +23095,7 @@ case 4: { if (!(message.targetMetrics && message.targetMetrics.length)) message.targetMetrics = []; - message.targetMetrics.push($root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.TargetMetric.decode(reader, reader.uint32())); + message.targetMetrics.push($root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.TargetMetric.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 5: { @@ -21662,7 +23111,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -21693,45 +23142,49 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ReadPoolAutoScaleConfig.verify = function verify(message) { + ReadPoolAutoScaleConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.enabled != null && message.hasOwnProperty("enabled")) { + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) { properties._enabled = 1; if (typeof message.enabled !== "boolean") return "enabled: boolean expected"; } - if (message.minNodeCount != null && message.hasOwnProperty("minNodeCount")) { + if (message.minNodeCount != null && Object.hasOwnProperty.call(message, "minNodeCount")) { properties._minNodeCount = 1; if (!$util.isInteger(message.minNodeCount)) return "minNodeCount: integer expected"; } - if (message.maxNodeCount != null && message.hasOwnProperty("maxNodeCount")) { + if (message.maxNodeCount != null && Object.hasOwnProperty.call(message, "maxNodeCount")) { properties._maxNodeCount = 1; if (!$util.isInteger(message.maxNodeCount)) return "maxNodeCount: integer expected"; } - if (message.targetMetrics != null && message.hasOwnProperty("targetMetrics")) { + if (message.targetMetrics != null && Object.hasOwnProperty.call(message, "targetMetrics")) { if (!Array.isArray(message.targetMetrics)) return "targetMetrics: array expected"; for (var i = 0; i < message.targetMetrics.length; ++i) { - var error = $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.TargetMetric.verify(message.targetMetrics[i]); + var error = $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.TargetMetric.verify(message.targetMetrics[i], long + 1); if (error) return "targetMetrics." + error; } } - if (message.disableScaleIn != null && message.hasOwnProperty("disableScaleIn")) { + if (message.disableScaleIn != null && Object.hasOwnProperty.call(message, "disableScaleIn")) { properties._disableScaleIn = 1; if (typeof message.disableScaleIn !== "boolean") return "disableScaleIn: boolean expected"; } - if (message.scaleInCooldownSeconds != null && message.hasOwnProperty("scaleInCooldownSeconds")) { + if (message.scaleInCooldownSeconds != null && Object.hasOwnProperty.call(message, "scaleInCooldownSeconds")) { properties._scaleInCooldownSeconds = 1; if (!$util.isInteger(message.scaleInCooldownSeconds)) return "scaleInCooldownSeconds: integer expected"; } - if (message.scaleOutCooldownSeconds != null && message.hasOwnProperty("scaleOutCooldownSeconds")) { + if (message.scaleOutCooldownSeconds != null && Object.hasOwnProperty.call(message, "scaleOutCooldownSeconds")) { properties._scaleOutCooldownSeconds = 1; if (!$util.isInteger(message.scaleOutCooldownSeconds)) return "scaleOutCooldownSeconds: integer expected"; @@ -21747,9 +23200,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ReadPoolAutoScaleConfig} ReadPoolAutoScaleConfig */ - ReadPoolAutoScaleConfig.fromObject = function fromObject(object) { + ReadPoolAutoScaleConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ReadPoolAutoScaleConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig(); if (object.enabled != null) message.enabled = Boolean(object.enabled); @@ -21762,9 +23221,9 @@ throw TypeError(".google.cloud.sql.v1.ReadPoolAutoScaleConfig.targetMetrics: array expected"); message.targetMetrics = []; for (var i = 0; i < object.targetMetrics.length; ++i) { - if (typeof object.targetMetrics[i] !== "object") + if (!$util.isObject(object.targetMetrics[i])) throw TypeError(".google.cloud.sql.v1.ReadPoolAutoScaleConfig.targetMetrics: object expected"); - message.targetMetrics[i] = $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.TargetMetric.fromObject(object.targetMetrics[i]); + message.targetMetrics[i] = $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.TargetMetric.fromObject(object.targetMetrics[i], long + 1); } } if (object.disableScaleIn != null) @@ -21785,23 +23244,27 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ReadPoolAutoScaleConfig.toObject = function toObject(message, options) { + ReadPoolAutoScaleConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.targetMetrics = []; - if (message.enabled != null && message.hasOwnProperty("enabled")) { + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) { object.enabled = message.enabled; if (options.oneofs) object._enabled = "enabled"; } - if (message.minNodeCount != null && message.hasOwnProperty("minNodeCount")) { + if (message.minNodeCount != null && Object.hasOwnProperty.call(message, "minNodeCount")) { object.minNodeCount = message.minNodeCount; if (options.oneofs) object._minNodeCount = "minNodeCount"; } - if (message.maxNodeCount != null && message.hasOwnProperty("maxNodeCount")) { + if (message.maxNodeCount != null && Object.hasOwnProperty.call(message, "maxNodeCount")) { object.maxNodeCount = message.maxNodeCount; if (options.oneofs) object._maxNodeCount = "maxNodeCount"; @@ -21809,19 +23272,19 @@ if (message.targetMetrics && message.targetMetrics.length) { object.targetMetrics = []; for (var j = 0; j < message.targetMetrics.length; ++j) - object.targetMetrics[j] = $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.TargetMetric.toObject(message.targetMetrics[j], options); + object.targetMetrics[j] = $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.TargetMetric.toObject(message.targetMetrics[j], options, q + 1); } - if (message.disableScaleIn != null && message.hasOwnProperty("disableScaleIn")) { + if (message.disableScaleIn != null && Object.hasOwnProperty.call(message, "disableScaleIn")) { object.disableScaleIn = message.disableScaleIn; if (options.oneofs) object._disableScaleIn = "disableScaleIn"; } - if (message.scaleInCooldownSeconds != null && message.hasOwnProperty("scaleInCooldownSeconds")) { + if (message.scaleInCooldownSeconds != null && Object.hasOwnProperty.call(message, "scaleInCooldownSeconds")) { object.scaleInCooldownSeconds = message.scaleInCooldownSeconds; if (options.oneofs) object._scaleInCooldownSeconds = "scaleInCooldownSeconds"; } - if (message.scaleOutCooldownSeconds != null && message.hasOwnProperty("scaleOutCooldownSeconds")) { + if (message.scaleOutCooldownSeconds != null && Object.hasOwnProperty.call(message, "scaleOutCooldownSeconds")) { object.scaleOutCooldownSeconds = message.scaleOutCooldownSeconds; if (options.oneofs) object._scaleOutCooldownSeconds = "scaleOutCooldownSeconds"; @@ -21876,7 +23339,7 @@ function TargetMetric(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -21932,9 +23395,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - TargetMetric.encode = function encode(message, writer) { + TargetMetric.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.metric != null && Object.hasOwnProperty.call(message, "metric")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.metric); if (message.targetValue != null && Object.hasOwnProperty.call(message, "targetValue")) @@ -21952,7 +23419,7 @@ * @returns {$protobuf.Writer} Writer */ TargetMetric.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -21966,9 +23433,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - TargetMetric.decode = function decode(reader, length, error) { + TargetMetric.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.TargetMetric(); while (reader.pos < end) { var tag = reader.uint32(); @@ -21984,7 +23455,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -22015,16 +23486,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - TargetMetric.verify = function verify(message) { + TargetMetric.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.metric != null && message.hasOwnProperty("metric")) { + if (message.metric != null && Object.hasOwnProperty.call(message, "metric")) { properties._metric = 1; if (!$util.isString(message.metric)) return "metric: string expected"; } - if (message.targetValue != null && message.hasOwnProperty("targetValue")) { + if (message.targetValue != null && Object.hasOwnProperty.call(message, "targetValue")) { properties._targetValue = 1; if (typeof message.targetValue !== "number") return "targetValue: number expected"; @@ -22040,9 +23515,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ReadPoolAutoScaleConfig.TargetMetric} TargetMetric */ - TargetMetric.fromObject = function fromObject(object) { + TargetMetric.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.TargetMetric) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ReadPoolAutoScaleConfig.TargetMetric: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ReadPoolAutoScaleConfig.TargetMetric(); if (object.metric != null) message.metric = String(object.metric); @@ -22060,16 +23541,20 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - TargetMetric.toObject = function toObject(message, options) { + TargetMetric.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.metric != null && message.hasOwnProperty("metric")) { + if (message.metric != null && Object.hasOwnProperty.call(message, "metric")) { object.metric = message.metric; if (options.oneofs) object._metric = "metric"; } - if (message.targetValue != null && message.hasOwnProperty("targetValue")) { + if (message.targetValue != null && Object.hasOwnProperty.call(message, "targetValue")) { object.targetValue = options.json && !isFinite(message.targetValue) ? String(message.targetValue) : message.targetValue; if (options.oneofs) object._targetValue = "targetValue"; @@ -22129,7 +23614,7 @@ function AdvancedMachineFeatures(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -22162,9 +23647,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - AdvancedMachineFeatures.encode = function encode(message, writer) { + AdvancedMachineFeatures.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.threadsPerCore != null && Object.hasOwnProperty.call(message, "threadsPerCore")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.threadsPerCore); return writer; @@ -22180,7 +23669,7 @@ * @returns {$protobuf.Writer} Writer */ AdvancedMachineFeatures.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -22194,9 +23683,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AdvancedMachineFeatures.decode = function decode(reader, length, error) { + AdvancedMachineFeatures.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.AdvancedMachineFeatures(); while (reader.pos < end) { var tag = reader.uint32(); @@ -22208,7 +23701,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -22239,10 +23732,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - AdvancedMachineFeatures.verify = function verify(message) { + AdvancedMachineFeatures.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.threadsPerCore != null && message.hasOwnProperty("threadsPerCore")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.threadsPerCore != null && Object.hasOwnProperty.call(message, "threadsPerCore")) if (!$util.isInteger(message.threadsPerCore)) return "threadsPerCore: integer expected"; return null; @@ -22256,9 +23753,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.AdvancedMachineFeatures} AdvancedMachineFeatures */ - AdvancedMachineFeatures.fromObject = function fromObject(object) { + AdvancedMachineFeatures.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.AdvancedMachineFeatures) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.AdvancedMachineFeatures: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.AdvancedMachineFeatures(); if (object.threadsPerCore != null) message.threadsPerCore = object.threadsPerCore | 0; @@ -22274,13 +23777,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - AdvancedMachineFeatures.toObject = function toObject(message, options) { + AdvancedMachineFeatures.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.threadsPerCore = 0; - if (message.threadsPerCore != null && message.hasOwnProperty("threadsPerCore")) + if (message.threadsPerCore != null && Object.hasOwnProperty.call(message, "threadsPerCore")) object.threadsPerCore = message.threadsPerCore; return object; }; @@ -22342,7 +23849,7 @@ function SslCert(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -22439,9 +23946,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SslCert.encode = function encode(message, writer) { + SslCert.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.certSerialNumber != null && Object.hasOwnProperty.call(message, "certSerialNumber")) @@ -22449,11 +23960,11 @@ if (message.cert != null && Object.hasOwnProperty.call(message, "cert")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.cert); if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) - $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.commonName != null && Object.hasOwnProperty.call(message, "commonName")) writer.uint32(/* id 5, wireType 2 =*/42).string(message.commonName); if (message.expirationTime != null && Object.hasOwnProperty.call(message, "expirationTime")) - $root.google.protobuf.Timestamp.encode(message.expirationTime, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.expirationTime, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.sha1Fingerprint != null && Object.hasOwnProperty.call(message, "sha1Fingerprint")) writer.uint32(/* id 7, wireType 2 =*/58).string(message.sha1Fingerprint); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) @@ -22473,7 +23984,7 @@ * @returns {$protobuf.Writer} Writer */ SslCert.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -22487,9 +23998,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SslCert.decode = function decode(reader, length, error) { + SslCert.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SslCert(); while (reader.pos < end) { var tag = reader.uint32(); @@ -22509,7 +24024,7 @@ break; } case 4: { - message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -22517,7 +24032,7 @@ break; } case 6: { - message.expirationTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.expirationTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { @@ -22533,7 +24048,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -22564,38 +24079,42 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SslCert.verify = function verify(message) { + SslCert.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.certSerialNumber != null && message.hasOwnProperty("certSerialNumber")) + if (message.certSerialNumber != null && Object.hasOwnProperty.call(message, "certSerialNumber")) if (!$util.isString(message.certSerialNumber)) return "certSerialNumber: string expected"; - if (message.cert != null && message.hasOwnProperty("cert")) + if (message.cert != null && Object.hasOwnProperty.call(message, "cert")) if (!$util.isString(message.cert)) return "cert: string expected"; - if (message.createTime != null && message.hasOwnProperty("createTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.createTime); + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.createTime, long + 1); if (error) return "createTime." + error; } - if (message.commonName != null && message.hasOwnProperty("commonName")) + if (message.commonName != null && Object.hasOwnProperty.call(message, "commonName")) if (!$util.isString(message.commonName)) return "commonName: string expected"; - if (message.expirationTime != null && message.hasOwnProperty("expirationTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.expirationTime); + if (message.expirationTime != null && Object.hasOwnProperty.call(message, "expirationTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.expirationTime, long + 1); if (error) return "expirationTime." + error; } - if (message.sha1Fingerprint != null && message.hasOwnProperty("sha1Fingerprint")) + if (message.sha1Fingerprint != null && Object.hasOwnProperty.call(message, "sha1Fingerprint")) if (!$util.isString(message.sha1Fingerprint)) return "sha1Fingerprint: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) if (!$util.isString(message.selfLink)) return "selfLink: string expected"; return null; @@ -22609,9 +24128,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SslCert} SslCert */ - SslCert.fromObject = function fromObject(object) { + SslCert.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SslCert) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SslCert: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SslCert(); if (object.kind != null) message.kind = String(object.kind); @@ -22620,16 +24145,16 @@ if (object.cert != null) message.cert = String(object.cert); if (object.createTime != null) { - if (typeof object.createTime !== "object") + if (!$util.isObject(object.createTime)) throw TypeError(".google.cloud.sql.v1.SslCert.createTime: object expected"); - message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime); + message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime, long + 1); } if (object.commonName != null) message.commonName = String(object.commonName); if (object.expirationTime != null) { - if (typeof object.expirationTime !== "object") + if (!$util.isObject(object.expirationTime)) throw TypeError(".google.cloud.sql.v1.SslCert.expirationTime: object expected"); - message.expirationTime = $root.google.protobuf.Timestamp.fromObject(object.expirationTime); + message.expirationTime = $root.google.protobuf.Timestamp.fromObject(object.expirationTime, long + 1); } if (object.sha1Fingerprint != null) message.sha1Fingerprint = String(object.sha1Fingerprint); @@ -22649,9 +24174,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SslCert.toObject = function toObject(message, options) { + SslCert.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -22664,23 +24193,23 @@ object.instance = ""; object.selfLink = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.certSerialNumber != null && message.hasOwnProperty("certSerialNumber")) + if (message.certSerialNumber != null && Object.hasOwnProperty.call(message, "certSerialNumber")) object.certSerialNumber = message.certSerialNumber; - if (message.cert != null && message.hasOwnProperty("cert")) + if (message.cert != null && Object.hasOwnProperty.call(message, "cert")) object.cert = message.cert; - if (message.createTime != null && message.hasOwnProperty("createTime")) - object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options); - if (message.commonName != null && message.hasOwnProperty("commonName")) + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) + object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options, q + 1); + if (message.commonName != null && Object.hasOwnProperty.call(message, "commonName")) object.commonName = message.commonName; - if (message.expirationTime != null && message.hasOwnProperty("expirationTime")) - object.expirationTime = $root.google.protobuf.Timestamp.toObject(message.expirationTime, options); - if (message.sha1Fingerprint != null && message.hasOwnProperty("sha1Fingerprint")) + if (message.expirationTime != null && Object.hasOwnProperty.call(message, "expirationTime")) + object.expirationTime = $root.google.protobuf.Timestamp.toObject(message.expirationTime, options, q + 1); + if (message.sha1Fingerprint != null && Object.hasOwnProperty.call(message, "sha1Fingerprint")) object.sha1Fingerprint = message.sha1Fingerprint; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) object.selfLink = message.selfLink; return object; }; @@ -22735,7 +24264,7 @@ function SslCertDetail(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -22776,11 +24305,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SslCertDetail.encode = function encode(message, writer) { + SslCertDetail.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.certInfo != null && Object.hasOwnProperty.call(message, "certInfo")) - $root.google.cloud.sql.v1.SslCert.encode(message.certInfo, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.SslCert.encode(message.certInfo, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.certPrivateKey != null && Object.hasOwnProperty.call(message, "certPrivateKey")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.certPrivateKey); return writer; @@ -22796,7 +24329,7 @@ * @returns {$protobuf.Writer} Writer */ SslCertDetail.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -22810,9 +24343,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SslCertDetail.decode = function decode(reader, length, error) { + SslCertDetail.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SslCertDetail(); while (reader.pos < end) { var tag = reader.uint32(); @@ -22820,7 +24357,7 @@ break; switch (tag >>> 3) { case 1: { - message.certInfo = $root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32()); + message.certInfo = $root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -22828,7 +24365,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -22859,15 +24396,19 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SslCertDetail.verify = function verify(message) { + SslCertDetail.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.certInfo != null && message.hasOwnProperty("certInfo")) { - var error = $root.google.cloud.sql.v1.SslCert.verify(message.certInfo); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.certInfo != null && Object.hasOwnProperty.call(message, "certInfo")) { + var error = $root.google.cloud.sql.v1.SslCert.verify(message.certInfo, long + 1); if (error) return "certInfo." + error; } - if (message.certPrivateKey != null && message.hasOwnProperty("certPrivateKey")) + if (message.certPrivateKey != null && Object.hasOwnProperty.call(message, "certPrivateKey")) if (!$util.isString(message.certPrivateKey)) return "certPrivateKey: string expected"; return null; @@ -22881,14 +24422,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SslCertDetail} SslCertDetail */ - SslCertDetail.fromObject = function fromObject(object) { + SslCertDetail.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SslCertDetail) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SslCertDetail: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SslCertDetail(); if (object.certInfo != null) { - if (typeof object.certInfo !== "object") + if (!$util.isObject(object.certInfo)) throw TypeError(".google.cloud.sql.v1.SslCertDetail.certInfo: object expected"); - message.certInfo = $root.google.cloud.sql.v1.SslCert.fromObject(object.certInfo); + message.certInfo = $root.google.cloud.sql.v1.SslCert.fromObject(object.certInfo, long + 1); } if (object.certPrivateKey != null) message.certPrivateKey = String(object.certPrivateKey); @@ -22904,17 +24451,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SslCertDetail.toObject = function toObject(message, options) { + SslCertDetail.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.certInfo = null; object.certPrivateKey = ""; } - if (message.certInfo != null && message.hasOwnProperty("certInfo")) - object.certInfo = $root.google.cloud.sql.v1.SslCert.toObject(message.certInfo, options); - if (message.certPrivateKey != null && message.hasOwnProperty("certPrivateKey")) + if (message.certInfo != null && Object.hasOwnProperty.call(message, "certInfo")) + object.certInfo = $root.google.cloud.sql.v1.SslCert.toObject(message.certInfo, options, q + 1); + if (message.certPrivateKey != null && Object.hasOwnProperty.call(message, "certPrivateKey")) object.certPrivateKey = message.certPrivateKey; return object; }; @@ -22974,7 +24525,7 @@ this.dnsServers = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -23047,9 +24598,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlActiveDirectoryConfig.encode = function encode(message, writer) { + SqlActiveDirectoryConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.domain != null && Object.hasOwnProperty.call(message, "domain")) @@ -23076,7 +24631,7 @@ * @returns {$protobuf.Writer} Writer */ SqlActiveDirectoryConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -23090,9 +24645,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlActiveDirectoryConfig.decode = function decode(reader, length, error) { + SqlActiveDirectoryConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlActiveDirectoryConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -23126,7 +24685,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -23157,16 +24716,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlActiveDirectoryConfig.verify = function verify(message) { + SqlActiveDirectoryConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.domain != null && message.hasOwnProperty("domain")) + if (message.domain != null && Object.hasOwnProperty.call(message, "domain")) if (!$util.isString(message.domain)) return "domain: string expected"; - if (message.mode != null && message.hasOwnProperty("mode")) + if (message.mode != null && Object.hasOwnProperty.call(message, "mode")) switch (message.mode) { default: return "mode: enum value expected"; @@ -23176,17 +24739,17 @@ case 3: break; } - if (message.dnsServers != null && message.hasOwnProperty("dnsServers")) { + if (message.dnsServers != null && Object.hasOwnProperty.call(message, "dnsServers")) { if (!Array.isArray(message.dnsServers)) return "dnsServers: array expected"; for (var i = 0; i < message.dnsServers.length; ++i) if (!$util.isString(message.dnsServers[i])) return "dnsServers: string[] expected"; } - if (message.adminCredentialSecretName != null && message.hasOwnProperty("adminCredentialSecretName")) + if (message.adminCredentialSecretName != null && Object.hasOwnProperty.call(message, "adminCredentialSecretName")) if (!$util.isString(message.adminCredentialSecretName)) return "adminCredentialSecretName: string expected"; - if (message.organizationalUnit != null && message.hasOwnProperty("organizationalUnit")) + if (message.organizationalUnit != null && Object.hasOwnProperty.call(message, "organizationalUnit")) if (!$util.isString(message.organizationalUnit)) return "organizationalUnit: string expected"; return null; @@ -23200,9 +24763,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlActiveDirectoryConfig} SqlActiveDirectoryConfig */ - SqlActiveDirectoryConfig.fromObject = function fromObject(object) { + SqlActiveDirectoryConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlActiveDirectoryConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlActiveDirectoryConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlActiveDirectoryConfig(); if (object.kind != null) message.kind = String(object.kind); @@ -23255,9 +24824,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlActiveDirectoryConfig.toObject = function toObject(message, options) { + SqlActiveDirectoryConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.dnsServers = []; @@ -23268,20 +24841,20 @@ object.adminCredentialSecretName = ""; object.organizationalUnit = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.domain != null && message.hasOwnProperty("domain")) + if (message.domain != null && Object.hasOwnProperty.call(message, "domain")) object.domain = message.domain; - if (message.mode != null && message.hasOwnProperty("mode")) + if (message.mode != null && Object.hasOwnProperty.call(message, "mode")) object.mode = options.enums === String ? $root.google.cloud.sql.v1.SqlActiveDirectoryConfig.ActiveDirectoryMode[message.mode] === undefined ? message.mode : $root.google.cloud.sql.v1.SqlActiveDirectoryConfig.ActiveDirectoryMode[message.mode] : message.mode; if (message.dnsServers && message.dnsServers.length) { object.dnsServers = []; for (var j = 0; j < message.dnsServers.length; ++j) object.dnsServers[j] = message.dnsServers[j]; } - if (message.adminCredentialSecretName != null && message.hasOwnProperty("adminCredentialSecretName")) + if (message.adminCredentialSecretName != null && Object.hasOwnProperty.call(message, "adminCredentialSecretName")) object.adminCredentialSecretName = message.adminCredentialSecretName; - if (message.organizationalUnit != null && message.hasOwnProperty("organizationalUnit")) + if (message.organizationalUnit != null && Object.hasOwnProperty.call(message, "organizationalUnit")) object.organizationalUnit = message.organizationalUnit; return object; }; @@ -23356,7 +24929,7 @@ function SqlServerAuditConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -23413,17 +24986,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlServerAuditConfig.encode = function encode(message, writer) { + SqlServerAuditConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.bucket != null && Object.hasOwnProperty.call(message, "bucket")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.bucket); if (message.retentionInterval != null && Object.hasOwnProperty.call(message, "retentionInterval")) - $root.google.protobuf.Duration.encode(message.retentionInterval, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.retentionInterval, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.uploadInterval != null && Object.hasOwnProperty.call(message, "uploadInterval")) - $root.google.protobuf.Duration.encode(message.uploadInterval, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.uploadInterval, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); return writer; }; @@ -23437,7 +25014,7 @@ * @returns {$protobuf.Writer} Writer */ SqlServerAuditConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -23451,9 +25028,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlServerAuditConfig.decode = function decode(reader, length, error) { + SqlServerAuditConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlServerAuditConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -23469,15 +25050,15 @@ break; } case 3: { - message.retentionInterval = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.retentionInterval = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { - message.uploadInterval = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.uploadInterval = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -23508,22 +25089,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlServerAuditConfig.verify = function verify(message) { + SqlServerAuditConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.bucket != null && message.hasOwnProperty("bucket")) + if (message.bucket != null && Object.hasOwnProperty.call(message, "bucket")) if (!$util.isString(message.bucket)) return "bucket: string expected"; - if (message.retentionInterval != null && message.hasOwnProperty("retentionInterval")) { - var error = $root.google.protobuf.Duration.verify(message.retentionInterval); + if (message.retentionInterval != null && Object.hasOwnProperty.call(message, "retentionInterval")) { + var error = $root.google.protobuf.Duration.verify(message.retentionInterval, long + 1); if (error) return "retentionInterval." + error; } - if (message.uploadInterval != null && message.hasOwnProperty("uploadInterval")) { - var error = $root.google.protobuf.Duration.verify(message.uploadInterval); + if (message.uploadInterval != null && Object.hasOwnProperty.call(message, "uploadInterval")) { + var error = $root.google.protobuf.Duration.verify(message.uploadInterval, long + 1); if (error) return "uploadInterval." + error; } @@ -23538,23 +25123,29 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlServerAuditConfig} SqlServerAuditConfig */ - SqlServerAuditConfig.fromObject = function fromObject(object) { + SqlServerAuditConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlServerAuditConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlServerAuditConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlServerAuditConfig(); if (object.kind != null) message.kind = String(object.kind); if (object.bucket != null) message.bucket = String(object.bucket); if (object.retentionInterval != null) { - if (typeof object.retentionInterval !== "object") + if (!$util.isObject(object.retentionInterval)) throw TypeError(".google.cloud.sql.v1.SqlServerAuditConfig.retentionInterval: object expected"); - message.retentionInterval = $root.google.protobuf.Duration.fromObject(object.retentionInterval); + message.retentionInterval = $root.google.protobuf.Duration.fromObject(object.retentionInterval, long + 1); } if (object.uploadInterval != null) { - if (typeof object.uploadInterval !== "object") + if (!$util.isObject(object.uploadInterval)) throw TypeError(".google.cloud.sql.v1.SqlServerAuditConfig.uploadInterval: object expected"); - message.uploadInterval = $root.google.protobuf.Duration.fromObject(object.uploadInterval); + message.uploadInterval = $root.google.protobuf.Duration.fromObject(object.uploadInterval, long + 1); } return message; }; @@ -23568,9 +25159,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlServerAuditConfig.toObject = function toObject(message, options) { + SqlServerAuditConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -23578,14 +25173,14 @@ object.retentionInterval = null; object.uploadInterval = null; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.bucket != null && message.hasOwnProperty("bucket")) + if (message.bucket != null && Object.hasOwnProperty.call(message, "bucket")) object.bucket = message.bucket; - if (message.retentionInterval != null && message.hasOwnProperty("retentionInterval")) - object.retentionInterval = $root.google.protobuf.Duration.toObject(message.retentionInterval, options); - if (message.uploadInterval != null && message.hasOwnProperty("uploadInterval")) - object.uploadInterval = $root.google.protobuf.Duration.toObject(message.uploadInterval, options); + if (message.retentionInterval != null && Object.hasOwnProperty.call(message, "retentionInterval")) + object.retentionInterval = $root.google.protobuf.Duration.toObject(message.retentionInterval, options, q + 1); + if (message.uploadInterval != null && Object.hasOwnProperty.call(message, "uploadInterval")) + object.uploadInterval = $root.google.protobuf.Duration.toObject(message.uploadInterval, options, q + 1); return object; }; @@ -23640,7 +25235,7 @@ function SqlServerEntraIdConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -23689,9 +25284,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlServerEntraIdConfig.encode = function encode(message, writer) { + SqlServerEntraIdConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.tenantId != null && Object.hasOwnProperty.call(message, "tenantId")) @@ -23711,7 +25310,7 @@ * @returns {$protobuf.Writer} Writer */ SqlServerEntraIdConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -23725,9 +25324,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlServerEntraIdConfig.decode = function decode(reader, length, error) { + SqlServerEntraIdConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlServerEntraIdConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -23747,7 +25350,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -23778,16 +25381,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlServerEntraIdConfig.verify = function verify(message) { + SqlServerEntraIdConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.tenantId != null && message.hasOwnProperty("tenantId")) + if (message.tenantId != null && Object.hasOwnProperty.call(message, "tenantId")) if (!$util.isString(message.tenantId)) return "tenantId: string expected"; - if (message.applicationId != null && message.hasOwnProperty("applicationId")) + if (message.applicationId != null && Object.hasOwnProperty.call(message, "applicationId")) if (!$util.isString(message.applicationId)) return "applicationId: string expected"; return null; @@ -23801,9 +25408,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlServerEntraIdConfig} SqlServerEntraIdConfig */ - SqlServerEntraIdConfig.fromObject = function fromObject(object) { + SqlServerEntraIdConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlServerEntraIdConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlServerEntraIdConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlServerEntraIdConfig(); if (object.kind != null) message.kind = String(object.kind); @@ -23823,20 +25436,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlServerEntraIdConfig.toObject = function toObject(message, options) { + SqlServerEntraIdConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.tenantId = ""; object.applicationId = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.tenantId != null && message.hasOwnProperty("tenantId")) + if (message.tenantId != null && Object.hasOwnProperty.call(message, "tenantId")) object.tenantId = message.tenantId; - if (message.applicationId != null && message.hasOwnProperty("applicationId")) + if (message.applicationId != null && Object.hasOwnProperty.call(message, "applicationId")) object.applicationId = message.applicationId; return object; }; @@ -23955,6 +25572,7 @@ * @property {number} POSTGRES_16=272 POSTGRES_16 value * @property {number} POSTGRES_17=408 POSTGRES_17 value * @property {number} POSTGRES_18=557 POSTGRES_18 value + * @property {number} POSTGRES_19=684 POSTGRES_19 value * @property {number} SQLSERVER_2019_STANDARD=26 SQLSERVER_2019_STANDARD value * @property {number} SQLSERVER_2019_ENTERPRISE=27 SQLSERVER_2019_ENTERPRISE value * @property {number} SQLSERVER_2019_EXPRESS=28 SQLSERVER_2019_EXPRESS value @@ -23963,6 +25581,9 @@ * @property {number} SQLSERVER_2022_ENTERPRISE=200 SQLSERVER_2022_ENTERPRISE value * @property {number} SQLSERVER_2022_EXPRESS=201 SQLSERVER_2022_EXPRESS value * @property {number} SQLSERVER_2022_WEB=202 SQLSERVER_2022_WEB value + * @property {number} SQLSERVER_2025_STANDARD=549 SQLSERVER_2025_STANDARD value + * @property {number} SQLSERVER_2025_ENTERPRISE=550 SQLSERVER_2025_ENTERPRISE value + * @property {number} SQLSERVER_2025_EXPRESS=551 SQLSERVER_2025_EXPRESS value */ v1.SqlDatabaseVersion = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -24009,6 +25630,7 @@ values[valuesById[272] = "POSTGRES_16"] = 272; values[valuesById[408] = "POSTGRES_17"] = 408; values[valuesById[557] = "POSTGRES_18"] = 557; + values[valuesById[684] = "POSTGRES_19"] = 684; values[valuesById[26] = "SQLSERVER_2019_STANDARD"] = 26; values[valuesById[27] = "SQLSERVER_2019_ENTERPRISE"] = 27; values[valuesById[28] = "SQLSERVER_2019_EXPRESS"] = 28; @@ -24017,6 +25639,9 @@ values[valuesById[200] = "SQLSERVER_2022_ENTERPRISE"] = 200; values[valuesById[201] = "SQLSERVER_2022_EXPRESS"] = 201; values[valuesById[202] = "SQLSERVER_2022_WEB"] = 202; + values[valuesById[549] = "SQLSERVER_2025_STANDARD"] = 549; + values[valuesById[550] = "SQLSERVER_2025_ENTERPRISE"] = 550; + values[valuesById[551] = "SQLSERVER_2025_EXPRESS"] = 551; return values; })(); @@ -24129,7 +25754,7 @@ function AcquireSsrsLeaseContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -24213,9 +25838,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - AcquireSsrsLeaseContext.encode = function encode(message, writer) { + AcquireSsrsLeaseContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.setupLogin != null && Object.hasOwnProperty.call(message, "setupLogin")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.setupLogin); if (message.serviceLogin != null && Object.hasOwnProperty.call(message, "serviceLogin")) @@ -24223,7 +25852,7 @@ if (message.reportDatabase != null && Object.hasOwnProperty.call(message, "reportDatabase")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.reportDatabase); if (message.duration != null && Object.hasOwnProperty.call(message, "duration")) - $root.google.protobuf.Duration.encode(message.duration, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.duration, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); return writer; }; @@ -24237,7 +25866,7 @@ * @returns {$protobuf.Writer} Writer */ AcquireSsrsLeaseContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -24251,9 +25880,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AcquireSsrsLeaseContext.decode = function decode(reader, length, error) { + AcquireSsrsLeaseContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.AcquireSsrsLeaseContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -24273,11 +25906,11 @@ break; } case 4: { - message.duration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.duration = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -24308,29 +25941,33 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - AcquireSsrsLeaseContext.verify = function verify(message) { + AcquireSsrsLeaseContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.setupLogin != null && message.hasOwnProperty("setupLogin")) { + if (message.setupLogin != null && Object.hasOwnProperty.call(message, "setupLogin")) { properties._setupLogin = 1; if (!$util.isString(message.setupLogin)) return "setupLogin: string expected"; } - if (message.serviceLogin != null && message.hasOwnProperty("serviceLogin")) { + if (message.serviceLogin != null && Object.hasOwnProperty.call(message, "serviceLogin")) { properties._serviceLogin = 1; if (!$util.isString(message.serviceLogin)) return "serviceLogin: string expected"; } - if (message.reportDatabase != null && message.hasOwnProperty("reportDatabase")) { + if (message.reportDatabase != null && Object.hasOwnProperty.call(message, "reportDatabase")) { properties._reportDatabase = 1; if (!$util.isString(message.reportDatabase)) return "reportDatabase: string expected"; } - if (message.duration != null && message.hasOwnProperty("duration")) { + if (message.duration != null && Object.hasOwnProperty.call(message, "duration")) { properties._duration = 1; { - var error = $root.google.protobuf.Duration.verify(message.duration); + var error = $root.google.protobuf.Duration.verify(message.duration, long + 1); if (error) return "duration." + error; } @@ -24346,9 +25983,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.AcquireSsrsLeaseContext} AcquireSsrsLeaseContext */ - AcquireSsrsLeaseContext.fromObject = function fromObject(object) { + AcquireSsrsLeaseContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.AcquireSsrsLeaseContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.AcquireSsrsLeaseContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.AcquireSsrsLeaseContext(); if (object.setupLogin != null) message.setupLogin = String(object.setupLogin); @@ -24357,9 +26000,9 @@ if (object.reportDatabase != null) message.reportDatabase = String(object.reportDatabase); if (object.duration != null) { - if (typeof object.duration !== "object") + if (!$util.isObject(object.duration)) throw TypeError(".google.cloud.sql.v1.AcquireSsrsLeaseContext.duration: object expected"); - message.duration = $root.google.protobuf.Duration.fromObject(object.duration); + message.duration = $root.google.protobuf.Duration.fromObject(object.duration, long + 1); } return message; }; @@ -24373,27 +26016,31 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - AcquireSsrsLeaseContext.toObject = function toObject(message, options) { + AcquireSsrsLeaseContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.setupLogin != null && message.hasOwnProperty("setupLogin")) { + if (message.setupLogin != null && Object.hasOwnProperty.call(message, "setupLogin")) { object.setupLogin = message.setupLogin; if (options.oneofs) object._setupLogin = "setupLogin"; } - if (message.serviceLogin != null && message.hasOwnProperty("serviceLogin")) { + if (message.serviceLogin != null && Object.hasOwnProperty.call(message, "serviceLogin")) { object.serviceLogin = message.serviceLogin; if (options.oneofs) object._serviceLogin = "serviceLogin"; } - if (message.reportDatabase != null && message.hasOwnProperty("reportDatabase")) { + if (message.reportDatabase != null && Object.hasOwnProperty.call(message, "reportDatabase")) { object.reportDatabase = message.reportDatabase; if (options.oneofs) object._reportDatabase = "reportDatabase"; } - if (message.duration != null && message.hasOwnProperty("duration")) { - object.duration = $root.google.protobuf.Duration.toObject(message.duration, options); + if (message.duration != null && Object.hasOwnProperty.call(message, "duration")) { + object.duration = $root.google.protobuf.Duration.toObject(message.duration, options, q + 1); if (options.oneofs) object._duration = "duration"; } @@ -24452,7 +26099,7 @@ function DnsNameMapping(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -24509,9 +26156,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DnsNameMapping.encode = function encode(message, writer) { + DnsNameMapping.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.connectionType != null && Object.hasOwnProperty.call(message, "connectionType")) @@ -24533,7 +26184,7 @@ * @returns {$protobuf.Writer} Writer */ DnsNameMapping.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -24547,9 +26198,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DnsNameMapping.decode = function decode(reader, length, error) { + DnsNameMapping.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.DnsNameMapping(); while (reader.pos < end) { var tag = reader.uint32(); @@ -24573,7 +26228,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -24604,13 +26259,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DnsNameMapping.verify = function verify(message) { + DnsNameMapping.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.connectionType != null && message.hasOwnProperty("connectionType")) + if (message.connectionType != null && Object.hasOwnProperty.call(message, "connectionType")) switch (message.connectionType) { default: return "connectionType: enum value expected"; @@ -24620,7 +26279,7 @@ case 3: break; } - if (message.dnsScope != null && message.hasOwnProperty("dnsScope")) + if (message.dnsScope != null && Object.hasOwnProperty.call(message, "dnsScope")) switch (message.dnsScope) { default: return "dnsScope: enum value expected"; @@ -24629,7 +26288,7 @@ case 2: break; } - if (message.recordManager != null && message.hasOwnProperty("recordManager")) + if (message.recordManager != null && Object.hasOwnProperty.call(message, "recordManager")) switch (message.recordManager) { default: return "recordManager: enum value expected"; @@ -24649,9 +26308,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.DnsNameMapping} DnsNameMapping */ - DnsNameMapping.fromObject = function fromObject(object) { + DnsNameMapping.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.DnsNameMapping) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.DnsNameMapping: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.DnsNameMapping(); if (object.name != null) message.name = String(object.name); @@ -24731,9 +26396,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DnsNameMapping.toObject = function toObject(message, options) { + DnsNameMapping.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; @@ -24741,13 +26410,13 @@ object.dnsScope = options.enums === String ? "DNS_SCOPE_UNSPECIFIED" : 0; object.recordManager = options.enums === String ? "RECORD_MANAGER_UNSPECIFIED" : 0; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.connectionType != null && message.hasOwnProperty("connectionType")) + if (message.connectionType != null && Object.hasOwnProperty.call(message, "connectionType")) object.connectionType = options.enums === String ? $root.google.cloud.sql.v1.DnsNameMapping.ConnectionType[message.connectionType] === undefined ? message.connectionType : $root.google.cloud.sql.v1.DnsNameMapping.ConnectionType[message.connectionType] : message.connectionType; - if (message.dnsScope != null && message.hasOwnProperty("dnsScope")) + if (message.dnsScope != null && Object.hasOwnProperty.call(message, "dnsScope")) object.dnsScope = options.enums === String ? $root.google.cloud.sql.v1.DnsNameMapping.DnsScope[message.dnsScope] === undefined ? message.dnsScope : $root.google.cloud.sql.v1.DnsNameMapping.DnsScope[message.dnsScope] : message.dnsScope; - if (message.recordManager != null && message.hasOwnProperty("recordManager")) + if (message.recordManager != null && Object.hasOwnProperty.call(message, "recordManager")) object.recordManager = options.enums === String ? $root.google.cloud.sql.v1.DnsNameMapping.RecordManager[message.recordManager] === undefined ? message.recordManager : $root.google.cloud.sql.v1.DnsNameMapping.RecordManager[message.recordManager] : message.recordManager; return object; }; @@ -24883,7 +26552,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupsService.prototype.createBackup = function createBackup(request, callback) { - return this.rpcCall(createBackup, $root.google.cloud.sql.v1.CreateBackupRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, createBackup, $root.google.cloud.sql.v1.CreateBackupRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "CreateBackup" }); /** @@ -24916,7 +26585,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupsService.prototype.getBackup = function getBackup(request, callback) { - return this.rpcCall(getBackup, $root.google.cloud.sql.v1.GetBackupRequest, $root.google.cloud.sql.v1.Backup, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, getBackup, $root.google.cloud.sql.v1.GetBackupRequest, $root.google.cloud.sql.v1.Backup, request, callback); }, "name", { value: "GetBackup" }); /** @@ -24949,7 +26618,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupsService.prototype.listBackups = function listBackups(request, callback) { - return this.rpcCall(listBackups, $root.google.cloud.sql.v1.ListBackupsRequest, $root.google.cloud.sql.v1.ListBackupsResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, listBackups, $root.google.cloud.sql.v1.ListBackupsRequest, $root.google.cloud.sql.v1.ListBackupsResponse, request, callback); }, "name", { value: "ListBackups" }); /** @@ -24982,7 +26651,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupsService.prototype.updateBackup = function updateBackup(request, callback) { - return this.rpcCall(updateBackup, $root.google.cloud.sql.v1.UpdateBackupRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, updateBackup, $root.google.cloud.sql.v1.UpdateBackupRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "UpdateBackup" }); /** @@ -25015,7 +26684,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupsService.prototype.deleteBackup = function deleteBackup(request, callback) { - return this.rpcCall(deleteBackup, $root.google.cloud.sql.v1.DeleteBackupRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, deleteBackup, $root.google.cloud.sql.v1.DeleteBackupRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "DeleteBackup" }); /** @@ -25052,7 +26721,7 @@ function CreateBackupRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -25093,13 +26762,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CreateBackupRequest.encode = function encode(message, writer) { + CreateBackupRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) - $root.google.cloud.sql.v1.Backup.encode(message.backup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.Backup.encode(message.backup, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -25113,7 +26786,7 @@ * @returns {$protobuf.Writer} Writer */ CreateBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -25127,9 +26800,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CreateBackupRequest.decode = function decode(reader, length, error) { + CreateBackupRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.CreateBackupRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -25141,11 +26818,11 @@ break; } case 2: { - message.backup = $root.google.cloud.sql.v1.Backup.decode(reader, reader.uint32()); + message.backup = $root.google.cloud.sql.v1.Backup.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -25176,14 +26853,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CreateBackupRequest.verify = function verify(message) { + CreateBackupRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.parent != null && message.hasOwnProperty("parent")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) if (!$util.isString(message.parent)) return "parent: string expected"; - if (message.backup != null && message.hasOwnProperty("backup")) { - var error = $root.google.cloud.sql.v1.Backup.verify(message.backup); + if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) { + var error = $root.google.cloud.sql.v1.Backup.verify(message.backup, long + 1); if (error) return "backup." + error; } @@ -25198,16 +26879,22 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.CreateBackupRequest} CreateBackupRequest */ - CreateBackupRequest.fromObject = function fromObject(object) { + CreateBackupRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.CreateBackupRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.CreateBackupRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.CreateBackupRequest(); if (object.parent != null) message.parent = String(object.parent); if (object.backup != null) { - if (typeof object.backup !== "object") + if (!$util.isObject(object.backup)) throw TypeError(".google.cloud.sql.v1.CreateBackupRequest.backup: object expected"); - message.backup = $root.google.cloud.sql.v1.Backup.fromObject(object.backup); + message.backup = $root.google.cloud.sql.v1.Backup.fromObject(object.backup, long + 1); } return message; }; @@ -25221,18 +26908,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CreateBackupRequest.toObject = function toObject(message, options) { + CreateBackupRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.parent = ""; object.backup = null; } - if (message.parent != null && message.hasOwnProperty("parent")) + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) object.parent = message.parent; - if (message.backup != null && message.hasOwnProperty("backup")) - object.backup = $root.google.cloud.sql.v1.Backup.toObject(message.backup, options); + if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) + object.backup = $root.google.cloud.sql.v1.Backup.toObject(message.backup, options, q + 1); return object; }; @@ -25285,7 +26976,7 @@ function GetBackupRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -25318,9 +27009,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetBackupRequest.encode = function encode(message, writer) { + GetBackupRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); return writer; @@ -25336,7 +27031,7 @@ * @returns {$protobuf.Writer} Writer */ GetBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -25350,9 +27045,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetBackupRequest.decode = function decode(reader, length, error) { + GetBackupRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.GetBackupRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -25364,7 +27063,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -25395,10 +27094,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetBackupRequest.verify = function verify(message) { + GetBackupRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; return null; @@ -25412,9 +27115,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.GetBackupRequest} GetBackupRequest */ - GetBackupRequest.fromObject = function fromObject(object) { + GetBackupRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.GetBackupRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.GetBackupRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.GetBackupRequest(); if (object.name != null) message.name = String(object.name); @@ -25430,13 +27139,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetBackupRequest.toObject = function toObject(message, options) { + GetBackupRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.name = ""; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; return object; }; @@ -25493,7 +27206,7 @@ function ListBackupsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -25550,9 +27263,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ListBackupsRequest.encode = function encode(message, writer) { + ListBackupsRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); if (message.pageSize != null && Object.hasOwnProperty.call(message, "pageSize")) @@ -25574,7 +27291,7 @@ * @returns {$protobuf.Writer} Writer */ ListBackupsRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -25588,9 +27305,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListBackupsRequest.decode = function decode(reader, length, error) { + ListBackupsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ListBackupsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -25614,7 +27335,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -25645,19 +27366,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListBackupsRequest.verify = function verify(message) { + ListBackupsRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.parent != null && message.hasOwnProperty("parent")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) if (!$util.isString(message.parent)) return "parent: string expected"; - if (message.pageSize != null && message.hasOwnProperty("pageSize")) + if (message.pageSize != null && Object.hasOwnProperty.call(message, "pageSize")) if (!$util.isInteger(message.pageSize)) return "pageSize: integer expected"; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) if (!$util.isString(message.pageToken)) return "pageToken: string expected"; - if (message.filter != null && message.hasOwnProperty("filter")) + if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) if (!$util.isString(message.filter)) return "filter: string expected"; return null; @@ -25671,9 +27396,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ListBackupsRequest} ListBackupsRequest */ - ListBackupsRequest.fromObject = function fromObject(object) { + ListBackupsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ListBackupsRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ListBackupsRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ListBackupsRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -25695,9 +27426,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ListBackupsRequest.toObject = function toObject(message, options) { + ListBackupsRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.parent = ""; @@ -25705,13 +27440,13 @@ object.pageToken = ""; object.filter = ""; } - if (message.parent != null && message.hasOwnProperty("parent")) + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) object.parent = message.parent; - if (message.pageSize != null && message.hasOwnProperty("pageSize")) + if (message.pageSize != null && Object.hasOwnProperty.call(message, "pageSize")) object.pageSize = message.pageSize; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) object.pageToken = message.pageToken; - if (message.filter != null && message.hasOwnProperty("filter")) + if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) object.filter = message.filter; return object; }; @@ -25769,7 +27504,7 @@ this.warnings = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -25818,17 +27553,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ListBackupsResponse.encode = function encode(message, writer) { + ListBackupsResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.backups != null && message.backups.length) for (var i = 0; i < message.backups.length; ++i) - $root.google.cloud.sql.v1.Backup.encode(message.backups[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.Backup.encode(message.backups[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.nextPageToken); if (message.warnings != null && message.warnings.length) for (var i = 0; i < message.warnings.length; ++i) - $root.google.cloud.sql.v1.ApiWarning.encode(message.warnings[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1.ApiWarning.encode(message.warnings[i], writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -25842,7 +27581,7 @@ * @returns {$protobuf.Writer} Writer */ ListBackupsResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -25856,9 +27595,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListBackupsResponse.decode = function decode(reader, length, error) { + ListBackupsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ListBackupsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -25868,7 +27611,7 @@ case 1: { if (!(message.backups && message.backups.length)) message.backups = []; - message.backups.push($root.google.cloud.sql.v1.Backup.decode(reader, reader.uint32())); + message.backups.push($root.google.cloud.sql.v1.Backup.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -25878,11 +27621,11 @@ case 3: { if (!(message.warnings && message.warnings.length)) message.warnings = []; - message.warnings.push($root.google.cloud.sql.v1.ApiWarning.decode(reader, reader.uint32())); + message.warnings.push($root.google.cloud.sql.v1.ApiWarning.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -25913,26 +27656,30 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListBackupsResponse.verify = function verify(message) { + ListBackupsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.backups != null && message.hasOwnProperty("backups")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.backups != null && Object.hasOwnProperty.call(message, "backups")) { if (!Array.isArray(message.backups)) return "backups: array expected"; for (var i = 0; i < message.backups.length; ++i) { - var error = $root.google.cloud.sql.v1.Backup.verify(message.backups[i]); + var error = $root.google.cloud.sql.v1.Backup.verify(message.backups[i], long + 1); if (error) return "backups." + error; } } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) if (!$util.isString(message.nextPageToken)) return "nextPageToken: string expected"; - if (message.warnings != null && message.hasOwnProperty("warnings")) { + if (message.warnings != null && Object.hasOwnProperty.call(message, "warnings")) { if (!Array.isArray(message.warnings)) return "warnings: array expected"; for (var i = 0; i < message.warnings.length; ++i) { - var error = $root.google.cloud.sql.v1.ApiWarning.verify(message.warnings[i]); + var error = $root.google.cloud.sql.v1.ApiWarning.verify(message.warnings[i], long + 1); if (error) return "warnings." + error; } @@ -25948,18 +27695,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ListBackupsResponse} ListBackupsResponse */ - ListBackupsResponse.fromObject = function fromObject(object) { + ListBackupsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ListBackupsResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ListBackupsResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ListBackupsResponse(); if (object.backups) { if (!Array.isArray(object.backups)) throw TypeError(".google.cloud.sql.v1.ListBackupsResponse.backups: array expected"); message.backups = []; for (var i = 0; i < object.backups.length; ++i) { - if (typeof object.backups[i] !== "object") + if (!$util.isObject(object.backups[i])) throw TypeError(".google.cloud.sql.v1.ListBackupsResponse.backups: object expected"); - message.backups[i] = $root.google.cloud.sql.v1.Backup.fromObject(object.backups[i]); + message.backups[i] = $root.google.cloud.sql.v1.Backup.fromObject(object.backups[i], long + 1); } } if (object.nextPageToken != null) @@ -25969,9 +27722,9 @@ throw TypeError(".google.cloud.sql.v1.ListBackupsResponse.warnings: array expected"); message.warnings = []; for (var i = 0; i < object.warnings.length; ++i) { - if (typeof object.warnings[i] !== "object") + if (!$util.isObject(object.warnings[i])) throw TypeError(".google.cloud.sql.v1.ListBackupsResponse.warnings: object expected"); - message.warnings[i] = $root.google.cloud.sql.v1.ApiWarning.fromObject(object.warnings[i]); + message.warnings[i] = $root.google.cloud.sql.v1.ApiWarning.fromObject(object.warnings[i], long + 1); } } return message; @@ -25986,9 +27739,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ListBackupsResponse.toObject = function toObject(message, options) { + ListBackupsResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.backups = []; @@ -25999,14 +27756,14 @@ if (message.backups && message.backups.length) { object.backups = []; for (var j = 0; j < message.backups.length; ++j) - object.backups[j] = $root.google.cloud.sql.v1.Backup.toObject(message.backups[j], options); + object.backups[j] = $root.google.cloud.sql.v1.Backup.toObject(message.backups[j], options, q + 1); } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) object.nextPageToken = message.nextPageToken; if (message.warnings && message.warnings.length) { object.warnings = []; for (var j = 0; j < message.warnings.length; ++j) - object.warnings[j] = $root.google.cloud.sql.v1.ApiWarning.toObject(message.warnings[j], options); + object.warnings[j] = $root.google.cloud.sql.v1.ApiWarning.toObject(message.warnings[j], options, q + 1); } return object; }; @@ -26061,7 +27818,7 @@ function UpdateBackupRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -26102,13 +27859,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UpdateBackupRequest.encode = function encode(message, writer) { + UpdateBackupRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) - $root.google.cloud.sql.v1.Backup.encode(message.backup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.Backup.encode(message.backup, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.updateMask != null && Object.hasOwnProperty.call(message, "updateMask")) - $root.google.protobuf.FieldMask.encode(message.updateMask, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.FieldMask.encode(message.updateMask, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -26122,7 +27883,7 @@ * @returns {$protobuf.Writer} Writer */ UpdateBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -26136,9 +27897,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UpdateBackupRequest.decode = function decode(reader, length, error) { + UpdateBackupRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.UpdateBackupRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -26146,15 +27911,15 @@ break; switch (tag >>> 3) { case 1: { - message.backup = $root.google.cloud.sql.v1.Backup.decode(reader, reader.uint32()); + message.backup = $root.google.cloud.sql.v1.Backup.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.updateMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32()); + message.updateMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -26185,16 +27950,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UpdateBackupRequest.verify = function verify(message) { + UpdateBackupRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.backup != null && message.hasOwnProperty("backup")) { - var error = $root.google.cloud.sql.v1.Backup.verify(message.backup); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) { + var error = $root.google.cloud.sql.v1.Backup.verify(message.backup, long + 1); if (error) return "backup." + error; } - if (message.updateMask != null && message.hasOwnProperty("updateMask")) { - var error = $root.google.protobuf.FieldMask.verify(message.updateMask); + if (message.updateMask != null && Object.hasOwnProperty.call(message, "updateMask")) { + var error = $root.google.protobuf.FieldMask.verify(message.updateMask, long + 1); if (error) return "updateMask." + error; } @@ -26209,19 +27978,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.UpdateBackupRequest} UpdateBackupRequest */ - UpdateBackupRequest.fromObject = function fromObject(object) { + UpdateBackupRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.UpdateBackupRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.UpdateBackupRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.UpdateBackupRequest(); if (object.backup != null) { - if (typeof object.backup !== "object") + if (!$util.isObject(object.backup)) throw TypeError(".google.cloud.sql.v1.UpdateBackupRequest.backup: object expected"); - message.backup = $root.google.cloud.sql.v1.Backup.fromObject(object.backup); + message.backup = $root.google.cloud.sql.v1.Backup.fromObject(object.backup, long + 1); } if (object.updateMask != null) { - if (typeof object.updateMask !== "object") + if (!$util.isObject(object.updateMask)) throw TypeError(".google.cloud.sql.v1.UpdateBackupRequest.updateMask: object expected"); - message.updateMask = $root.google.protobuf.FieldMask.fromObject(object.updateMask); + message.updateMask = $root.google.protobuf.FieldMask.fromObject(object.updateMask, long + 1); } return message; }; @@ -26235,18 +28010,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - UpdateBackupRequest.toObject = function toObject(message, options) { + UpdateBackupRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.backup = null; object.updateMask = null; } - if (message.backup != null && message.hasOwnProperty("backup")) - object.backup = $root.google.cloud.sql.v1.Backup.toObject(message.backup, options); - if (message.updateMask != null && message.hasOwnProperty("updateMask")) - object.updateMask = $root.google.protobuf.FieldMask.toObject(message.updateMask, options); + if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) + object.backup = $root.google.cloud.sql.v1.Backup.toObject(message.backup, options, q + 1); + if (message.updateMask != null && Object.hasOwnProperty.call(message, "updateMask")) + object.updateMask = $root.google.protobuf.FieldMask.toObject(message.updateMask, options, q + 1); return object; }; @@ -26299,7 +28078,7 @@ function DeleteBackupRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -26332,9 +28111,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DeleteBackupRequest.encode = function encode(message, writer) { + DeleteBackupRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); return writer; @@ -26350,7 +28133,7 @@ * @returns {$protobuf.Writer} Writer */ DeleteBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -26364,9 +28147,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteBackupRequest.decode = function decode(reader, length, error) { + DeleteBackupRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.DeleteBackupRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -26378,7 +28165,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -26409,10 +28196,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeleteBackupRequest.verify = function verify(message) { + DeleteBackupRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; return null; @@ -26426,9 +28217,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.DeleteBackupRequest} DeleteBackupRequest */ - DeleteBackupRequest.fromObject = function fromObject(object) { + DeleteBackupRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.DeleteBackupRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.DeleteBackupRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.DeleteBackupRequest(); if (object.name != null) message.name = String(object.name); @@ -26444,13 +28241,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DeleteBackupRequest.toObject = function toObject(message, options) { + DeleteBackupRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.name = ""; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; return object; }; @@ -26526,7 +28327,7 @@ function Backup(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -26755,9 +28556,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Backup.encode = function encode(message, writer) { + Backup.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -26773,11 +28578,11 @@ if (message.location != null && Object.hasOwnProperty.call(message, "location")) writer.uint32(/* id 7, wireType 2 =*/58).string(message.location); if (message.backupInterval != null && Object.hasOwnProperty.call(message, "backupInterval")) - $root.google.type.Interval.encode(message.backupInterval, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.type.Interval.encode(message.backupInterval, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); if (message.state != null && Object.hasOwnProperty.call(message, "state")) writer.uint32(/* id 9, wireType 0 =*/72).int32(message.state); if (message.error != null && Object.hasOwnProperty.call(message, "error")) - $root.google.cloud.sql.v1.OperationError.encode(message.error, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + $root.google.cloud.sql.v1.OperationError.encode(message.error, writer.uint32(/* id 10, wireType 2 =*/82).fork(), q + 1).ldelim(); if (message.kmsKey != null && Object.hasOwnProperty.call(message, "kmsKey")) writer.uint32(/* id 11, wireType 2 =*/90).string(message.kmsKey); if (message.kmsKeyVersion != null && Object.hasOwnProperty.call(message, "kmsKeyVersion")) @@ -26789,21 +28594,21 @@ if (message.ttlDays != null && Object.hasOwnProperty.call(message, "ttlDays")) writer.uint32(/* id 16, wireType 0 =*/128).int64(message.ttlDays); if (message.expiryTime != null && Object.hasOwnProperty.call(message, "expiryTime")) - $root.google.protobuf.Timestamp.encode(message.expiryTime, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.expiryTime, writer.uint32(/* id 17, wireType 2 =*/138).fork(), q + 1).ldelim(); if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) writer.uint32(/* id 20, wireType 0 =*/160).int32(message.databaseVersion); if (message.maxChargeableBytes != null && Object.hasOwnProperty.call(message, "maxChargeableBytes")) writer.uint32(/* id 23, wireType 0 =*/184).int64(message.maxChargeableBytes); if (message.instanceDeletionTime != null && Object.hasOwnProperty.call(message, "instanceDeletionTime")) - $root.google.protobuf.Timestamp.encode(message.instanceDeletionTime, writer.uint32(/* id 24, wireType 2 =*/194).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.instanceDeletionTime, writer.uint32(/* id 24, wireType 2 =*/194).fork(), q + 1).ldelim(); if (message.instanceSettings != null && Object.hasOwnProperty.call(message, "instanceSettings")) - $root.google.cloud.sql.v1.DatabaseInstance.encode(message.instanceSettings, writer.uint32(/* id 25, wireType 2 =*/202).fork()).ldelim(); + $root.google.cloud.sql.v1.DatabaseInstance.encode(message.instanceSettings, writer.uint32(/* id 25, wireType 2 =*/202).fork(), q + 1).ldelim(); if (message.backupRun != null && Object.hasOwnProperty.call(message, "backupRun")) writer.uint32(/* id 26, wireType 2 =*/210).string(message.backupRun); if (message.satisfiesPzs != null && Object.hasOwnProperty.call(message, "satisfiesPzs")) - $root.google.protobuf.BoolValue.encode(message.satisfiesPzs, writer.uint32(/* id 27, wireType 2 =*/218).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.satisfiesPzs, writer.uint32(/* id 27, wireType 2 =*/218).fork(), q + 1).ldelim(); if (message.satisfiesPzi != null && Object.hasOwnProperty.call(message, "satisfiesPzi")) - $root.google.protobuf.BoolValue.encode(message.satisfiesPzi, writer.uint32(/* id 28, wireType 2 =*/226).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.satisfiesPzi, writer.uint32(/* id 28, wireType 2 =*/226).fork(), q + 1).ldelim(); return writer; }; @@ -26817,7 +28622,7 @@ * @returns {$protobuf.Writer} Writer */ Backup.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -26831,9 +28636,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Backup.decode = function decode(reader, length, error) { + Backup.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.Backup(); while (reader.pos < end) { var tag = reader.uint32(); @@ -26869,7 +28678,7 @@ break; } case 8: { - message.backupInterval = $root.google.type.Interval.decode(reader, reader.uint32()); + message.backupInterval = $root.google.type.Interval.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { @@ -26877,7 +28686,7 @@ break; } case 10: { - message.error = $root.google.cloud.sql.v1.OperationError.decode(reader, reader.uint32()); + message.error = $root.google.cloud.sql.v1.OperationError.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { @@ -26901,7 +28710,7 @@ break; } case 17: { - message.expiryTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.expiryTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 20: { @@ -26913,11 +28722,11 @@ break; } case 24: { - message.instanceDeletionTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.instanceDeletionTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 25: { - message.instanceSettings = $root.google.cloud.sql.v1.DatabaseInstance.decode(reader, reader.uint32()); + message.instanceSettings = $root.google.cloud.sql.v1.DatabaseInstance.decode(reader, reader.uint32(), undefined, long + 1); break; } case 26: { @@ -26925,15 +28734,15 @@ break; } case 27: { - message.satisfiesPzs = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.satisfiesPzs = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 28: { - message.satisfiesPzi = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.satisfiesPzi = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -26964,20 +28773,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Backup.verify = function verify(message) { + Backup.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) if (!$util.isString(message.selfLink)) return "selfLink: string expected"; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) switch (message.type) { default: return "type: enum value expected"; @@ -26987,21 +28800,21 @@ case 3: break; } - if (message.description != null && message.hasOwnProperty("description")) + if (message.description != null && Object.hasOwnProperty.call(message, "description")) if (!$util.isString(message.description)) return "description: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.location != null && message.hasOwnProperty("location")) + if (message.location != null && Object.hasOwnProperty.call(message, "location")) if (!$util.isString(message.location)) return "location: string expected"; - if (message.backupInterval != null && message.hasOwnProperty("backupInterval")) { - var error = $root.google.type.Interval.verify(message.backupInterval); + if (message.backupInterval != null && Object.hasOwnProperty.call(message, "backupInterval")) { + var error = $root.google.type.Interval.verify(message.backupInterval, long + 1); if (error) return "backupInterval." + error; } - if (message.state != null && message.hasOwnProperty("state")) + if (message.state != null && Object.hasOwnProperty.call(message, "state")) switch (message.state) { default: return "state: enum value expected"; @@ -27014,18 +28827,18 @@ case 6: break; } - if (message.error != null && message.hasOwnProperty("error")) { - var error = $root.google.cloud.sql.v1.OperationError.verify(message.error); + if (message.error != null && Object.hasOwnProperty.call(message, "error")) { + var error = $root.google.cloud.sql.v1.OperationError.verify(message.error, long + 1); if (error) return "error." + error; } - if (message.kmsKey != null && message.hasOwnProperty("kmsKey")) + if (message.kmsKey != null && Object.hasOwnProperty.call(message, "kmsKey")) if (!$util.isString(message.kmsKey)) return "kmsKey: string expected"; - if (message.kmsKeyVersion != null && message.hasOwnProperty("kmsKeyVersion")) + if (message.kmsKeyVersion != null && Object.hasOwnProperty.call(message, "kmsKeyVersion")) if (!$util.isString(message.kmsKeyVersion)) return "kmsKeyVersion: string expected"; - if (message.backupKind != null && message.hasOwnProperty("backupKind")) + if (message.backupKind != null && Object.hasOwnProperty.call(message, "backupKind")) switch (message.backupKind) { default: return "backupKind: enum value expected"; @@ -27034,25 +28847,25 @@ case 2: break; } - if (message.timeZone != null && message.hasOwnProperty("timeZone")) + if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) if (!$util.isString(message.timeZone)) return "timeZone: string expected"; - if (message.ttlDays != null && message.hasOwnProperty("ttlDays")) { + if (message.ttlDays != null && Object.hasOwnProperty.call(message, "ttlDays")) { properties.expiration = 1; if (!$util.isInteger(message.ttlDays) && !(message.ttlDays && $util.isInteger(message.ttlDays.low) && $util.isInteger(message.ttlDays.high))) return "ttlDays: integer|Long expected"; } - if (message.expiryTime != null && message.hasOwnProperty("expiryTime")) { + if (message.expiryTime != null && Object.hasOwnProperty.call(message, "expiryTime")) { if (properties.expiration === 1) return "expiration: multiple values"; properties.expiration = 1; { - var error = $root.google.protobuf.Timestamp.verify(message.expiryTime); + var error = $root.google.protobuf.Timestamp.verify(message.expiryTime, long + 1); if (error) return "expiryTime." + error; } } - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) switch (message.databaseVersion) { default: return "databaseVersion: enum value expected"; @@ -27099,6 +28912,7 @@ case 272: case 408: case 557: + case 684: case 26: case 27: case 28: @@ -27107,33 +28921,36 @@ case 200: case 201: case 202: + case 549: + case 550: + case 551: break; } - if (message.maxChargeableBytes != null && message.hasOwnProperty("maxChargeableBytes")) { + if (message.maxChargeableBytes != null && Object.hasOwnProperty.call(message, "maxChargeableBytes")) { properties._maxChargeableBytes = 1; if (!$util.isInteger(message.maxChargeableBytes) && !(message.maxChargeableBytes && $util.isInteger(message.maxChargeableBytes.low) && $util.isInteger(message.maxChargeableBytes.high))) return "maxChargeableBytes: integer|Long expected"; } - if (message.instanceDeletionTime != null && message.hasOwnProperty("instanceDeletionTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.instanceDeletionTime); + if (message.instanceDeletionTime != null && Object.hasOwnProperty.call(message, "instanceDeletionTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.instanceDeletionTime, long + 1); if (error) return "instanceDeletionTime." + error; } - if (message.instanceSettings != null && message.hasOwnProperty("instanceSettings")) { - var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.instanceSettings); + if (message.instanceSettings != null && Object.hasOwnProperty.call(message, "instanceSettings")) { + var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.instanceSettings, long + 1); if (error) return "instanceSettings." + error; } - if (message.backupRun != null && message.hasOwnProperty("backupRun")) + if (message.backupRun != null && Object.hasOwnProperty.call(message, "backupRun")) if (!$util.isString(message.backupRun)) return "backupRun: string expected"; - if (message.satisfiesPzs != null && message.hasOwnProperty("satisfiesPzs")) { - var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzs); + if (message.satisfiesPzs != null && Object.hasOwnProperty.call(message, "satisfiesPzs")) { + var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzs, long + 1); if (error) return "satisfiesPzs." + error; } - if (message.satisfiesPzi != null && message.hasOwnProperty("satisfiesPzi")) { - var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzi); + if (message.satisfiesPzi != null && Object.hasOwnProperty.call(message, "satisfiesPzi")) { + var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzi, long + 1); if (error) return "satisfiesPzi." + error; } @@ -27148,9 +28965,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.Backup} Backup */ - Backup.fromObject = function fromObject(object) { + Backup.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.Backup) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.Backup: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.Backup(); if (object.name != null) message.name = String(object.name); @@ -27189,9 +29012,9 @@ if (object.location != null) message.location = String(object.location); if (object.backupInterval != null) { - if (typeof object.backupInterval !== "object") + if (!$util.isObject(object.backupInterval)) throw TypeError(".google.cloud.sql.v1.Backup.backupInterval: object expected"); - message.backupInterval = $root.google.type.Interval.fromObject(object.backupInterval); + message.backupInterval = $root.google.type.Interval.fromObject(object.backupInterval, long + 1); } switch (object.state) { default: @@ -27230,9 +29053,9 @@ break; } if (object.error != null) { - if (typeof object.error !== "object") + if (!$util.isObject(object.error)) throw TypeError(".google.cloud.sql.v1.Backup.error: object expected"); - message.error = $root.google.cloud.sql.v1.OperationError.fromObject(object.error); + message.error = $root.google.cloud.sql.v1.OperationError.fromObject(object.error, long + 1); } if (object.kmsKey != null) message.kmsKey = String(object.kmsKey); @@ -27262,7 +29085,7 @@ message.timeZone = String(object.timeZone); if (object.ttlDays != null) if ($util.Long) - (message.ttlDays = $util.Long.fromValue(object.ttlDays)).unsigned = false; + message.ttlDays = $util.Long.fromValue(object.ttlDays, false); else if (typeof object.ttlDays === "string") message.ttlDays = parseInt(object.ttlDays, 10); else if (typeof object.ttlDays === "number") @@ -27270,9 +29093,9 @@ else if (typeof object.ttlDays === "object") message.ttlDays = new $util.LongBits(object.ttlDays.low >>> 0, object.ttlDays.high >>> 0).toNumber(); if (object.expiryTime != null) { - if (typeof object.expiryTime !== "object") + if (!$util.isObject(object.expiryTime)) throw TypeError(".google.cloud.sql.v1.Backup.expiryTime: object expected"); - message.expiryTime = $root.google.protobuf.Timestamp.fromObject(object.expiryTime); + message.expiryTime = $root.google.protobuf.Timestamp.fromObject(object.expiryTime, long + 1); } switch (object.databaseVersion) { default: @@ -27453,6 +29276,10 @@ case 557: message.databaseVersion = 557; break; + case "POSTGRES_19": + case 684: + message.databaseVersion = 684; + break; case "SQLSERVER_2019_STANDARD": case 26: message.databaseVersion = 26; @@ -27485,10 +29312,22 @@ case 202: message.databaseVersion = 202; break; + case "SQLSERVER_2025_STANDARD": + case 549: + message.databaseVersion = 549; + break; + case "SQLSERVER_2025_ENTERPRISE": + case 550: + message.databaseVersion = 550; + break; + case "SQLSERVER_2025_EXPRESS": + case 551: + message.databaseVersion = 551; + break; } if (object.maxChargeableBytes != null) if ($util.Long) - (message.maxChargeableBytes = $util.Long.fromValue(object.maxChargeableBytes)).unsigned = false; + message.maxChargeableBytes = $util.Long.fromValue(object.maxChargeableBytes, false); else if (typeof object.maxChargeableBytes === "string") message.maxChargeableBytes = parseInt(object.maxChargeableBytes, 10); else if (typeof object.maxChargeableBytes === "number") @@ -27496,26 +29335,26 @@ else if (typeof object.maxChargeableBytes === "object") message.maxChargeableBytes = new $util.LongBits(object.maxChargeableBytes.low >>> 0, object.maxChargeableBytes.high >>> 0).toNumber(); if (object.instanceDeletionTime != null) { - if (typeof object.instanceDeletionTime !== "object") + if (!$util.isObject(object.instanceDeletionTime)) throw TypeError(".google.cloud.sql.v1.Backup.instanceDeletionTime: object expected"); - message.instanceDeletionTime = $root.google.protobuf.Timestamp.fromObject(object.instanceDeletionTime); + message.instanceDeletionTime = $root.google.protobuf.Timestamp.fromObject(object.instanceDeletionTime, long + 1); } if (object.instanceSettings != null) { - if (typeof object.instanceSettings !== "object") + if (!$util.isObject(object.instanceSettings)) throw TypeError(".google.cloud.sql.v1.Backup.instanceSettings: object expected"); - message.instanceSettings = $root.google.cloud.sql.v1.DatabaseInstance.fromObject(object.instanceSettings); + message.instanceSettings = $root.google.cloud.sql.v1.DatabaseInstance.fromObject(object.instanceSettings, long + 1); } if (object.backupRun != null) message.backupRun = String(object.backupRun); if (object.satisfiesPzs != null) { - if (typeof object.satisfiesPzs !== "object") + if (!$util.isObject(object.satisfiesPzs)) throw TypeError(".google.cloud.sql.v1.Backup.satisfiesPzs: object expected"); - message.satisfiesPzs = $root.google.protobuf.BoolValue.fromObject(object.satisfiesPzs); + message.satisfiesPzs = $root.google.protobuf.BoolValue.fromObject(object.satisfiesPzs, long + 1); } if (object.satisfiesPzi != null) { - if (typeof object.satisfiesPzi !== "object") + if (!$util.isObject(object.satisfiesPzi)) throw TypeError(".google.cloud.sql.v1.Backup.satisfiesPzi: object expected"); - message.satisfiesPzi = $root.google.protobuf.BoolValue.fromObject(object.satisfiesPzi); + message.satisfiesPzi = $root.google.protobuf.BoolValue.fromObject(object.satisfiesPzi, long + 1); } return message; }; @@ -27529,9 +29368,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Backup.toObject = function toObject(message, options) { + Backup.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; @@ -27555,67 +29398,71 @@ object.satisfiesPzs = null; object.satisfiesPzi = null; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) object.selfLink = message.selfLink; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = options.enums === String ? $root.google.cloud.sql.v1.Backup.SqlBackupType[message.type] === undefined ? message.type : $root.google.cloud.sql.v1.Backup.SqlBackupType[message.type] : message.type; - if (message.description != null && message.hasOwnProperty("description")) + if (message.description != null && Object.hasOwnProperty.call(message, "description")) object.description = message.description; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.location != null && message.hasOwnProperty("location")) + if (message.location != null && Object.hasOwnProperty.call(message, "location")) object.location = message.location; - if (message.backupInterval != null && message.hasOwnProperty("backupInterval")) - object.backupInterval = $root.google.type.Interval.toObject(message.backupInterval, options); - if (message.state != null && message.hasOwnProperty("state")) + if (message.backupInterval != null && Object.hasOwnProperty.call(message, "backupInterval")) + object.backupInterval = $root.google.type.Interval.toObject(message.backupInterval, options, q + 1); + if (message.state != null && Object.hasOwnProperty.call(message, "state")) object.state = options.enums === String ? $root.google.cloud.sql.v1.Backup.SqlBackupState[message.state] === undefined ? message.state : $root.google.cloud.sql.v1.Backup.SqlBackupState[message.state] : message.state; - if (message.error != null && message.hasOwnProperty("error")) - object.error = $root.google.cloud.sql.v1.OperationError.toObject(message.error, options); - if (message.kmsKey != null && message.hasOwnProperty("kmsKey")) + if (message.error != null && Object.hasOwnProperty.call(message, "error")) + object.error = $root.google.cloud.sql.v1.OperationError.toObject(message.error, options, q + 1); + if (message.kmsKey != null && Object.hasOwnProperty.call(message, "kmsKey")) object.kmsKey = message.kmsKey; - if (message.kmsKeyVersion != null && message.hasOwnProperty("kmsKeyVersion")) + if (message.kmsKeyVersion != null && Object.hasOwnProperty.call(message, "kmsKeyVersion")) object.kmsKeyVersion = message.kmsKeyVersion; - if (message.backupKind != null && message.hasOwnProperty("backupKind")) + if (message.backupKind != null && Object.hasOwnProperty.call(message, "backupKind")) object.backupKind = options.enums === String ? $root.google.cloud.sql.v1.SqlBackupKind[message.backupKind] === undefined ? message.backupKind : $root.google.cloud.sql.v1.SqlBackupKind[message.backupKind] : message.backupKind; - if (message.timeZone != null && message.hasOwnProperty("timeZone")) + if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) object.timeZone = message.timeZone; - if (message.ttlDays != null && message.hasOwnProperty("ttlDays")) { - if (typeof message.ttlDays === "number") + if (message.ttlDays != null && Object.hasOwnProperty.call(message, "ttlDays")) { + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.ttlDays = typeof message.ttlDays === "number" ? BigInt(message.ttlDays) : $util.Long.fromBits(message.ttlDays.low >>> 0, message.ttlDays.high >>> 0, false).toBigInt(); + else if (typeof message.ttlDays === "number") object.ttlDays = options.longs === String ? String(message.ttlDays) : message.ttlDays; else object.ttlDays = options.longs === String ? $util.Long.prototype.toString.call(message.ttlDays) : options.longs === Number ? new $util.LongBits(message.ttlDays.low >>> 0, message.ttlDays.high >>> 0).toNumber() : message.ttlDays; if (options.oneofs) object.expiration = "ttlDays"; } - if (message.expiryTime != null && message.hasOwnProperty("expiryTime")) { - object.expiryTime = $root.google.protobuf.Timestamp.toObject(message.expiryTime, options); + if (message.expiryTime != null && Object.hasOwnProperty.call(message, "expiryTime")) { + object.expiryTime = $root.google.protobuf.Timestamp.toObject(message.expiryTime, options, q + 1); if (options.oneofs) object.expiration = "expiryTime"; } - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) object.databaseVersion = options.enums === String ? $root.google.cloud.sql.v1.SqlDatabaseVersion[message.databaseVersion] === undefined ? message.databaseVersion : $root.google.cloud.sql.v1.SqlDatabaseVersion[message.databaseVersion] : message.databaseVersion; - if (message.maxChargeableBytes != null && message.hasOwnProperty("maxChargeableBytes")) { - if (typeof message.maxChargeableBytes === "number") + if (message.maxChargeableBytes != null && Object.hasOwnProperty.call(message, "maxChargeableBytes")) { + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.maxChargeableBytes = typeof message.maxChargeableBytes === "number" ? BigInt(message.maxChargeableBytes) : $util.Long.fromBits(message.maxChargeableBytes.low >>> 0, message.maxChargeableBytes.high >>> 0, false).toBigInt(); + else if (typeof message.maxChargeableBytes === "number") object.maxChargeableBytes = options.longs === String ? String(message.maxChargeableBytes) : message.maxChargeableBytes; else object.maxChargeableBytes = options.longs === String ? $util.Long.prototype.toString.call(message.maxChargeableBytes) : options.longs === Number ? new $util.LongBits(message.maxChargeableBytes.low >>> 0, message.maxChargeableBytes.high >>> 0).toNumber() : message.maxChargeableBytes; if (options.oneofs) object._maxChargeableBytes = "maxChargeableBytes"; } - if (message.instanceDeletionTime != null && message.hasOwnProperty("instanceDeletionTime")) - object.instanceDeletionTime = $root.google.protobuf.Timestamp.toObject(message.instanceDeletionTime, options); - if (message.instanceSettings != null && message.hasOwnProperty("instanceSettings")) - object.instanceSettings = $root.google.cloud.sql.v1.DatabaseInstance.toObject(message.instanceSettings, options); - if (message.backupRun != null && message.hasOwnProperty("backupRun")) + if (message.instanceDeletionTime != null && Object.hasOwnProperty.call(message, "instanceDeletionTime")) + object.instanceDeletionTime = $root.google.protobuf.Timestamp.toObject(message.instanceDeletionTime, options, q + 1); + if (message.instanceSettings != null && Object.hasOwnProperty.call(message, "instanceSettings")) + object.instanceSettings = $root.google.cloud.sql.v1.DatabaseInstance.toObject(message.instanceSettings, options, q + 1); + if (message.backupRun != null && Object.hasOwnProperty.call(message, "backupRun")) object.backupRun = message.backupRun; - if (message.satisfiesPzs != null && message.hasOwnProperty("satisfiesPzs")) - object.satisfiesPzs = $root.google.protobuf.BoolValue.toObject(message.satisfiesPzs, options); - if (message.satisfiesPzi != null && message.hasOwnProperty("satisfiesPzi")) - object.satisfiesPzi = $root.google.protobuf.BoolValue.toObject(message.satisfiesPzi, options); + if (message.satisfiesPzs != null && Object.hasOwnProperty.call(message, "satisfiesPzs")) + object.satisfiesPzs = $root.google.protobuf.BoolValue.toObject(message.satisfiesPzs, options, q + 1); + if (message.satisfiesPzi != null && Object.hasOwnProperty.call(message, "satisfiesPzi")) + object.satisfiesPzi = $root.google.protobuf.BoolValue.toObject(message.satisfiesPzi, options, q + 1); return object; }; @@ -27742,7 +29589,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.addServerCa = function addServerCa(request, callback) { - return this.rpcCall(addServerCa, $root.google.cloud.sql.v1.SqlInstancesAddServerCaRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, addServerCa, $root.google.cloud.sql.v1.SqlInstancesAddServerCaRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "AddServerCa" }); /** @@ -27775,7 +29622,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.addServerCertificate = function addServerCertificate(request, callback) { - return this.rpcCall(addServerCertificate, $root.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, addServerCertificate, $root.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "AddServerCertificate" }); /** @@ -27808,7 +29655,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.addEntraIdCertificate = function addEntraIdCertificate(request, callback) { - return this.rpcCall(addEntraIdCertificate, $root.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, addEntraIdCertificate, $root.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "AddEntraIdCertificate" }); /** @@ -27841,7 +29688,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.clone = function clone(request, callback) { - return this.rpcCall(clone, $root.google.cloud.sql.v1.SqlInstancesCloneRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, clone, $root.google.cloud.sql.v1.SqlInstancesCloneRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Clone" }); /** @@ -27874,7 +29721,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype["delete"] = function delete_(request, callback) { - return this.rpcCall(delete_, $root.google.cloud.sql.v1.SqlInstancesDeleteRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, delete_, $root.google.cloud.sql.v1.SqlInstancesDeleteRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Delete" }); /** @@ -27907,7 +29754,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.demoteMaster = function demoteMaster(request, callback) { - return this.rpcCall(demoteMaster, $root.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, demoteMaster, $root.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "DemoteMaster" }); /** @@ -27940,7 +29787,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.demote = function demote(request, callback) { - return this.rpcCall(demote, $root.google.cloud.sql.v1.SqlInstancesDemoteRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, demote, $root.google.cloud.sql.v1.SqlInstancesDemoteRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Demote" }); /** @@ -27973,7 +29820,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype["export"] = function export_(request, callback) { - return this.rpcCall(export_, $root.google.cloud.sql.v1.SqlInstancesExportRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, export_, $root.google.cloud.sql.v1.SqlInstancesExportRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Export" }); /** @@ -28006,7 +29853,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.failover = function failover(request, callback) { - return this.rpcCall(failover, $root.google.cloud.sql.v1.SqlInstancesFailoverRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, failover, $root.google.cloud.sql.v1.SqlInstancesFailoverRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Failover" }); /** @@ -28039,7 +29886,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.reencrypt = function reencrypt(request, callback) { - return this.rpcCall(reencrypt, $root.google.cloud.sql.v1.SqlInstancesReencryptRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, reencrypt, $root.google.cloud.sql.v1.SqlInstancesReencryptRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Reencrypt" }); /** @@ -28072,7 +29919,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.get = function get(request, callback) { - return this.rpcCall(get, $root.google.cloud.sql.v1.SqlInstancesGetRequest, $root.google.cloud.sql.v1.DatabaseInstance, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, get, $root.google.cloud.sql.v1.SqlInstancesGetRequest, $root.google.cloud.sql.v1.DatabaseInstance, request, callback); }, "name", { value: "Get" }); /** @@ -28105,7 +29952,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype["import"] = function import_(request, callback) { - return this.rpcCall(import_, $root.google.cloud.sql.v1.SqlInstancesImportRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, import_, $root.google.cloud.sql.v1.SqlInstancesImportRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Import" }); /** @@ -28138,7 +29985,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.insert = function insert(request, callback) { - return this.rpcCall(insert, $root.google.cloud.sql.v1.SqlInstancesInsertRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, insert, $root.google.cloud.sql.v1.SqlInstancesInsertRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Insert" }); /** @@ -28171,7 +30018,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.list = function list(request, callback) { - return this.rpcCall(list, $root.google.cloud.sql.v1.SqlInstancesListRequest, $root.google.cloud.sql.v1.InstancesListResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, list, $root.google.cloud.sql.v1.SqlInstancesListRequest, $root.google.cloud.sql.v1.InstancesListResponse, request, callback); }, "name", { value: "List" }); /** @@ -28204,7 +30051,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.listServerCas = function listServerCas(request, callback) { - return this.rpcCall(listServerCas, $root.google.cloud.sql.v1.SqlInstancesListServerCasRequest, $root.google.cloud.sql.v1.InstancesListServerCasResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, listServerCas, $root.google.cloud.sql.v1.SqlInstancesListServerCasRequest, $root.google.cloud.sql.v1.InstancesListServerCasResponse, request, callback); }, "name", { value: "ListServerCas" }); /** @@ -28237,7 +30084,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.listServerCertificates = function listServerCertificates(request, callback) { - return this.rpcCall(listServerCertificates, $root.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest, $root.google.cloud.sql.v1.InstancesListServerCertificatesResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, listServerCertificates, $root.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest, $root.google.cloud.sql.v1.InstancesListServerCertificatesResponse, request, callback); }, "name", { value: "ListServerCertificates" }); /** @@ -28270,7 +30117,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.listEntraIdCertificates = function listEntraIdCertificates(request, callback) { - return this.rpcCall(listEntraIdCertificates, $root.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest, $root.google.cloud.sql.v1.InstancesListEntraIdCertificatesResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, listEntraIdCertificates, $root.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest, $root.google.cloud.sql.v1.InstancesListEntraIdCertificatesResponse, request, callback); }, "name", { value: "ListEntraIdCertificates" }); /** @@ -28303,7 +30150,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.patch = function patch(request, callback) { - return this.rpcCall(patch, $root.google.cloud.sql.v1.SqlInstancesPatchRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, patch, $root.google.cloud.sql.v1.SqlInstancesPatchRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Patch" }); /** @@ -28336,7 +30183,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.promoteReplica = function promoteReplica(request, callback) { - return this.rpcCall(promoteReplica, $root.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, promoteReplica, $root.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "PromoteReplica" }); /** @@ -28369,7 +30216,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.switchover = function switchover(request, callback) { - return this.rpcCall(switchover, $root.google.cloud.sql.v1.SqlInstancesSwitchoverRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, switchover, $root.google.cloud.sql.v1.SqlInstancesSwitchoverRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Switchover" }); /** @@ -28402,7 +30249,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.resetSslConfig = function resetSslConfig(request, callback) { - return this.rpcCall(resetSslConfig, $root.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, resetSslConfig, $root.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "ResetSslConfig" }); /** @@ -28435,7 +30282,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.restart = function restart(request, callback) { - return this.rpcCall(restart, $root.google.cloud.sql.v1.SqlInstancesRestartRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, restart, $root.google.cloud.sql.v1.SqlInstancesRestartRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Restart" }); /** @@ -28468,7 +30315,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.restoreBackup = function restoreBackup(request, callback) { - return this.rpcCall(restoreBackup, $root.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, restoreBackup, $root.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "RestoreBackup" }); /** @@ -28501,7 +30348,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.rotateServerCa = function rotateServerCa(request, callback) { - return this.rpcCall(rotateServerCa, $root.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, rotateServerCa, $root.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "RotateServerCa" }); /** @@ -28534,7 +30381,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.rotateServerCertificate = function rotateServerCertificate(request, callback) { - return this.rpcCall(rotateServerCertificate, $root.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, rotateServerCertificate, $root.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "RotateServerCertificate" }); /** @@ -28567,7 +30414,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.rotateEntraIdCertificate = function rotateEntraIdCertificate(request, callback) { - return this.rpcCall(rotateEntraIdCertificate, $root.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, rotateEntraIdCertificate, $root.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "RotateEntraIdCertificate" }); /** @@ -28600,7 +30447,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.startReplica = function startReplica(request, callback) { - return this.rpcCall(startReplica, $root.google.cloud.sql.v1.SqlInstancesStartReplicaRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, startReplica, $root.google.cloud.sql.v1.SqlInstancesStartReplicaRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "StartReplica" }); /** @@ -28633,7 +30480,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.stopReplica = function stopReplica(request, callback) { - return this.rpcCall(stopReplica, $root.google.cloud.sql.v1.SqlInstancesStopReplicaRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, stopReplica, $root.google.cloud.sql.v1.SqlInstancesStopReplicaRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "StopReplica" }); /** @@ -28666,7 +30513,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.truncateLog = function truncateLog(request, callback) { - return this.rpcCall(truncateLog, $root.google.cloud.sql.v1.SqlInstancesTruncateLogRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, truncateLog, $root.google.cloud.sql.v1.SqlInstancesTruncateLogRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "TruncateLog" }); /** @@ -28699,7 +30546,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.update = function update(request, callback) { - return this.rpcCall(update, $root.google.cloud.sql.v1.SqlInstancesUpdateRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, update, $root.google.cloud.sql.v1.SqlInstancesUpdateRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Update" }); /** @@ -28732,7 +30579,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.createEphemeral = function createEphemeral(request, callback) { - return this.rpcCall(createEphemeral, $root.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest, $root.google.cloud.sql.v1.SslCert, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, createEphemeral, $root.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest, $root.google.cloud.sql.v1.SslCert, request, callback); }, "name", { value: "CreateEphemeral" }); /** @@ -28765,7 +30612,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.rescheduleMaintenance = function rescheduleMaintenance(request, callback) { - return this.rpcCall(rescheduleMaintenance, $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, rescheduleMaintenance, $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "RescheduleMaintenance" }); /** @@ -28798,7 +30645,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.verifyExternalSyncSettings = function verifyExternalSyncSettings(request, callback) { - return this.rpcCall(verifyExternalSyncSettings, $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest, $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, verifyExternalSyncSettings, $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest, $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse, request, callback); }, "name", { value: "VerifyExternalSyncSettings" }); /** @@ -28831,7 +30678,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.startExternalSync = function startExternalSync(request, callback) { - return this.rpcCall(startExternalSync, $root.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, startExternalSync, $root.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "StartExternalSync" }); /** @@ -28864,7 +30711,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.performDiskShrink = function performDiskShrink(request, callback) { - return this.rpcCall(performDiskShrink, $root.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, performDiskShrink, $root.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "PerformDiskShrink" }); /** @@ -28897,7 +30744,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.getDiskShrinkConfig = function getDiskShrinkConfig(request, callback) { - return this.rpcCall(getDiskShrinkConfig, $root.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest, $root.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, getDiskShrinkConfig, $root.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest, $root.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigResponse, request, callback); }, "name", { value: "GetDiskShrinkConfig" }); /** @@ -28930,7 +30777,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.resetReplicaSize = function resetReplicaSize(request, callback) { - return this.rpcCall(resetReplicaSize, $root.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, resetReplicaSize, $root.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "ResetReplicaSize" }); /** @@ -28963,7 +30810,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.getLatestRecoveryTime = function getLatestRecoveryTime(request, callback) { - return this.rpcCall(getLatestRecoveryTime, $root.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest, $root.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, getLatestRecoveryTime, $root.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest, $root.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeResponse, request, callback); }, "name", { value: "GetLatestRecoveryTime" }); /** @@ -28996,7 +30843,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.executeSql = function executeSql(request, callback) { - return this.rpcCall(executeSql, $root.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest, $root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, executeSql, $root.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest, $root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse, request, callback); }, "name", { value: "ExecuteSql" }); /** @@ -29029,7 +30876,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.acquireSsrsLease = function acquireSsrsLease(request, callback) { - return this.rpcCall(acquireSsrsLease, $root.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest, $root.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, acquireSsrsLease, $root.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest, $root.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseResponse, request, callback); }, "name", { value: "AcquireSsrsLease" }); /** @@ -29062,7 +30909,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.releaseSsrsLease = function releaseSsrsLease(request, callback) { - return this.rpcCall(releaseSsrsLease, $root.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest, $root.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, releaseSsrsLease, $root.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest, $root.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseResponse, request, callback); }, "name", { value: "ReleaseSsrsLease" }); /** @@ -29095,7 +30942,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.preCheckMajorVersionUpgrade = function preCheckMajorVersionUpgrade(request, callback) { - return this.rpcCall(preCheckMajorVersionUpgrade, $root.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, preCheckMajorVersionUpgrade, $root.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "PreCheckMajorVersionUpgrade" }); /** @@ -29128,7 +30975,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.pointInTimeRestore = function pointInTimeRestore(request, callback) { - return this.rpcCall(pointInTimeRestore, $root.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, pointInTimeRestore, $root.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "PointInTimeRestore" }); /** @@ -29165,7 +31012,7 @@ function SqlInstancesAddServerCaRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -29206,9 +31053,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesAddServerCaRequest.encode = function encode(message, writer) { + SqlInstancesAddServerCaRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -29226,7 +31077,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesAddServerCaRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -29240,9 +31091,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesAddServerCaRequest.decode = function decode(reader, length, error) { + SqlInstancesAddServerCaRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesAddServerCaRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -29258,7 +31113,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29289,13 +31144,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesAddServerCaRequest.verify = function verify(message) { + SqlInstancesAddServerCaRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -29309,9 +31168,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesAddServerCaRequest} SqlInstancesAddServerCaRequest */ - SqlInstancesAddServerCaRequest.fromObject = function fromObject(object) { + SqlInstancesAddServerCaRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesAddServerCaRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesAddServerCaRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesAddServerCaRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -29329,17 +31194,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesAddServerCaRequest.toObject = function toObject(message, options) { + SqlInstancesAddServerCaRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -29394,7 +31263,7 @@ function SqlInstancesAddServerCertificateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -29435,9 +31304,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesAddServerCertificateRequest.encode = function encode(message, writer) { + SqlInstancesAddServerCertificateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -29455,7 +31328,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesAddServerCertificateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -29469,9 +31342,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesAddServerCertificateRequest.decode = function decode(reader, length, error) { + SqlInstancesAddServerCertificateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -29487,7 +31364,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29518,13 +31395,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesAddServerCertificateRequest.verify = function verify(message) { + SqlInstancesAddServerCertificateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -29538,9 +31419,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest} SqlInstancesAddServerCertificateRequest */ - SqlInstancesAddServerCertificateRequest.fromObject = function fromObject(object) { + SqlInstancesAddServerCertificateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -29558,17 +31445,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesAddServerCertificateRequest.toObject = function toObject(message, options) { + SqlInstancesAddServerCertificateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -29623,7 +31514,7 @@ function SqlInstancesAddEntraIdCertificateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -29664,9 +31555,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesAddEntraIdCertificateRequest.encode = function encode(message, writer) { + SqlInstancesAddEntraIdCertificateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -29684,7 +31579,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesAddEntraIdCertificateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -29698,9 +31593,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesAddEntraIdCertificateRequest.decode = function decode(reader, length, error) { + SqlInstancesAddEntraIdCertificateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -29716,7 +31615,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29747,13 +31646,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesAddEntraIdCertificateRequest.verify = function verify(message) { + SqlInstancesAddEntraIdCertificateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -29767,9 +31670,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest} SqlInstancesAddEntraIdCertificateRequest */ - SqlInstancesAddEntraIdCertificateRequest.fromObject = function fromObject(object) { + SqlInstancesAddEntraIdCertificateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -29787,17 +31696,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesAddEntraIdCertificateRequest.toObject = function toObject(message, options) { + SqlInstancesAddEntraIdCertificateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -29853,7 +31766,7 @@ function SqlInstancesCloneRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -29902,15 +31815,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesCloneRequest.encode = function encode(message, writer) { + SqlInstancesCloneRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.InstancesCloneRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.InstancesCloneRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -29924,7 +31841,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesCloneRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -29938,9 +31855,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesCloneRequest.decode = function decode(reader, length, error) { + SqlInstancesCloneRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesCloneRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -29956,11 +31877,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.InstancesCloneRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.InstancesCloneRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29991,17 +31912,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesCloneRequest.verify = function verify(message) { + SqlInstancesCloneRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.InstancesCloneRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.InstancesCloneRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -30016,18 +31941,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesCloneRequest} SqlInstancesCloneRequest */ - SqlInstancesCloneRequest.fromObject = function fromObject(object) { + SqlInstancesCloneRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesCloneRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesCloneRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesCloneRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesCloneRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.InstancesCloneRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.InstancesCloneRequest.fromObject(object.body, long + 1); } return message; }; @@ -30041,21 +31972,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesCloneRequest.toObject = function toObject(message, options) { + SqlInstancesCloneRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.InstancesCloneRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.InstancesCloneRequest.toObject(message.body, options, q + 1); return object; }; @@ -30113,7 +32048,7 @@ function SqlInstancesDeleteRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -30206,9 +32141,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesDeleteRequest.encode = function encode(message, writer) { + SqlInstancesDeleteRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -30218,7 +32157,7 @@ if (message.finalBackupDescription != null && Object.hasOwnProperty.call(message, "finalBackupDescription")) writer.uint32(/* id 5, wireType 2 =*/42).string(message.finalBackupDescription); if (message.finalBackupExpiryTime != null && Object.hasOwnProperty.call(message, "finalBackupExpiryTime")) - $root.google.protobuf.Timestamp.encode(message.finalBackupExpiryTime, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.finalBackupExpiryTime, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.enableFinalBackup != null && Object.hasOwnProperty.call(message, "enableFinalBackup")) writer.uint32(/* id 7, wireType 0 =*/56).bool(message.enableFinalBackup); return writer; @@ -30234,7 +32173,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesDeleteRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -30248,9 +32187,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesDeleteRequest.decode = function decode(reader, length, error) { + SqlInstancesDeleteRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesDeleteRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -30274,7 +32217,7 @@ break; } case 6: { - message.finalBackupExpiryTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.finalBackupExpiryTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -30282,7 +32225,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -30313,37 +32256,41 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesDeleteRequest.verify = function verify(message) { + SqlInstancesDeleteRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.enableFinalBackup != null && message.hasOwnProperty("enableFinalBackup")) { + if (message.enableFinalBackup != null && Object.hasOwnProperty.call(message, "enableFinalBackup")) { properties._enableFinalBackup = 1; if (typeof message.enableFinalBackup !== "boolean") return "enableFinalBackup: boolean expected"; } - if (message.finalBackupTtlDays != null && message.hasOwnProperty("finalBackupTtlDays")) { + if (message.finalBackupTtlDays != null && Object.hasOwnProperty.call(message, "finalBackupTtlDays")) { properties.expiration = 1; if (!$util.isInteger(message.finalBackupTtlDays) && !(message.finalBackupTtlDays && $util.isInteger(message.finalBackupTtlDays.low) && $util.isInteger(message.finalBackupTtlDays.high))) return "finalBackupTtlDays: integer|Long expected"; } - if (message.finalBackupExpiryTime != null && message.hasOwnProperty("finalBackupExpiryTime")) { + if (message.finalBackupExpiryTime != null && Object.hasOwnProperty.call(message, "finalBackupExpiryTime")) { if (properties.expiration === 1) return "expiration: multiple values"; properties.expiration = 1; { - var error = $root.google.protobuf.Timestamp.verify(message.finalBackupExpiryTime); + var error = $root.google.protobuf.Timestamp.verify(message.finalBackupExpiryTime, long + 1); if (error) return "finalBackupExpiryTime." + error; } } - if (message.finalBackupDescription != null && message.hasOwnProperty("finalBackupDescription")) + if (message.finalBackupDescription != null && Object.hasOwnProperty.call(message, "finalBackupDescription")) if (!$util.isString(message.finalBackupDescription)) return "finalBackupDescription: string expected"; return null; @@ -30357,9 +32304,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesDeleteRequest} SqlInstancesDeleteRequest */ - SqlInstancesDeleteRequest.fromObject = function fromObject(object) { + SqlInstancesDeleteRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesDeleteRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesDeleteRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesDeleteRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -30369,7 +32322,7 @@ message.enableFinalBackup = Boolean(object.enableFinalBackup); if (object.finalBackupTtlDays != null) if ($util.Long) - (message.finalBackupTtlDays = $util.Long.fromValue(object.finalBackupTtlDays)).unsigned = false; + message.finalBackupTtlDays = $util.Long.fromValue(object.finalBackupTtlDays, false); else if (typeof object.finalBackupTtlDays === "string") message.finalBackupTtlDays = parseInt(object.finalBackupTtlDays, 10); else if (typeof object.finalBackupTtlDays === "number") @@ -30377,9 +32330,9 @@ else if (typeof object.finalBackupTtlDays === "object") message.finalBackupTtlDays = new $util.LongBits(object.finalBackupTtlDays.low >>> 0, object.finalBackupTtlDays.high >>> 0).toNumber(); if (object.finalBackupExpiryTime != null) { - if (typeof object.finalBackupExpiryTime !== "object") + if (!$util.isObject(object.finalBackupExpiryTime)) throw TypeError(".google.cloud.sql.v1.SqlInstancesDeleteRequest.finalBackupExpiryTime: object expected"); - message.finalBackupExpiryTime = $root.google.protobuf.Timestamp.fromObject(object.finalBackupExpiryTime); + message.finalBackupExpiryTime = $root.google.protobuf.Timestamp.fromObject(object.finalBackupExpiryTime, long + 1); } if (object.finalBackupDescription != null) message.finalBackupDescription = String(object.finalBackupDescription); @@ -30395,35 +32348,41 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesDeleteRequest.toObject = function toObject(message, options) { + SqlInstancesDeleteRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.finalBackupDescription = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.finalBackupTtlDays != null && message.hasOwnProperty("finalBackupTtlDays")) { - if (typeof message.finalBackupTtlDays === "number") + if (message.finalBackupTtlDays != null && Object.hasOwnProperty.call(message, "finalBackupTtlDays")) { + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.finalBackupTtlDays = typeof message.finalBackupTtlDays === "number" ? BigInt(message.finalBackupTtlDays) : $util.Long.fromBits(message.finalBackupTtlDays.low >>> 0, message.finalBackupTtlDays.high >>> 0, false).toBigInt(); + else if (typeof message.finalBackupTtlDays === "number") object.finalBackupTtlDays = options.longs === String ? String(message.finalBackupTtlDays) : message.finalBackupTtlDays; else object.finalBackupTtlDays = options.longs === String ? $util.Long.prototype.toString.call(message.finalBackupTtlDays) : options.longs === Number ? new $util.LongBits(message.finalBackupTtlDays.low >>> 0, message.finalBackupTtlDays.high >>> 0).toNumber() : message.finalBackupTtlDays; if (options.oneofs) object.expiration = "finalBackupTtlDays"; } - if (message.finalBackupDescription != null && message.hasOwnProperty("finalBackupDescription")) + if (message.finalBackupDescription != null && Object.hasOwnProperty.call(message, "finalBackupDescription")) object.finalBackupDescription = message.finalBackupDescription; - if (message.finalBackupExpiryTime != null && message.hasOwnProperty("finalBackupExpiryTime")) { - object.finalBackupExpiryTime = $root.google.protobuf.Timestamp.toObject(message.finalBackupExpiryTime, options); + if (message.finalBackupExpiryTime != null && Object.hasOwnProperty.call(message, "finalBackupExpiryTime")) { + object.finalBackupExpiryTime = $root.google.protobuf.Timestamp.toObject(message.finalBackupExpiryTime, options, q + 1); if (options.oneofs) object.expiration = "finalBackupExpiryTime"; } - if (message.enableFinalBackup != null && message.hasOwnProperty("enableFinalBackup")) { + if (message.enableFinalBackup != null && Object.hasOwnProperty.call(message, "enableFinalBackup")) { object.enableFinalBackup = message.enableFinalBackup; if (options.oneofs) object._enableFinalBackup = "enableFinalBackup"; @@ -30482,7 +32441,7 @@ function SqlInstancesDemoteMasterRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -30531,15 +32490,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesDemoteMasterRequest.encode = function encode(message, writer) { + SqlInstancesDemoteMasterRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.InstancesDemoteMasterRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.InstancesDemoteMasterRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -30553,7 +32516,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesDemoteMasterRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -30567,9 +32530,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesDemoteMasterRequest.decode = function decode(reader, length, error) { + SqlInstancesDemoteMasterRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -30585,11 +32552,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.InstancesDemoteMasterRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.InstancesDemoteMasterRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -30620,17 +32587,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesDemoteMasterRequest.verify = function verify(message) { + SqlInstancesDemoteMasterRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.InstancesDemoteMasterRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.InstancesDemoteMasterRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -30645,18 +32616,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesDemoteMasterRequest} SqlInstancesDemoteMasterRequest */ - SqlInstancesDemoteMasterRequest.fromObject = function fromObject(object) { + SqlInstancesDemoteMasterRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesDemoteMasterRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesDemoteMasterRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.InstancesDemoteMasterRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.InstancesDemoteMasterRequest.fromObject(object.body, long + 1); } return message; }; @@ -30670,21 +32647,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesDemoteMasterRequest.toObject = function toObject(message, options) { + SqlInstancesDemoteMasterRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.InstancesDemoteMasterRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.InstancesDemoteMasterRequest.toObject(message.body, options, q + 1); return object; }; @@ -30739,7 +32720,7 @@ function SqlInstancesDemoteRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -30788,15 +32769,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesDemoteRequest.encode = function encode(message, writer) { + SqlInstancesDemoteRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.InstancesDemoteRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.InstancesDemoteRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -30810,7 +32795,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesDemoteRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -30824,9 +32809,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesDemoteRequest.decode = function decode(reader, length, error) { + SqlInstancesDemoteRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesDemoteRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -30842,11 +32831,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.InstancesDemoteRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.InstancesDemoteRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -30877,17 +32866,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesDemoteRequest.verify = function verify(message) { + SqlInstancesDemoteRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.InstancesDemoteRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.InstancesDemoteRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -30902,18 +32895,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesDemoteRequest} SqlInstancesDemoteRequest */ - SqlInstancesDemoteRequest.fromObject = function fromObject(object) { + SqlInstancesDemoteRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesDemoteRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesDemoteRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesDemoteRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesDemoteRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.InstancesDemoteRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.InstancesDemoteRequest.fromObject(object.body, long + 1); } return message; }; @@ -30927,21 +32926,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesDemoteRequest.toObject = function toObject(message, options) { + SqlInstancesDemoteRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.InstancesDemoteRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.InstancesDemoteRequest.toObject(message.body, options, q + 1); return object; }; @@ -30996,7 +32999,7 @@ function SqlInstancesExportRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -31045,15 +33048,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesExportRequest.encode = function encode(message, writer) { + SqlInstancesExportRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.InstancesExportRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.InstancesExportRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -31067,7 +33074,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesExportRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -31081,9 +33088,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesExportRequest.decode = function decode(reader, length, error) { + SqlInstancesExportRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesExportRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -31099,11 +33110,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.InstancesExportRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.InstancesExportRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -31134,17 +33145,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesExportRequest.verify = function verify(message) { + SqlInstancesExportRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.InstancesExportRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.InstancesExportRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -31159,18 +33174,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesExportRequest} SqlInstancesExportRequest */ - SqlInstancesExportRequest.fromObject = function fromObject(object) { + SqlInstancesExportRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesExportRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesExportRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesExportRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesExportRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.InstancesExportRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.InstancesExportRequest.fromObject(object.body, long + 1); } return message; }; @@ -31184,21 +33205,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesExportRequest.toObject = function toObject(message, options) { + SqlInstancesExportRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.InstancesExportRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.InstancesExportRequest.toObject(message.body, options, q + 1); return object; }; @@ -31253,7 +33278,7 @@ function SqlInstancesFailoverRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -31302,15 +33327,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesFailoverRequest.encode = function encode(message, writer) { + SqlInstancesFailoverRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.InstancesFailoverRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.InstancesFailoverRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -31324,7 +33353,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesFailoverRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -31338,9 +33367,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesFailoverRequest.decode = function decode(reader, length, error) { + SqlInstancesFailoverRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesFailoverRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -31356,11 +33389,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.InstancesFailoverRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.InstancesFailoverRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -31391,17 +33424,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesFailoverRequest.verify = function verify(message) { + SqlInstancesFailoverRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.InstancesFailoverRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.InstancesFailoverRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -31416,18 +33453,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesFailoverRequest} SqlInstancesFailoverRequest */ - SqlInstancesFailoverRequest.fromObject = function fromObject(object) { + SqlInstancesFailoverRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesFailoverRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesFailoverRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesFailoverRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesFailoverRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.InstancesFailoverRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.InstancesFailoverRequest.fromObject(object.body, long + 1); } return message; }; @@ -31441,21 +33484,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesFailoverRequest.toObject = function toObject(message, options) { + SqlInstancesFailoverRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.InstancesFailoverRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.InstancesFailoverRequest.toObject(message.body, options, q + 1); return object; }; @@ -31509,7 +33556,7 @@ function SqlInstancesGetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -31550,9 +33597,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesGetRequest.encode = function encode(message, writer) { + SqlInstancesGetRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -31570,7 +33621,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesGetRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -31584,9 +33635,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesGetRequest.decode = function decode(reader, length, error) { + SqlInstancesGetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesGetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -31602,7 +33657,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -31633,13 +33688,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesGetRequest.verify = function verify(message) { + SqlInstancesGetRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -31653,9 +33712,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesGetRequest} SqlInstancesGetRequest */ - SqlInstancesGetRequest.fromObject = function fromObject(object) { + SqlInstancesGetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesGetRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesGetRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesGetRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -31673,17 +33738,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesGetRequest.toObject = function toObject(message, options) { + SqlInstancesGetRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -31739,7 +33808,7 @@ function SqlInstancesImportRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -31788,15 +33857,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesImportRequest.encode = function encode(message, writer) { + SqlInstancesImportRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.InstancesImportRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.InstancesImportRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -31810,7 +33883,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesImportRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -31824,9 +33897,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesImportRequest.decode = function decode(reader, length, error) { + SqlInstancesImportRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesImportRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -31842,11 +33919,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.InstancesImportRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.InstancesImportRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -31877,17 +33954,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesImportRequest.verify = function verify(message) { + SqlInstancesImportRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.InstancesImportRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.InstancesImportRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -31902,18 +33983,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesImportRequest} SqlInstancesImportRequest */ - SqlInstancesImportRequest.fromObject = function fromObject(object) { + SqlInstancesImportRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesImportRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesImportRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesImportRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesImportRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.InstancesImportRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.InstancesImportRequest.fromObject(object.body, long + 1); } return message; }; @@ -31927,21 +34014,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesImportRequest.toObject = function toObject(message, options) { + SqlInstancesImportRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.InstancesImportRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.InstancesImportRequest.toObject(message.body, options, q + 1); return object; }; @@ -31995,7 +34086,7 @@ function SqlInstancesInsertRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -32036,13 +34127,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesInsertRequest.encode = function encode(message, writer) { + SqlInstancesInsertRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.DatabaseInstance.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.DatabaseInstance.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -32056,7 +34151,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesInsertRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -32070,9 +34165,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesInsertRequest.decode = function decode(reader, length, error) { + SqlInstancesInsertRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesInsertRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -32084,11 +34183,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.DatabaseInstance.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.DatabaseInstance.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32119,14 +34218,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesInsertRequest.verify = function verify(message) { + SqlInstancesInsertRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.body, long + 1); if (error) return "body." + error; } @@ -32141,16 +34244,22 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesInsertRequest} SqlInstancesInsertRequest */ - SqlInstancesInsertRequest.fromObject = function fromObject(object) { + SqlInstancesInsertRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesInsertRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesInsertRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesInsertRequest(); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesInsertRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.DatabaseInstance.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.DatabaseInstance.fromObject(object.body, long + 1); } return message; }; @@ -32164,18 +34273,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesInsertRequest.toObject = function toObject(message, options) { + SqlInstancesInsertRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.project = ""; object.body = null; } - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.DatabaseInstance.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.DatabaseInstance.toObject(message.body, options, q + 1); return object; }; @@ -32231,7 +34344,7 @@ function SqlInstancesListRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -32288,9 +34401,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesListRequest.encode = function encode(message, writer) { + SqlInstancesListRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.filter); if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) @@ -32312,7 +34429,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesListRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -32326,9 +34443,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesListRequest.decode = function decode(reader, length, error) { + SqlInstancesListRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesListRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -32352,7 +34473,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32383,19 +34504,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesListRequest.verify = function verify(message) { + SqlInstancesListRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.filter != null && message.hasOwnProperty("filter")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) if (!$util.isString(message.filter)) return "filter: string expected"; - if (message.maxResults != null && message.hasOwnProperty("maxResults")) + if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) if (!$util.isInteger(message.maxResults)) return "maxResults: integer expected"; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) if (!$util.isString(message.pageToken)) return "pageToken: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -32409,9 +34534,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesListRequest} SqlInstancesListRequest */ - SqlInstancesListRequest.fromObject = function fromObject(object) { + SqlInstancesListRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesListRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesListRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesListRequest(); if (object.filter != null) message.filter = String(object.filter); @@ -32433,9 +34564,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesListRequest.toObject = function toObject(message, options) { + SqlInstancesListRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.filter = ""; @@ -32443,13 +34578,13 @@ object.pageToken = ""; object.project = ""; } - if (message.filter != null && message.hasOwnProperty("filter")) + if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) object.filter = message.filter; - if (message.maxResults != null && message.hasOwnProperty("maxResults")) + if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) object.maxResults = message.maxResults; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) object.pageToken = message.pageToken; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -32504,7 +34639,7 @@ function SqlInstancesListServerCasRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -32545,9 +34680,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesListServerCasRequest.encode = function encode(message, writer) { + SqlInstancesListServerCasRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -32565,7 +34704,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesListServerCasRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -32579,9 +34718,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesListServerCasRequest.decode = function decode(reader, length, error) { + SqlInstancesListServerCasRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesListServerCasRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -32597,7 +34740,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32628,13 +34771,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesListServerCasRequest.verify = function verify(message) { + SqlInstancesListServerCasRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -32648,9 +34795,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesListServerCasRequest} SqlInstancesListServerCasRequest */ - SqlInstancesListServerCasRequest.fromObject = function fromObject(object) { + SqlInstancesListServerCasRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesListServerCasRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesListServerCasRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesListServerCasRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -32668,17 +34821,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesListServerCasRequest.toObject = function toObject(message, options) { + SqlInstancesListServerCasRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -32733,7 +34890,7 @@ function SqlInstancesListServerCertificatesRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -32774,9 +34931,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesListServerCertificatesRequest.encode = function encode(message, writer) { + SqlInstancesListServerCertificatesRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -32794,7 +34955,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesListServerCertificatesRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -32808,9 +34969,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesListServerCertificatesRequest.decode = function decode(reader, length, error) { + SqlInstancesListServerCertificatesRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -32826,7 +34991,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32857,13 +35022,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesListServerCertificatesRequest.verify = function verify(message) { + SqlInstancesListServerCertificatesRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -32877,9 +35046,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest} SqlInstancesListServerCertificatesRequest */ - SqlInstancesListServerCertificatesRequest.fromObject = function fromObject(object) { + SqlInstancesListServerCertificatesRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -32897,17 +35072,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesListServerCertificatesRequest.toObject = function toObject(message, options) { + SqlInstancesListServerCertificatesRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -32962,7 +35141,7 @@ function SqlInstancesListEntraIdCertificatesRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -33003,9 +35182,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesListEntraIdCertificatesRequest.encode = function encode(message, writer) { + SqlInstancesListEntraIdCertificatesRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -33023,7 +35206,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesListEntraIdCertificatesRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -33037,9 +35220,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesListEntraIdCertificatesRequest.decode = function decode(reader, length, error) { + SqlInstancesListEntraIdCertificatesRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -33055,7 +35242,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -33086,13 +35273,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesListEntraIdCertificatesRequest.verify = function verify(message) { + SqlInstancesListEntraIdCertificatesRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -33106,9 +35297,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest} SqlInstancesListEntraIdCertificatesRequest */ - SqlInstancesListEntraIdCertificatesRequest.fromObject = function fromObject(object) { + SqlInstancesListEntraIdCertificatesRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -33126,17 +35323,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesListEntraIdCertificatesRequest.toObject = function toObject(message, options) { + SqlInstancesListEntraIdCertificatesRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -33192,7 +35393,7 @@ function SqlInstancesPatchRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -33241,15 +35442,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesPatchRequest.encode = function encode(message, writer) { + SqlInstancesPatchRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.DatabaseInstance.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.DatabaseInstance.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -33263,7 +35468,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesPatchRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -33277,9 +35482,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesPatchRequest.decode = function decode(reader, length, error) { + SqlInstancesPatchRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesPatchRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -33295,11 +35504,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.DatabaseInstance.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.DatabaseInstance.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -33330,17 +35539,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesPatchRequest.verify = function verify(message) { + SqlInstancesPatchRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.body, long + 1); if (error) return "body." + error; } @@ -33355,18 +35568,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesPatchRequest} SqlInstancesPatchRequest */ - SqlInstancesPatchRequest.fromObject = function fromObject(object) { + SqlInstancesPatchRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesPatchRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesPatchRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesPatchRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesPatchRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.DatabaseInstance.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.DatabaseInstance.fromObject(object.body, long + 1); } return message; }; @@ -33380,21 +35599,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesPatchRequest.toObject = function toObject(message, options) { + SqlInstancesPatchRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.DatabaseInstance.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.DatabaseInstance.toObject(message.body, options, q + 1); return object; }; @@ -33449,7 +35672,7 @@ function SqlInstancesPromoteReplicaRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -33498,9 +35721,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesPromoteReplicaRequest.encode = function encode(message, writer) { + SqlInstancesPromoteReplicaRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -33520,7 +35747,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesPromoteReplicaRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -33534,9 +35761,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesPromoteReplicaRequest.decode = function decode(reader, length, error) { + SqlInstancesPromoteReplicaRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -33556,7 +35787,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -33587,16 +35818,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesPromoteReplicaRequest.verify = function verify(message) { + SqlInstancesPromoteReplicaRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.failover != null && message.hasOwnProperty("failover")) + if (message.failover != null && Object.hasOwnProperty.call(message, "failover")) if (typeof message.failover !== "boolean") return "failover: boolean expected"; return null; @@ -33610,9 +35845,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest} SqlInstancesPromoteReplicaRequest */ - SqlInstancesPromoteReplicaRequest.fromObject = function fromObject(object) { + SqlInstancesPromoteReplicaRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -33632,20 +35873,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesPromoteReplicaRequest.toObject = function toObject(message, options) { + SqlInstancesPromoteReplicaRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.failover = false; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.failover != null && message.hasOwnProperty("failover")) + if (message.failover != null && Object.hasOwnProperty.call(message, "failover")) object.failover = message.failover; return object; }; @@ -33701,7 +35946,7 @@ function SqlInstancesSwitchoverRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -33750,15 +35995,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesSwitchoverRequest.encode = function encode(message, writer) { + SqlInstancesSwitchoverRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.dbTimeout != null && Object.hasOwnProperty.call(message, "dbTimeout")) - $root.google.protobuf.Duration.encode(message.dbTimeout, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.dbTimeout, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -33772,7 +36021,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesSwitchoverRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -33786,9 +36035,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesSwitchoverRequest.decode = function decode(reader, length, error) { + SqlInstancesSwitchoverRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesSwitchoverRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -33804,11 +36057,11 @@ break; } case 3: { - message.dbTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.dbTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -33839,17 +36092,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesSwitchoverRequest.verify = function verify(message) { + SqlInstancesSwitchoverRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.dbTimeout != null && message.hasOwnProperty("dbTimeout")) { - var error = $root.google.protobuf.Duration.verify(message.dbTimeout); + if (message.dbTimeout != null && Object.hasOwnProperty.call(message, "dbTimeout")) { + var error = $root.google.protobuf.Duration.verify(message.dbTimeout, long + 1); if (error) return "dbTimeout." + error; } @@ -33864,18 +36121,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesSwitchoverRequest} SqlInstancesSwitchoverRequest */ - SqlInstancesSwitchoverRequest.fromObject = function fromObject(object) { + SqlInstancesSwitchoverRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesSwitchoverRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesSwitchoverRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesSwitchoverRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.dbTimeout != null) { - if (typeof object.dbTimeout !== "object") + if (!$util.isObject(object.dbTimeout)) throw TypeError(".google.cloud.sql.v1.SqlInstancesSwitchoverRequest.dbTimeout: object expected"); - message.dbTimeout = $root.google.protobuf.Duration.fromObject(object.dbTimeout); + message.dbTimeout = $root.google.protobuf.Duration.fromObject(object.dbTimeout, long + 1); } return message; }; @@ -33889,21 +36152,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesSwitchoverRequest.toObject = function toObject(message, options) { + SqlInstancesSwitchoverRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.dbTimeout = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.dbTimeout != null && message.hasOwnProperty("dbTimeout")) - object.dbTimeout = $root.google.protobuf.Duration.toObject(message.dbTimeout, options); + if (message.dbTimeout != null && Object.hasOwnProperty.call(message, "dbTimeout")) + object.dbTimeout = $root.google.protobuf.Duration.toObject(message.dbTimeout, options, q + 1); return object; }; @@ -33958,7 +36225,7 @@ function SqlInstancesResetSslConfigRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -34007,9 +36274,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesResetSslConfigRequest.encode = function encode(message, writer) { + SqlInstancesResetSslConfigRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -34029,7 +36300,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesResetSslConfigRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -34043,9 +36314,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesResetSslConfigRequest.decode = function decode(reader, length, error) { + SqlInstancesResetSslConfigRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -34065,7 +36340,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -34096,16 +36371,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesResetSslConfigRequest.verify = function verify(message) { + SqlInstancesResetSslConfigRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.mode != null && message.hasOwnProperty("mode")) + if (message.mode != null && Object.hasOwnProperty.call(message, "mode")) switch (message.mode) { default: return "mode: enum value expected"; @@ -34125,9 +36404,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesResetSslConfigRequest} SqlInstancesResetSslConfigRequest */ - SqlInstancesResetSslConfigRequest.fromObject = function fromObject(object) { + SqlInstancesResetSslConfigRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesResetSslConfigRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -34165,20 +36450,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesResetSslConfigRequest.toObject = function toObject(message, options) { + SqlInstancesResetSslConfigRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.mode = options.enums === String ? "RESET_SSL_MODE_UNSPECIFIED" : 0; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.mode != null && message.hasOwnProperty("mode")) + if (message.mode != null && Object.hasOwnProperty.call(message, "mode")) object.mode = options.enums === String ? $root.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest.ResetSslMode[message.mode] === undefined ? message.mode : $root.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest.ResetSslMode[message.mode] : message.mode; return object; }; @@ -34249,7 +36538,7 @@ function SqlInstancesRestartRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -34290,9 +36579,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesRestartRequest.encode = function encode(message, writer) { + SqlInstancesRestartRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -34310,7 +36603,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesRestartRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -34324,9 +36617,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesRestartRequest.decode = function decode(reader, length, error) { + SqlInstancesRestartRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesRestartRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -34342,7 +36639,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -34373,13 +36670,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesRestartRequest.verify = function verify(message) { + SqlInstancesRestartRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -34393,9 +36694,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesRestartRequest} SqlInstancesRestartRequest */ - SqlInstancesRestartRequest.fromObject = function fromObject(object) { + SqlInstancesRestartRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesRestartRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesRestartRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesRestartRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -34413,17 +36720,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesRestartRequest.toObject = function toObject(message, options) { + SqlInstancesRestartRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -34479,7 +36790,7 @@ function SqlInstancesRestoreBackupRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -34528,15 +36839,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesRestoreBackupRequest.encode = function encode(message, writer) { + SqlInstancesRestoreBackupRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.InstancesRestoreBackupRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.InstancesRestoreBackupRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -34550,7 +36865,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesRestoreBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -34564,9 +36879,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesRestoreBackupRequest.decode = function decode(reader, length, error) { + SqlInstancesRestoreBackupRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -34582,11 +36901,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.InstancesRestoreBackupRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.InstancesRestoreBackupRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -34617,17 +36936,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesRestoreBackupRequest.verify = function verify(message) { + SqlInstancesRestoreBackupRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.InstancesRestoreBackupRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.InstancesRestoreBackupRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -34642,18 +36965,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesRestoreBackupRequest} SqlInstancesRestoreBackupRequest */ - SqlInstancesRestoreBackupRequest.fromObject = function fromObject(object) { + SqlInstancesRestoreBackupRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesRestoreBackupRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesRestoreBackupRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.InstancesRestoreBackupRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.InstancesRestoreBackupRequest.fromObject(object.body, long + 1); } return message; }; @@ -34667,21 +36996,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesRestoreBackupRequest.toObject = function toObject(message, options) { + SqlInstancesRestoreBackupRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.InstancesRestoreBackupRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.InstancesRestoreBackupRequest.toObject(message.body, options, q + 1); return object; }; @@ -34736,7 +37069,7 @@ function SqlInstancesRotateServerCaRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -34785,15 +37118,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesRotateServerCaRequest.encode = function encode(message, writer) { + SqlInstancesRotateServerCaRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.InstancesRotateServerCaRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.InstancesRotateServerCaRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -34807,7 +37144,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesRotateServerCaRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -34821,9 +37158,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesRotateServerCaRequest.decode = function decode(reader, length, error) { + SqlInstancesRotateServerCaRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -34839,11 +37180,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.InstancesRotateServerCaRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.InstancesRotateServerCaRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -34874,17 +37215,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesRotateServerCaRequest.verify = function verify(message) { + SqlInstancesRotateServerCaRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.InstancesRotateServerCaRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.InstancesRotateServerCaRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -34899,18 +37244,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesRotateServerCaRequest} SqlInstancesRotateServerCaRequest */ - SqlInstancesRotateServerCaRequest.fromObject = function fromObject(object) { + SqlInstancesRotateServerCaRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesRotateServerCaRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesRotateServerCaRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.InstancesRotateServerCaRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.InstancesRotateServerCaRequest.fromObject(object.body, long + 1); } return message; }; @@ -34924,21 +37275,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesRotateServerCaRequest.toObject = function toObject(message, options) { + SqlInstancesRotateServerCaRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.InstancesRotateServerCaRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.InstancesRotateServerCaRequest.toObject(message.body, options, q + 1); return object; }; @@ -34993,7 +37348,7 @@ function SqlInstancesRotateServerCertificateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -35042,15 +37397,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesRotateServerCertificateRequest.encode = function encode(message, writer) { + SqlInstancesRotateServerCertificateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.InstancesRotateServerCertificateRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.InstancesRotateServerCertificateRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -35064,7 +37423,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesRotateServerCertificateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -35078,9 +37437,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesRotateServerCertificateRequest.decode = function decode(reader, length, error) { + SqlInstancesRotateServerCertificateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -35096,11 +37459,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.InstancesRotateServerCertificateRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.InstancesRotateServerCertificateRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -35131,17 +37494,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesRotateServerCertificateRequest.verify = function verify(message) { + SqlInstancesRotateServerCertificateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.InstancesRotateServerCertificateRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.InstancesRotateServerCertificateRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -35156,18 +37523,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest} SqlInstancesRotateServerCertificateRequest */ - SqlInstancesRotateServerCertificateRequest.fromObject = function fromObject(object) { + SqlInstancesRotateServerCertificateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.InstancesRotateServerCertificateRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.InstancesRotateServerCertificateRequest.fromObject(object.body, long + 1); } return message; }; @@ -35181,21 +37554,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesRotateServerCertificateRequest.toObject = function toObject(message, options) { + SqlInstancesRotateServerCertificateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.InstancesRotateServerCertificateRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.InstancesRotateServerCertificateRequest.toObject(message.body, options, q + 1); return object; }; @@ -35250,7 +37627,7 @@ function SqlInstancesRotateEntraIdCertificateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -35299,15 +37676,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesRotateEntraIdCertificateRequest.encode = function encode(message, writer) { + SqlInstancesRotateEntraIdCertificateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -35321,7 +37702,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesRotateEntraIdCertificateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -35335,9 +37716,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesRotateEntraIdCertificateRequest.decode = function decode(reader, length, error) { + SqlInstancesRotateEntraIdCertificateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -35353,11 +37738,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -35388,17 +37773,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesRotateEntraIdCertificateRequest.verify = function verify(message) { + SqlInstancesRotateEntraIdCertificateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -35413,18 +37802,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest} SqlInstancesRotateEntraIdCertificateRequest */ - SqlInstancesRotateEntraIdCertificateRequest.fromObject = function fromObject(object) { + SqlInstancesRotateEntraIdCertificateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest.fromObject(object.body, long + 1); } return message; }; @@ -35438,21 +37833,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesRotateEntraIdCertificateRequest.toObject = function toObject(message, options) { + SqlInstancesRotateEntraIdCertificateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest.toObject(message.body, options, q + 1); return object; }; @@ -35506,7 +37905,7 @@ function SqlInstancesStartReplicaRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -35547,9 +37946,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesStartReplicaRequest.encode = function encode(message, writer) { + SqlInstancesStartReplicaRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -35567,7 +37970,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesStartReplicaRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -35581,9 +37984,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesStartReplicaRequest.decode = function decode(reader, length, error) { + SqlInstancesStartReplicaRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesStartReplicaRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -35599,7 +38006,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -35630,13 +38037,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesStartReplicaRequest.verify = function verify(message) { + SqlInstancesStartReplicaRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -35650,9 +38061,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesStartReplicaRequest} SqlInstancesStartReplicaRequest */ - SqlInstancesStartReplicaRequest.fromObject = function fromObject(object) { + SqlInstancesStartReplicaRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesStartReplicaRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesStartReplicaRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesStartReplicaRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -35670,17 +38087,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesStartReplicaRequest.toObject = function toObject(message, options) { + SqlInstancesStartReplicaRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -35735,7 +38156,7 @@ function SqlInstancesStopReplicaRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -35776,9 +38197,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesStopReplicaRequest.encode = function encode(message, writer) { + SqlInstancesStopReplicaRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -35796,7 +38221,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesStopReplicaRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -35810,9 +38235,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesStopReplicaRequest.decode = function decode(reader, length, error) { + SqlInstancesStopReplicaRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesStopReplicaRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -35828,7 +38257,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -35859,13 +38288,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesStopReplicaRequest.verify = function verify(message) { + SqlInstancesStopReplicaRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -35879,9 +38312,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesStopReplicaRequest} SqlInstancesStopReplicaRequest */ - SqlInstancesStopReplicaRequest.fromObject = function fromObject(object) { + SqlInstancesStopReplicaRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesStopReplicaRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesStopReplicaRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesStopReplicaRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -35899,17 +38338,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesStopReplicaRequest.toObject = function toObject(message, options) { + SqlInstancesStopReplicaRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -35965,7 +38408,7 @@ function SqlInstancesTruncateLogRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -36014,15 +38457,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesTruncateLogRequest.encode = function encode(message, writer) { + SqlInstancesTruncateLogRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.InstancesTruncateLogRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.InstancesTruncateLogRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -36036,7 +38483,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesTruncateLogRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -36050,9 +38497,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesTruncateLogRequest.decode = function decode(reader, length, error) { + SqlInstancesTruncateLogRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesTruncateLogRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -36068,11 +38519,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.InstancesTruncateLogRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.InstancesTruncateLogRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -36103,17 +38554,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesTruncateLogRequest.verify = function verify(message) { + SqlInstancesTruncateLogRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.InstancesTruncateLogRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.InstancesTruncateLogRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -36128,18 +38583,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesTruncateLogRequest} SqlInstancesTruncateLogRequest */ - SqlInstancesTruncateLogRequest.fromObject = function fromObject(object) { + SqlInstancesTruncateLogRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesTruncateLogRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesTruncateLogRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesTruncateLogRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesTruncateLogRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.InstancesTruncateLogRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.InstancesTruncateLogRequest.fromObject(object.body, long + 1); } return message; }; @@ -36153,21 +38614,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesTruncateLogRequest.toObject = function toObject(message, options) { + SqlInstancesTruncateLogRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.InstancesTruncateLogRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.InstancesTruncateLogRequest.toObject(message.body, options, q + 1); return object; }; @@ -36222,7 +38687,7 @@ function SqlInstancesPerformDiskShrinkRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -36271,15 +38736,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesPerformDiskShrinkRequest.encode = function encode(message, writer) { + SqlInstancesPerformDiskShrinkRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.PerformDiskShrinkContext.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.PerformDiskShrinkContext.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -36293,7 +38762,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesPerformDiskShrinkRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -36307,9 +38776,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesPerformDiskShrinkRequest.decode = function decode(reader, length, error) { + SqlInstancesPerformDiskShrinkRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -36325,11 +38798,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.PerformDiskShrinkContext.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.PerformDiskShrinkContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -36360,17 +38833,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesPerformDiskShrinkRequest.verify = function verify(message) { + SqlInstancesPerformDiskShrinkRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.PerformDiskShrinkContext.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.PerformDiskShrinkContext.verify(message.body, long + 1); if (error) return "body." + error; } @@ -36385,18 +38862,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest} SqlInstancesPerformDiskShrinkRequest */ - SqlInstancesPerformDiskShrinkRequest.fromObject = function fromObject(object) { + SqlInstancesPerformDiskShrinkRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.PerformDiskShrinkContext.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.PerformDiskShrinkContext.fromObject(object.body, long + 1); } return message; }; @@ -36410,21 +38893,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesPerformDiskShrinkRequest.toObject = function toObject(message, options) { + SqlInstancesPerformDiskShrinkRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.PerformDiskShrinkContext.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.PerformDiskShrinkContext.toObject(message.body, options, q + 1); return object; }; @@ -36479,7 +38966,7 @@ function SqlInstancesUpdateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -36528,15 +39015,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesUpdateRequest.encode = function encode(message, writer) { + SqlInstancesUpdateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.DatabaseInstance.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.DatabaseInstance.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -36550,7 +39041,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesUpdateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -36564,9 +39055,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesUpdateRequest.decode = function decode(reader, length, error) { + SqlInstancesUpdateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesUpdateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -36582,11 +39077,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.DatabaseInstance.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.DatabaseInstance.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -36617,17 +39112,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesUpdateRequest.verify = function verify(message) { + SqlInstancesUpdateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.body, long + 1); if (error) return "body." + error; } @@ -36642,18 +39141,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesUpdateRequest} SqlInstancesUpdateRequest */ - SqlInstancesUpdateRequest.fromObject = function fromObject(object) { + SqlInstancesUpdateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesUpdateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesUpdateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesUpdateRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesUpdateRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.DatabaseInstance.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.DatabaseInstance.fromObject(object.body, long + 1); } return message; }; @@ -36667,21 +39172,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesUpdateRequest.toObject = function toObject(message, options) { + SqlInstancesUpdateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.DatabaseInstance.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.DatabaseInstance.toObject(message.body, options, q + 1); return object; }; @@ -36736,7 +39245,7 @@ function SqlInstancesRescheduleMaintenanceRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -36785,15 +39294,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesRescheduleMaintenanceRequest.encode = function encode(message, writer) { + SqlInstancesRescheduleMaintenanceRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -36807,7 +39320,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesRescheduleMaintenanceRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -36821,9 +39334,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesRescheduleMaintenanceRequest.decode = function decode(reader, length, error) { + SqlInstancesRescheduleMaintenanceRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -36839,11 +39356,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -36874,17 +39391,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesRescheduleMaintenanceRequest.verify = function verify(message) { + SqlInstancesRescheduleMaintenanceRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.verify(message.body, long + 1); if (error) return "body." + error; } @@ -36899,18 +39420,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest} SqlInstancesRescheduleMaintenanceRequest */ - SqlInstancesRescheduleMaintenanceRequest.fromObject = function fromObject(object) { + SqlInstancesRescheduleMaintenanceRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.fromObject(object.body, long + 1); } return message; }; @@ -36924,21 +39451,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesRescheduleMaintenanceRequest.toObject = function toObject(message, options) { + SqlInstancesRescheduleMaintenanceRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.toObject(message.body, options, q + 1); return object; }; @@ -36993,7 +39524,7 @@ function SqlInstancesReencryptRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -37042,15 +39573,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesReencryptRequest.encode = function encode(message, writer) { + SqlInstancesReencryptRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.InstancesReencryptRequest.encode(message.body, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1.InstancesReencryptRequest.encode(message.body, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -37064,7 +39599,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesReencryptRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -37078,9 +39613,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesReencryptRequest.decode = function decode(reader, length, error) { + SqlInstancesReencryptRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesReencryptRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -37096,11 +39635,11 @@ break; } case 3: { - message.body = $root.google.cloud.sql.v1.InstancesReencryptRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.InstancesReencryptRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -37131,17 +39670,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesReencryptRequest.verify = function verify(message) { + SqlInstancesReencryptRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.InstancesReencryptRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.InstancesReencryptRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -37156,18 +39699,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesReencryptRequest} SqlInstancesReencryptRequest */ - SqlInstancesReencryptRequest.fromObject = function fromObject(object) { + SqlInstancesReencryptRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesReencryptRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesReencryptRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesReencryptRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesReencryptRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.InstancesReencryptRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.InstancesReencryptRequest.fromObject(object.body, long + 1); } return message; }; @@ -37181,21 +39730,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesReencryptRequest.toObject = function toObject(message, options) { + SqlInstancesReencryptRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.InstancesReencryptRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.InstancesReencryptRequest.toObject(message.body, options, q + 1); return object; }; @@ -37248,7 +39801,7 @@ function InstancesReencryptRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -37290,11 +39843,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesReencryptRequest.encode = function encode(message, writer) { + InstancesReencryptRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.backupReencryptionConfig != null && Object.hasOwnProperty.call(message, "backupReencryptionConfig")) - $root.google.cloud.sql.v1.BackupReencryptionConfig.encode(message.backupReencryptionConfig, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.BackupReencryptionConfig.encode(message.backupReencryptionConfig, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -37308,7 +39865,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesReencryptRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -37322,9 +39879,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesReencryptRequest.decode = function decode(reader, length, error) { + InstancesReencryptRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesReencryptRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -37332,11 +39893,11 @@ break; switch (tag >>> 3) { case 1: { - message.backupReencryptionConfig = $root.google.cloud.sql.v1.BackupReencryptionConfig.decode(reader, reader.uint32()); + message.backupReencryptionConfig = $root.google.cloud.sql.v1.BackupReencryptionConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -37367,14 +39928,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesReencryptRequest.verify = function verify(message) { + InstancesReencryptRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.backupReencryptionConfig != null && message.hasOwnProperty("backupReencryptionConfig")) { + if (message.backupReencryptionConfig != null && Object.hasOwnProperty.call(message, "backupReencryptionConfig")) { properties._backupReencryptionConfig = 1; { - var error = $root.google.cloud.sql.v1.BackupReencryptionConfig.verify(message.backupReencryptionConfig); + var error = $root.google.cloud.sql.v1.BackupReencryptionConfig.verify(message.backupReencryptionConfig, long + 1); if (error) return "backupReencryptionConfig." + error; } @@ -37390,14 +39955,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesReencryptRequest} InstancesReencryptRequest */ - InstancesReencryptRequest.fromObject = function fromObject(object) { + InstancesReencryptRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesReencryptRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesReencryptRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesReencryptRequest(); if (object.backupReencryptionConfig != null) { - if (typeof object.backupReencryptionConfig !== "object") + if (!$util.isObject(object.backupReencryptionConfig)) throw TypeError(".google.cloud.sql.v1.InstancesReencryptRequest.backupReencryptionConfig: object expected"); - message.backupReencryptionConfig = $root.google.cloud.sql.v1.BackupReencryptionConfig.fromObject(object.backupReencryptionConfig); + message.backupReencryptionConfig = $root.google.cloud.sql.v1.BackupReencryptionConfig.fromObject(object.backupReencryptionConfig, long + 1); } return message; }; @@ -37411,12 +39982,16 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesReencryptRequest.toObject = function toObject(message, options) { + InstancesReencryptRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.backupReencryptionConfig != null && message.hasOwnProperty("backupReencryptionConfig")) { - object.backupReencryptionConfig = $root.google.cloud.sql.v1.BackupReencryptionConfig.toObject(message.backupReencryptionConfig, options); + if (message.backupReencryptionConfig != null && Object.hasOwnProperty.call(message, "backupReencryptionConfig")) { + object.backupReencryptionConfig = $root.google.cloud.sql.v1.BackupReencryptionConfig.toObject(message.backupReencryptionConfig, options, q + 1); if (options.oneofs) object._backupReencryptionConfig = "backupReencryptionConfig"; } @@ -37473,7 +40048,7 @@ function BackupReencryptionConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -37529,9 +40104,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BackupReencryptionConfig.encode = function encode(message, writer) { + BackupReencryptionConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.backupLimit != null && Object.hasOwnProperty.call(message, "backupLimit")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.backupLimit); if (message.backupType != null && Object.hasOwnProperty.call(message, "backupType")) @@ -37549,7 +40128,7 @@ * @returns {$protobuf.Writer} Writer */ BackupReencryptionConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -37563,9 +40142,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BackupReencryptionConfig.decode = function decode(reader, length, error) { + BackupReencryptionConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.BackupReencryptionConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -37581,7 +40164,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -37612,16 +40195,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BackupReencryptionConfig.verify = function verify(message) { + BackupReencryptionConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.backupLimit != null && message.hasOwnProperty("backupLimit")) { + if (message.backupLimit != null && Object.hasOwnProperty.call(message, "backupLimit")) { properties._backupLimit = 1; if (!$util.isInteger(message.backupLimit)) return "backupLimit: integer expected"; } - if (message.backupType != null && message.hasOwnProperty("backupType")) { + if (message.backupType != null && Object.hasOwnProperty.call(message, "backupType")) { properties._backupType = 1; switch (message.backupType) { default: @@ -37643,9 +40230,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.BackupReencryptionConfig} BackupReencryptionConfig */ - BackupReencryptionConfig.fromObject = function fromObject(object) { + BackupReencryptionConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.BackupReencryptionConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.BackupReencryptionConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.BackupReencryptionConfig(); if (object.backupLimit != null) message.backupLimit = object.backupLimit | 0; @@ -37681,16 +40274,20 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BackupReencryptionConfig.toObject = function toObject(message, options) { + BackupReencryptionConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.backupLimit != null && message.hasOwnProperty("backupLimit")) { + if (message.backupLimit != null && Object.hasOwnProperty.call(message, "backupLimit")) { object.backupLimit = message.backupLimit; if (options.oneofs) object._backupLimit = "backupLimit"; } - if (message.backupType != null && message.hasOwnProperty("backupType")) { + if (message.backupType != null && Object.hasOwnProperty.call(message, "backupType")) { object.backupType = options.enums === String ? $root.google.cloud.sql.v1.BackupReencryptionConfig.BackupType[message.backupType] === undefined ? message.backupType : $root.google.cloud.sql.v1.BackupReencryptionConfig.BackupType[message.backupType] : message.backupType; if (options.oneofs) object._backupType = "backupType"; @@ -37781,7 +40378,7 @@ function ExternalSyncSelectedObject(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -37814,9 +40411,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ExternalSyncSelectedObject.encode = function encode(message, writer) { + ExternalSyncSelectedObject.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.database != null && Object.hasOwnProperty.call(message, "database")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.database); return writer; @@ -37832,7 +40433,7 @@ * @returns {$protobuf.Writer} Writer */ ExternalSyncSelectedObject.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -37846,9 +40447,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExternalSyncSelectedObject.decode = function decode(reader, length, error) { + ExternalSyncSelectedObject.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ExternalSyncSelectedObject(); while (reader.pos < end) { var tag = reader.uint32(); @@ -37860,7 +40465,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -37891,10 +40496,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ExternalSyncSelectedObject.verify = function verify(message) { + ExternalSyncSelectedObject.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.database != null && message.hasOwnProperty("database")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.database != null && Object.hasOwnProperty.call(message, "database")) if (!$util.isString(message.database)) return "database: string expected"; return null; @@ -37908,9 +40517,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ExternalSyncSelectedObject} ExternalSyncSelectedObject */ - ExternalSyncSelectedObject.fromObject = function fromObject(object) { + ExternalSyncSelectedObject.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ExternalSyncSelectedObject) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ExternalSyncSelectedObject: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ExternalSyncSelectedObject(); if (object.database != null) message.database = String(object.database); @@ -37926,13 +40541,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ExternalSyncSelectedObject.toObject = function toObject(message, options) { + ExternalSyncSelectedObject.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.database = ""; - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) object.database = message.database; return object; }; @@ -37987,7 +40606,7 @@ function SqlInstancesGetDiskShrinkConfigRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -38028,9 +40647,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesGetDiskShrinkConfigRequest.encode = function encode(message, writer) { + SqlInstancesGetDiskShrinkConfigRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -38048,7 +40671,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesGetDiskShrinkConfigRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -38062,9 +40685,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesGetDiskShrinkConfigRequest.decode = function decode(reader, length, error) { + SqlInstancesGetDiskShrinkConfigRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -38080,7 +40707,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -38111,13 +40738,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesGetDiskShrinkConfigRequest.verify = function verify(message) { + SqlInstancesGetDiskShrinkConfigRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -38131,9 +40762,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest} SqlInstancesGetDiskShrinkConfigRequest */ - SqlInstancesGetDiskShrinkConfigRequest.fromObject = function fromObject(object) { + SqlInstancesGetDiskShrinkConfigRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -38151,17 +40788,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesGetDiskShrinkConfigRequest.toObject = function toObject(message, options) { + SqlInstancesGetDiskShrinkConfigRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -38224,7 +40865,7 @@ this.selectedObjects = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -38335,9 +40976,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesVerifyExternalSyncSettingsRequest.encode = function encode(message, writer) { + SqlInstancesVerifyExternalSyncSettingsRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -38349,14 +40994,14 @@ if (message.verifyReplicationOnly != null && Object.hasOwnProperty.call(message, "verifyReplicationOnly")) writer.uint32(/* id 5, wireType 0 =*/40).bool(message.verifyReplicationOnly); if (message.mysqlSyncConfig != null && Object.hasOwnProperty.call(message, "mysqlSyncConfig")) - $root.google.cloud.sql.v1.MySqlSyncConfig.encode(message.mysqlSyncConfig, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.cloud.sql.v1.MySqlSyncConfig.encode(message.mysqlSyncConfig, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.migrationType != null && Object.hasOwnProperty.call(message, "migrationType")) writer.uint32(/* id 7, wireType 0 =*/56).int32(message.migrationType); if (message.syncParallelLevel != null && Object.hasOwnProperty.call(message, "syncParallelLevel")) writer.uint32(/* id 8, wireType 0 =*/64).int32(message.syncParallelLevel); if (message.selectedObjects != null && message.selectedObjects.length) for (var i = 0; i < message.selectedObjects.length; ++i) - $root.google.cloud.sql.v1.ExternalSyncSelectedObject.encode(message.selectedObjects[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.cloud.sql.v1.ExternalSyncSelectedObject.encode(message.selectedObjects[i], writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); return writer; }; @@ -38370,7 +41015,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesVerifyExternalSyncSettingsRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -38384,9 +41029,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesVerifyExternalSyncSettingsRequest.decode = function decode(reader, length, error) { + SqlInstancesVerifyExternalSyncSettingsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -38414,7 +41063,7 @@ break; } case 6: { - message.mysqlSyncConfig = $root.google.cloud.sql.v1.MySqlSyncConfig.decode(reader, reader.uint32()); + message.mysqlSyncConfig = $root.google.cloud.sql.v1.MySqlSyncConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { @@ -38428,11 +41077,11 @@ case 9: { if (!(message.selectedObjects && message.selectedObjects.length)) message.selectedObjects = []; - message.selectedObjects.push($root.google.cloud.sql.v1.ExternalSyncSelectedObject.decode(reader, reader.uint32())); + message.selectedObjects.push($root.google.cloud.sql.v1.ExternalSyncSelectedObject.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -38463,20 +41112,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesVerifyExternalSyncSettingsRequest.verify = function verify(message) { + SqlInstancesVerifyExternalSyncSettingsRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.verifyConnectionOnly != null && message.hasOwnProperty("verifyConnectionOnly")) + if (message.verifyConnectionOnly != null && Object.hasOwnProperty.call(message, "verifyConnectionOnly")) if (typeof message.verifyConnectionOnly !== "boolean") return "verifyConnectionOnly: boolean expected"; - if (message.syncMode != null && message.hasOwnProperty("syncMode")) + if (message.syncMode != null && Object.hasOwnProperty.call(message, "syncMode")) switch (message.syncMode) { default: return "syncMode: enum value expected"; @@ -38485,18 +41138,18 @@ case 2: break; } - if (message.verifyReplicationOnly != null && message.hasOwnProperty("verifyReplicationOnly")) + if (message.verifyReplicationOnly != null && Object.hasOwnProperty.call(message, "verifyReplicationOnly")) if (typeof message.verifyReplicationOnly !== "boolean") return "verifyReplicationOnly: boolean expected"; - if (message.mysqlSyncConfig != null && message.hasOwnProperty("mysqlSyncConfig")) { + if (message.mysqlSyncConfig != null && Object.hasOwnProperty.call(message, "mysqlSyncConfig")) { properties.syncConfig = 1; { - var error = $root.google.cloud.sql.v1.MySqlSyncConfig.verify(message.mysqlSyncConfig); + var error = $root.google.cloud.sql.v1.MySqlSyncConfig.verify(message.mysqlSyncConfig, long + 1); if (error) return "mysqlSyncConfig." + error; } } - if (message.migrationType != null && message.hasOwnProperty("migrationType")) + if (message.migrationType != null && Object.hasOwnProperty.call(message, "migrationType")) switch (message.migrationType) { default: return "migrationType: enum value expected"; @@ -38505,7 +41158,7 @@ case 2: break; } - if (message.syncParallelLevel != null && message.hasOwnProperty("syncParallelLevel")) + if (message.syncParallelLevel != null && Object.hasOwnProperty.call(message, "syncParallelLevel")) switch (message.syncParallelLevel) { default: return "syncParallelLevel: enum value expected"; @@ -38515,11 +41168,11 @@ case 3: break; } - if (message.selectedObjects != null && message.hasOwnProperty("selectedObjects")) { + if (message.selectedObjects != null && Object.hasOwnProperty.call(message, "selectedObjects")) { if (!Array.isArray(message.selectedObjects)) return "selectedObjects: array expected"; for (var i = 0; i < message.selectedObjects.length; ++i) { - var error = $root.google.cloud.sql.v1.ExternalSyncSelectedObject.verify(message.selectedObjects[i]); + var error = $root.google.cloud.sql.v1.ExternalSyncSelectedObject.verify(message.selectedObjects[i], long + 1); if (error) return "selectedObjects." + error; } @@ -38535,9 +41188,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest} SqlInstancesVerifyExternalSyncSettingsRequest */ - SqlInstancesVerifyExternalSyncSettingsRequest.fromObject = function fromObject(object) { + SqlInstancesVerifyExternalSyncSettingsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -38568,9 +41227,9 @@ if (object.verifyReplicationOnly != null) message.verifyReplicationOnly = Boolean(object.verifyReplicationOnly); if (object.mysqlSyncConfig != null) { - if (typeof object.mysqlSyncConfig !== "object") + if (!$util.isObject(object.mysqlSyncConfig)) throw TypeError(".google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.mysqlSyncConfig: object expected"); - message.mysqlSyncConfig = $root.google.cloud.sql.v1.MySqlSyncConfig.fromObject(object.mysqlSyncConfig); + message.mysqlSyncConfig = $root.google.cloud.sql.v1.MySqlSyncConfig.fromObject(object.mysqlSyncConfig, long + 1); } switch (object.migrationType) { default: @@ -38621,9 +41280,9 @@ throw TypeError(".google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.selectedObjects: array expected"); message.selectedObjects = []; for (var i = 0; i < object.selectedObjects.length; ++i) { - if (typeof object.selectedObjects[i] !== "object") + if (!$util.isObject(object.selectedObjects[i])) throw TypeError(".google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.selectedObjects: object expected"); - message.selectedObjects[i] = $root.google.cloud.sql.v1.ExternalSyncSelectedObject.fromObject(object.selectedObjects[i]); + message.selectedObjects[i] = $root.google.cloud.sql.v1.ExternalSyncSelectedObject.fromObject(object.selectedObjects[i], long + 1); } } return message; @@ -38638,9 +41297,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesVerifyExternalSyncSettingsRequest.toObject = function toObject(message, options) { + SqlInstancesVerifyExternalSyncSettingsRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.selectedObjects = []; @@ -38653,29 +41316,29 @@ object.migrationType = options.enums === String ? "MIGRATION_TYPE_UNSPECIFIED" : 0; object.syncParallelLevel = options.enums === String ? "EXTERNAL_SYNC_PARALLEL_LEVEL_UNSPECIFIED" : 0; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.verifyConnectionOnly != null && message.hasOwnProperty("verifyConnectionOnly")) + if (message.verifyConnectionOnly != null && Object.hasOwnProperty.call(message, "verifyConnectionOnly")) object.verifyConnectionOnly = message.verifyConnectionOnly; - if (message.syncMode != null && message.hasOwnProperty("syncMode")) + if (message.syncMode != null && Object.hasOwnProperty.call(message, "syncMode")) object.syncMode = options.enums === String ? $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode[message.syncMode] === undefined ? message.syncMode : $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode[message.syncMode] : message.syncMode; - if (message.verifyReplicationOnly != null && message.hasOwnProperty("verifyReplicationOnly")) + if (message.verifyReplicationOnly != null && Object.hasOwnProperty.call(message, "verifyReplicationOnly")) object.verifyReplicationOnly = message.verifyReplicationOnly; - if (message.mysqlSyncConfig != null && message.hasOwnProperty("mysqlSyncConfig")) { - object.mysqlSyncConfig = $root.google.cloud.sql.v1.MySqlSyncConfig.toObject(message.mysqlSyncConfig, options); + if (message.mysqlSyncConfig != null && Object.hasOwnProperty.call(message, "mysqlSyncConfig")) { + object.mysqlSyncConfig = $root.google.cloud.sql.v1.MySqlSyncConfig.toObject(message.mysqlSyncConfig, options, q + 1); if (options.oneofs) object.syncConfig = "mysqlSyncConfig"; } - if (message.migrationType != null && message.hasOwnProperty("migrationType")) + if (message.migrationType != null && Object.hasOwnProperty.call(message, "migrationType")) object.migrationType = options.enums === String ? $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType[message.migrationType] === undefined ? message.migrationType : $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType[message.migrationType] : message.migrationType; - if (message.syncParallelLevel != null && message.hasOwnProperty("syncParallelLevel")) + if (message.syncParallelLevel != null && Object.hasOwnProperty.call(message, "syncParallelLevel")) object.syncParallelLevel = options.enums === String ? $root.google.cloud.sql.v1.ExternalSyncParallelLevel[message.syncParallelLevel] === undefined ? message.syncParallelLevel : $root.google.cloud.sql.v1.ExternalSyncParallelLevel[message.syncParallelLevel] : message.syncParallelLevel; if (message.selectedObjects && message.selectedObjects.length) { object.selectedObjects = []; for (var j = 0; j < message.selectedObjects.length; ++j) - object.selectedObjects[j] = $root.google.cloud.sql.v1.ExternalSyncSelectedObject.toObject(message.selectedObjects[j], options); + object.selectedObjects[j] = $root.google.cloud.sql.v1.ExternalSyncSelectedObject.toObject(message.selectedObjects[j], options, q + 1); } return object; }; @@ -38768,7 +41431,7 @@ function SqlInstancesStartExternalSyncRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -38871,9 +41534,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesStartExternalSyncRequest.encode = function encode(message, writer) { + SqlInstancesStartExternalSyncRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -38883,7 +41550,7 @@ if (message.skipVerification != null && Object.hasOwnProperty.call(message, "skipVerification")) writer.uint32(/* id 4, wireType 0 =*/32).bool(message.skipVerification); if (message.mysqlSyncConfig != null && Object.hasOwnProperty.call(message, "mysqlSyncConfig")) - $root.google.cloud.sql.v1.MySqlSyncConfig.encode(message.mysqlSyncConfig, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.cloud.sql.v1.MySqlSyncConfig.encode(message.mysqlSyncConfig, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.syncParallelLevel != null && Object.hasOwnProperty.call(message, "syncParallelLevel")) writer.uint32(/* id 7, wireType 0 =*/56).int32(message.syncParallelLevel); if (message.migrationType != null && Object.hasOwnProperty.call(message, "migrationType")) @@ -38903,7 +41570,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesStartExternalSyncRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -38917,9 +41584,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesStartExternalSyncRequest.decode = function decode(reader, length, error) { + SqlInstancesStartExternalSyncRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -38943,7 +41614,7 @@ break; } case 6: { - message.mysqlSyncConfig = $root.google.cloud.sql.v1.MySqlSyncConfig.decode(reader, reader.uint32()); + message.mysqlSyncConfig = $root.google.cloud.sql.v1.MySqlSyncConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { @@ -38959,7 +41630,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -38990,17 +41661,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesStartExternalSyncRequest.verify = function verify(message) { + SqlInstancesStartExternalSyncRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.syncMode != null && message.hasOwnProperty("syncMode")) + if (message.syncMode != null && Object.hasOwnProperty.call(message, "syncMode")) switch (message.syncMode) { default: return "syncMode: enum value expected"; @@ -39009,18 +41684,18 @@ case 2: break; } - if (message.skipVerification != null && message.hasOwnProperty("skipVerification")) + if (message.skipVerification != null && Object.hasOwnProperty.call(message, "skipVerification")) if (typeof message.skipVerification !== "boolean") return "skipVerification: boolean expected"; - if (message.mysqlSyncConfig != null && message.hasOwnProperty("mysqlSyncConfig")) { + if (message.mysqlSyncConfig != null && Object.hasOwnProperty.call(message, "mysqlSyncConfig")) { properties.syncConfig = 1; { - var error = $root.google.cloud.sql.v1.MySqlSyncConfig.verify(message.mysqlSyncConfig); + var error = $root.google.cloud.sql.v1.MySqlSyncConfig.verify(message.mysqlSyncConfig, long + 1); if (error) return "mysqlSyncConfig." + error; } } - if (message.syncParallelLevel != null && message.hasOwnProperty("syncParallelLevel")) + if (message.syncParallelLevel != null && Object.hasOwnProperty.call(message, "syncParallelLevel")) switch (message.syncParallelLevel) { default: return "syncParallelLevel: enum value expected"; @@ -39030,7 +41705,7 @@ case 3: break; } - if (message.migrationType != null && message.hasOwnProperty("migrationType")) + if (message.migrationType != null && Object.hasOwnProperty.call(message, "migrationType")) switch (message.migrationType) { default: return "migrationType: enum value expected"; @@ -39039,7 +41714,7 @@ case 2: break; } - if (message.replicaOverwriteEnabled != null && message.hasOwnProperty("replicaOverwriteEnabled")) + if (message.replicaOverwriteEnabled != null && Object.hasOwnProperty.call(message, "replicaOverwriteEnabled")) if (typeof message.replicaOverwriteEnabled !== "boolean") return "replicaOverwriteEnabled: boolean expected"; return null; @@ -39053,9 +41728,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest} SqlInstancesStartExternalSyncRequest */ - SqlInstancesStartExternalSyncRequest.fromObject = function fromObject(object) { + SqlInstancesStartExternalSyncRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -39084,9 +41765,9 @@ if (object.skipVerification != null) message.skipVerification = Boolean(object.skipVerification); if (object.mysqlSyncConfig != null) { - if (typeof object.mysqlSyncConfig !== "object") + if (!$util.isObject(object.mysqlSyncConfig)) throw TypeError(".google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest.mysqlSyncConfig: object expected"); - message.mysqlSyncConfig = $root.google.cloud.sql.v1.MySqlSyncConfig.fromObject(object.mysqlSyncConfig); + message.mysqlSyncConfig = $root.google.cloud.sql.v1.MySqlSyncConfig.fromObject(object.mysqlSyncConfig, long + 1); } switch (object.syncParallelLevel) { default: @@ -39146,9 +41827,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesStartExternalSyncRequest.toObject = function toObject(message, options) { + SqlInstancesStartExternalSyncRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; @@ -39159,24 +41844,24 @@ object.migrationType = options.enums === String ? "MIGRATION_TYPE_UNSPECIFIED" : 0; object.replicaOverwriteEnabled = false; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.syncMode != null && message.hasOwnProperty("syncMode")) + if (message.syncMode != null && Object.hasOwnProperty.call(message, "syncMode")) object.syncMode = options.enums === String ? $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode[message.syncMode] === undefined ? message.syncMode : $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode[message.syncMode] : message.syncMode; - if (message.skipVerification != null && message.hasOwnProperty("skipVerification")) + if (message.skipVerification != null && Object.hasOwnProperty.call(message, "skipVerification")) object.skipVerification = message.skipVerification; - if (message.mysqlSyncConfig != null && message.hasOwnProperty("mysqlSyncConfig")) { - object.mysqlSyncConfig = $root.google.cloud.sql.v1.MySqlSyncConfig.toObject(message.mysqlSyncConfig, options); + if (message.mysqlSyncConfig != null && Object.hasOwnProperty.call(message, "mysqlSyncConfig")) { + object.mysqlSyncConfig = $root.google.cloud.sql.v1.MySqlSyncConfig.toObject(message.mysqlSyncConfig, options, q + 1); if (options.oneofs) object.syncConfig = "mysqlSyncConfig"; } - if (message.syncParallelLevel != null && message.hasOwnProperty("syncParallelLevel")) + if (message.syncParallelLevel != null && Object.hasOwnProperty.call(message, "syncParallelLevel")) object.syncParallelLevel = options.enums === String ? $root.google.cloud.sql.v1.ExternalSyncParallelLevel[message.syncParallelLevel] === undefined ? message.syncParallelLevel : $root.google.cloud.sql.v1.ExternalSyncParallelLevel[message.syncParallelLevel] : message.syncParallelLevel; - if (message.migrationType != null && message.hasOwnProperty("migrationType")) + if (message.migrationType != null && Object.hasOwnProperty.call(message, "migrationType")) object.migrationType = options.enums === String ? $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType[message.migrationType] === undefined ? message.migrationType : $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType[message.migrationType] : message.migrationType; - if (message.replicaOverwriteEnabled != null && message.hasOwnProperty("replicaOverwriteEnabled")) + if (message.replicaOverwriteEnabled != null && Object.hasOwnProperty.call(message, "replicaOverwriteEnabled")) object.replicaOverwriteEnabled = message.replicaOverwriteEnabled; return object; }; @@ -39231,7 +41916,7 @@ function SqlInstancesResetReplicaSizeRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -39272,9 +41957,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesResetReplicaSizeRequest.encode = function encode(message, writer) { + SqlInstancesResetReplicaSizeRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -39292,7 +41981,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesResetReplicaSizeRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -39306,9 +41995,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesResetReplicaSizeRequest.decode = function decode(reader, length, error) { + SqlInstancesResetReplicaSizeRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -39324,7 +42017,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -39355,13 +42048,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesResetReplicaSizeRequest.verify = function verify(message) { + SqlInstancesResetReplicaSizeRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -39375,9 +42072,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest} SqlInstancesResetReplicaSizeRequest */ - SqlInstancesResetReplicaSizeRequest.fromObject = function fromObject(object) { + SqlInstancesResetReplicaSizeRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -39395,17 +42098,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesResetReplicaSizeRequest.toObject = function toObject(message, options) { + SqlInstancesResetReplicaSizeRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -39461,7 +42168,7 @@ function SqlInstancesCreateEphemeralCertRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -39510,15 +42217,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesCreateEphemeralCertRequest.encode = function encode(message, writer) { + SqlInstancesCreateEphemeralCertRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.SslCertsCreateEphemeralRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.SslCertsCreateEphemeralRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -39532,7 +42243,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesCreateEphemeralCertRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -39546,9 +42257,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesCreateEphemeralCertRequest.decode = function decode(reader, length, error) { + SqlInstancesCreateEphemeralCertRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -39564,11 +42279,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.SslCertsCreateEphemeralRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.SslCertsCreateEphemeralRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -39599,17 +42314,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesCreateEphemeralCertRequest.verify = function verify(message) { + SqlInstancesCreateEphemeralCertRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.SslCertsCreateEphemeralRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.SslCertsCreateEphemeralRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -39624,18 +42343,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest} SqlInstancesCreateEphemeralCertRequest */ - SqlInstancesCreateEphemeralCertRequest.fromObject = function fromObject(object) { + SqlInstancesCreateEphemeralCertRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.SslCertsCreateEphemeralRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.SslCertsCreateEphemeralRequest.fromObject(object.body, long + 1); } return message; }; @@ -39649,21 +42374,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesCreateEphemeralCertRequest.toObject = function toObject(message, options) { + SqlInstancesCreateEphemeralCertRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.SslCertsCreateEphemeralRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.SslCertsCreateEphemeralRequest.toObject(message.body, options, q + 1); return object; }; @@ -39716,7 +42445,7 @@ function InstancesCloneRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -39749,11 +42478,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesCloneRequest.encode = function encode(message, writer) { + InstancesCloneRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.cloneContext != null && Object.hasOwnProperty.call(message, "cloneContext")) - $root.google.cloud.sql.v1.CloneContext.encode(message.cloneContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.CloneContext.encode(message.cloneContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -39767,7 +42500,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesCloneRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -39781,9 +42514,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesCloneRequest.decode = function decode(reader, length, error) { + InstancesCloneRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesCloneRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -39791,11 +42528,11 @@ break; switch (tag >>> 3) { case 1: { - message.cloneContext = $root.google.cloud.sql.v1.CloneContext.decode(reader, reader.uint32()); + message.cloneContext = $root.google.cloud.sql.v1.CloneContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -39826,11 +42563,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesCloneRequest.verify = function verify(message) { + InstancesCloneRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.cloneContext != null && message.hasOwnProperty("cloneContext")) { - var error = $root.google.cloud.sql.v1.CloneContext.verify(message.cloneContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.cloneContext != null && Object.hasOwnProperty.call(message, "cloneContext")) { + var error = $root.google.cloud.sql.v1.CloneContext.verify(message.cloneContext, long + 1); if (error) return "cloneContext." + error; } @@ -39845,14 +42586,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesCloneRequest} InstancesCloneRequest */ - InstancesCloneRequest.fromObject = function fromObject(object) { + InstancesCloneRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesCloneRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesCloneRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesCloneRequest(); if (object.cloneContext != null) { - if (typeof object.cloneContext !== "object") + if (!$util.isObject(object.cloneContext)) throw TypeError(".google.cloud.sql.v1.InstancesCloneRequest.cloneContext: object expected"); - message.cloneContext = $root.google.cloud.sql.v1.CloneContext.fromObject(object.cloneContext); + message.cloneContext = $root.google.cloud.sql.v1.CloneContext.fromObject(object.cloneContext, long + 1); } return message; }; @@ -39866,14 +42613,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesCloneRequest.toObject = function toObject(message, options) { + InstancesCloneRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.cloneContext = null; - if (message.cloneContext != null && message.hasOwnProperty("cloneContext")) - object.cloneContext = $root.google.cloud.sql.v1.CloneContext.toObject(message.cloneContext, options); + if (message.cloneContext != null && Object.hasOwnProperty.call(message, "cloneContext")) + object.cloneContext = $root.google.cloud.sql.v1.CloneContext.toObject(message.cloneContext, options, q + 1); return object; }; @@ -39926,7 +42677,7 @@ function InstancesDemoteMasterRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -39959,11 +42710,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesDemoteMasterRequest.encode = function encode(message, writer) { + InstancesDemoteMasterRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.demoteMasterContext != null && Object.hasOwnProperty.call(message, "demoteMasterContext")) - $root.google.cloud.sql.v1.DemoteMasterContext.encode(message.demoteMasterContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.DemoteMasterContext.encode(message.demoteMasterContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -39977,7 +42732,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesDemoteMasterRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -39991,9 +42746,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesDemoteMasterRequest.decode = function decode(reader, length, error) { + InstancesDemoteMasterRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesDemoteMasterRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -40001,11 +42760,11 @@ break; switch (tag >>> 3) { case 1: { - message.demoteMasterContext = $root.google.cloud.sql.v1.DemoteMasterContext.decode(reader, reader.uint32()); + message.demoteMasterContext = $root.google.cloud.sql.v1.DemoteMasterContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -40036,11 +42795,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesDemoteMasterRequest.verify = function verify(message) { + InstancesDemoteMasterRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.demoteMasterContext != null && message.hasOwnProperty("demoteMasterContext")) { - var error = $root.google.cloud.sql.v1.DemoteMasterContext.verify(message.demoteMasterContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.demoteMasterContext != null && Object.hasOwnProperty.call(message, "demoteMasterContext")) { + var error = $root.google.cloud.sql.v1.DemoteMasterContext.verify(message.demoteMasterContext, long + 1); if (error) return "demoteMasterContext." + error; } @@ -40055,14 +42818,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesDemoteMasterRequest} InstancesDemoteMasterRequest */ - InstancesDemoteMasterRequest.fromObject = function fromObject(object) { + InstancesDemoteMasterRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesDemoteMasterRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesDemoteMasterRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesDemoteMasterRequest(); if (object.demoteMasterContext != null) { - if (typeof object.demoteMasterContext !== "object") + if (!$util.isObject(object.demoteMasterContext)) throw TypeError(".google.cloud.sql.v1.InstancesDemoteMasterRequest.demoteMasterContext: object expected"); - message.demoteMasterContext = $root.google.cloud.sql.v1.DemoteMasterContext.fromObject(object.demoteMasterContext); + message.demoteMasterContext = $root.google.cloud.sql.v1.DemoteMasterContext.fromObject(object.demoteMasterContext, long + 1); } return message; }; @@ -40076,14 +42845,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesDemoteMasterRequest.toObject = function toObject(message, options) { + InstancesDemoteMasterRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.demoteMasterContext = null; - if (message.demoteMasterContext != null && message.hasOwnProperty("demoteMasterContext")) - object.demoteMasterContext = $root.google.cloud.sql.v1.DemoteMasterContext.toObject(message.demoteMasterContext, options); + if (message.demoteMasterContext != null && Object.hasOwnProperty.call(message, "demoteMasterContext")) + object.demoteMasterContext = $root.google.cloud.sql.v1.DemoteMasterContext.toObject(message.demoteMasterContext, options, q + 1); return object; }; @@ -40136,7 +42909,7 @@ function InstancesDemoteRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -40169,11 +42942,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesDemoteRequest.encode = function encode(message, writer) { + InstancesDemoteRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.demoteContext != null && Object.hasOwnProperty.call(message, "demoteContext")) - $root.google.cloud.sql.v1.DemoteContext.encode(message.demoteContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.DemoteContext.encode(message.demoteContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -40187,7 +42964,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesDemoteRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -40201,9 +42978,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesDemoteRequest.decode = function decode(reader, length, error) { + InstancesDemoteRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesDemoteRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -40211,11 +42992,11 @@ break; switch (tag >>> 3) { case 1: { - message.demoteContext = $root.google.cloud.sql.v1.DemoteContext.decode(reader, reader.uint32()); + message.demoteContext = $root.google.cloud.sql.v1.DemoteContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -40246,11 +43027,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesDemoteRequest.verify = function verify(message) { + InstancesDemoteRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.demoteContext != null && message.hasOwnProperty("demoteContext")) { - var error = $root.google.cloud.sql.v1.DemoteContext.verify(message.demoteContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.demoteContext != null && Object.hasOwnProperty.call(message, "demoteContext")) { + var error = $root.google.cloud.sql.v1.DemoteContext.verify(message.demoteContext, long + 1); if (error) return "demoteContext." + error; } @@ -40265,14 +43050,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesDemoteRequest} InstancesDemoteRequest */ - InstancesDemoteRequest.fromObject = function fromObject(object) { + InstancesDemoteRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesDemoteRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesDemoteRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesDemoteRequest(); if (object.demoteContext != null) { - if (typeof object.demoteContext !== "object") + if (!$util.isObject(object.demoteContext)) throw TypeError(".google.cloud.sql.v1.InstancesDemoteRequest.demoteContext: object expected"); - message.demoteContext = $root.google.cloud.sql.v1.DemoteContext.fromObject(object.demoteContext); + message.demoteContext = $root.google.cloud.sql.v1.DemoteContext.fromObject(object.demoteContext, long + 1); } return message; }; @@ -40286,14 +43077,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesDemoteRequest.toObject = function toObject(message, options) { + InstancesDemoteRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.demoteContext = null; - if (message.demoteContext != null && message.hasOwnProperty("demoteContext")) - object.demoteContext = $root.google.cloud.sql.v1.DemoteContext.toObject(message.demoteContext, options); + if (message.demoteContext != null && Object.hasOwnProperty.call(message, "demoteContext")) + object.demoteContext = $root.google.cloud.sql.v1.DemoteContext.toObject(message.demoteContext, options, q + 1); return object; }; @@ -40346,7 +43141,7 @@ function InstancesExportRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -40379,11 +43174,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesExportRequest.encode = function encode(message, writer) { + InstancesExportRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.exportContext != null && Object.hasOwnProperty.call(message, "exportContext")) - $root.google.cloud.sql.v1.ExportContext.encode(message.exportContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.ExportContext.encode(message.exportContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -40397,7 +43196,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesExportRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -40411,9 +43210,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesExportRequest.decode = function decode(reader, length, error) { + InstancesExportRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesExportRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -40421,11 +43224,11 @@ break; switch (tag >>> 3) { case 1: { - message.exportContext = $root.google.cloud.sql.v1.ExportContext.decode(reader, reader.uint32()); + message.exportContext = $root.google.cloud.sql.v1.ExportContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -40456,11 +43259,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesExportRequest.verify = function verify(message) { + InstancesExportRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.exportContext != null && message.hasOwnProperty("exportContext")) { - var error = $root.google.cloud.sql.v1.ExportContext.verify(message.exportContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.exportContext != null && Object.hasOwnProperty.call(message, "exportContext")) { + var error = $root.google.cloud.sql.v1.ExportContext.verify(message.exportContext, long + 1); if (error) return "exportContext." + error; } @@ -40475,14 +43282,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesExportRequest} InstancesExportRequest */ - InstancesExportRequest.fromObject = function fromObject(object) { + InstancesExportRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesExportRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesExportRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesExportRequest(); if (object.exportContext != null) { - if (typeof object.exportContext !== "object") + if (!$util.isObject(object.exportContext)) throw TypeError(".google.cloud.sql.v1.InstancesExportRequest.exportContext: object expected"); - message.exportContext = $root.google.cloud.sql.v1.ExportContext.fromObject(object.exportContext); + message.exportContext = $root.google.cloud.sql.v1.ExportContext.fromObject(object.exportContext, long + 1); } return message; }; @@ -40496,14 +43309,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesExportRequest.toObject = function toObject(message, options) { + InstancesExportRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.exportContext = null; - if (message.exportContext != null && message.hasOwnProperty("exportContext")) - object.exportContext = $root.google.cloud.sql.v1.ExportContext.toObject(message.exportContext, options); + if (message.exportContext != null && Object.hasOwnProperty.call(message, "exportContext")) + object.exportContext = $root.google.cloud.sql.v1.ExportContext.toObject(message.exportContext, options, q + 1); return object; }; @@ -40556,7 +43373,7 @@ function InstancesFailoverRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -40589,11 +43406,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesFailoverRequest.encode = function encode(message, writer) { + InstancesFailoverRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.failoverContext != null && Object.hasOwnProperty.call(message, "failoverContext")) - $root.google.cloud.sql.v1.FailoverContext.encode(message.failoverContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.FailoverContext.encode(message.failoverContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -40607,7 +43428,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesFailoverRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -40621,9 +43442,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesFailoverRequest.decode = function decode(reader, length, error) { + InstancesFailoverRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesFailoverRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -40631,11 +43456,11 @@ break; switch (tag >>> 3) { case 1: { - message.failoverContext = $root.google.cloud.sql.v1.FailoverContext.decode(reader, reader.uint32()); + message.failoverContext = $root.google.cloud.sql.v1.FailoverContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -40666,11 +43491,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesFailoverRequest.verify = function verify(message) { + InstancesFailoverRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.failoverContext != null && message.hasOwnProperty("failoverContext")) { - var error = $root.google.cloud.sql.v1.FailoverContext.verify(message.failoverContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.failoverContext != null && Object.hasOwnProperty.call(message, "failoverContext")) { + var error = $root.google.cloud.sql.v1.FailoverContext.verify(message.failoverContext, long + 1); if (error) return "failoverContext." + error; } @@ -40685,14 +43514,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesFailoverRequest} InstancesFailoverRequest */ - InstancesFailoverRequest.fromObject = function fromObject(object) { + InstancesFailoverRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesFailoverRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesFailoverRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesFailoverRequest(); if (object.failoverContext != null) { - if (typeof object.failoverContext !== "object") + if (!$util.isObject(object.failoverContext)) throw TypeError(".google.cloud.sql.v1.InstancesFailoverRequest.failoverContext: object expected"); - message.failoverContext = $root.google.cloud.sql.v1.FailoverContext.fromObject(object.failoverContext); + message.failoverContext = $root.google.cloud.sql.v1.FailoverContext.fromObject(object.failoverContext, long + 1); } return message; }; @@ -40706,14 +43541,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesFailoverRequest.toObject = function toObject(message, options) { + InstancesFailoverRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.failoverContext = null; - if (message.failoverContext != null && message.hasOwnProperty("failoverContext")) - object.failoverContext = $root.google.cloud.sql.v1.FailoverContext.toObject(message.failoverContext, options); + if (message.failoverContext != null && Object.hasOwnProperty.call(message, "failoverContext")) + object.failoverContext = $root.google.cloud.sql.v1.FailoverContext.toObject(message.failoverContext, options, q + 1); return object; }; @@ -40767,7 +43606,7 @@ function SslCertsCreateEphemeralRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -40808,9 +43647,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SslCertsCreateEphemeralRequest.encode = function encode(message, writer) { + SslCertsCreateEphemeralRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.publicKey != null && Object.hasOwnProperty.call(message, "publicKey")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.publicKey); if (message.accessToken != null && Object.hasOwnProperty.call(message, "accessToken")) @@ -40828,7 +43671,7 @@ * @returns {$protobuf.Writer} Writer */ SslCertsCreateEphemeralRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -40842,9 +43685,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SslCertsCreateEphemeralRequest.decode = function decode(reader, length, error) { + SslCertsCreateEphemeralRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SslCertsCreateEphemeralRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -40860,7 +43707,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -40891,13 +43738,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SslCertsCreateEphemeralRequest.verify = function verify(message) { + SslCertsCreateEphemeralRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.publicKey != null && message.hasOwnProperty("publicKey")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.publicKey != null && Object.hasOwnProperty.call(message, "publicKey")) if (!$util.isString(message.publicKey)) return "publicKey: string expected"; - if (message.accessToken != null && message.hasOwnProperty("accessToken")) + if (message.accessToken != null && Object.hasOwnProperty.call(message, "accessToken")) if (!$util.isString(message.accessToken)) return "accessToken: string expected"; return null; @@ -40911,9 +43762,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SslCertsCreateEphemeralRequest} SslCertsCreateEphemeralRequest */ - SslCertsCreateEphemeralRequest.fromObject = function fromObject(object) { + SslCertsCreateEphemeralRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SslCertsCreateEphemeralRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SslCertsCreateEphemeralRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SslCertsCreateEphemeralRequest(); if (object.publicKey != null) message.publicKey = String(object.publicKey); @@ -40931,17 +43788,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SslCertsCreateEphemeralRequest.toObject = function toObject(message, options) { + SslCertsCreateEphemeralRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.publicKey = ""; object.accessToken = ""; } - if (message.publicKey != null && message.hasOwnProperty("publicKey")) + if (message.publicKey != null && Object.hasOwnProperty.call(message, "publicKey")) object.publicKey = message.publicKey; - if (message.accessToken != null && message.hasOwnProperty("accessToken")) + if (message.accessToken != null && Object.hasOwnProperty.call(message, "accessToken")) object.accessToken = message.accessToken; return object; }; @@ -40995,7 +43856,7 @@ function InstancesImportRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -41028,11 +43889,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesImportRequest.encode = function encode(message, writer) { + InstancesImportRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.importContext != null && Object.hasOwnProperty.call(message, "importContext")) - $root.google.cloud.sql.v1.ImportContext.encode(message.importContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.ImportContext.encode(message.importContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -41046,7 +43911,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesImportRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -41060,9 +43925,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesImportRequest.decode = function decode(reader, length, error) { + InstancesImportRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesImportRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -41070,11 +43939,11 @@ break; switch (tag >>> 3) { case 1: { - message.importContext = $root.google.cloud.sql.v1.ImportContext.decode(reader, reader.uint32()); + message.importContext = $root.google.cloud.sql.v1.ImportContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -41105,11 +43974,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesImportRequest.verify = function verify(message) { + InstancesImportRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.importContext != null && message.hasOwnProperty("importContext")) { - var error = $root.google.cloud.sql.v1.ImportContext.verify(message.importContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.importContext != null && Object.hasOwnProperty.call(message, "importContext")) { + var error = $root.google.cloud.sql.v1.ImportContext.verify(message.importContext, long + 1); if (error) return "importContext." + error; } @@ -41124,14 +43997,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesImportRequest} InstancesImportRequest */ - InstancesImportRequest.fromObject = function fromObject(object) { + InstancesImportRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesImportRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesImportRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesImportRequest(); if (object.importContext != null) { - if (typeof object.importContext !== "object") + if (!$util.isObject(object.importContext)) throw TypeError(".google.cloud.sql.v1.InstancesImportRequest.importContext: object expected"); - message.importContext = $root.google.cloud.sql.v1.ImportContext.fromObject(object.importContext); + message.importContext = $root.google.cloud.sql.v1.ImportContext.fromObject(object.importContext, long + 1); } return message; }; @@ -41145,14 +44024,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesImportRequest.toObject = function toObject(message, options) { + InstancesImportRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.importContext = null; - if (message.importContext != null && message.hasOwnProperty("importContext")) - object.importContext = $root.google.cloud.sql.v1.ImportContext.toObject(message.importContext, options); + if (message.importContext != null && Object.hasOwnProperty.call(message, "importContext")) + object.importContext = $root.google.cloud.sql.v1.ImportContext.toObject(message.importContext, options, q + 1); return object; }; @@ -41205,7 +44088,7 @@ function InstancesPreCheckMajorVersionUpgradeRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -41238,11 +44121,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesPreCheckMajorVersionUpgradeRequest.encode = function encode(message, writer) { + InstancesPreCheckMajorVersionUpgradeRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.preCheckMajorVersionUpgradeContext != null && Object.hasOwnProperty.call(message, "preCheckMajorVersionUpgradeContext")) - $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.encode(message.preCheckMajorVersionUpgradeContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.encode(message.preCheckMajorVersionUpgradeContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -41256,7 +44143,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesPreCheckMajorVersionUpgradeRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -41270,9 +44157,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesPreCheckMajorVersionUpgradeRequest.decode = function decode(reader, length, error) { + InstancesPreCheckMajorVersionUpgradeRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -41280,11 +44171,11 @@ break; switch (tag >>> 3) { case 1: { - message.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.decode(reader, reader.uint32()); + message.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -41315,11 +44206,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesPreCheckMajorVersionUpgradeRequest.verify = function verify(message) { + InstancesPreCheckMajorVersionUpgradeRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.preCheckMajorVersionUpgradeContext != null && message.hasOwnProperty("preCheckMajorVersionUpgradeContext")) { - var error = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.verify(message.preCheckMajorVersionUpgradeContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.preCheckMajorVersionUpgradeContext != null && Object.hasOwnProperty.call(message, "preCheckMajorVersionUpgradeContext")) { + var error = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.verify(message.preCheckMajorVersionUpgradeContext, long + 1); if (error) return "preCheckMajorVersionUpgradeContext." + error; } @@ -41334,14 +44229,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest} InstancesPreCheckMajorVersionUpgradeRequest */ - InstancesPreCheckMajorVersionUpgradeRequest.fromObject = function fromObject(object) { + InstancesPreCheckMajorVersionUpgradeRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest(); if (object.preCheckMajorVersionUpgradeContext != null) { - if (typeof object.preCheckMajorVersionUpgradeContext !== "object") + if (!$util.isObject(object.preCheckMajorVersionUpgradeContext)) throw TypeError(".google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest.preCheckMajorVersionUpgradeContext: object expected"); - message.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.fromObject(object.preCheckMajorVersionUpgradeContext); + message.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.fromObject(object.preCheckMajorVersionUpgradeContext, long + 1); } return message; }; @@ -41355,14 +44256,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesPreCheckMajorVersionUpgradeRequest.toObject = function toObject(message, options) { + InstancesPreCheckMajorVersionUpgradeRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.preCheckMajorVersionUpgradeContext = null; - if (message.preCheckMajorVersionUpgradeContext != null && message.hasOwnProperty("preCheckMajorVersionUpgradeContext")) - object.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.toObject(message.preCheckMajorVersionUpgradeContext, options); + if (message.preCheckMajorVersionUpgradeContext != null && Object.hasOwnProperty.call(message, "preCheckMajorVersionUpgradeContext")) + object.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.toObject(message.preCheckMajorVersionUpgradeContext, options, q + 1); return object; }; @@ -41420,7 +44325,7 @@ this.items = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -41477,17 +44382,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesListResponse.encode = function encode(message, writer) { + InstancesListResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.warnings != null && message.warnings.length) for (var i = 0; i < message.warnings.length; ++i) - $root.google.cloud.sql.v1.ApiWarning.encode(message.warnings[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.ApiWarning.encode(message.warnings[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.items != null && message.items.length) for (var i = 0; i < message.items.length; ++i) - $root.google.cloud.sql.v1.DatabaseInstance.encode(message.items[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1.DatabaseInstance.encode(message.items[i], writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.nextPageToken); return writer; @@ -41503,7 +44412,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesListResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -41517,9 +44426,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesListResponse.decode = function decode(reader, length, error) { + InstancesListResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesListResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -41533,13 +44446,13 @@ case 2: { if (!(message.warnings && message.warnings.length)) message.warnings = []; - message.warnings.push($root.google.cloud.sql.v1.ApiWarning.decode(reader, reader.uint32())); + message.warnings.push($root.google.cloud.sql.v1.ApiWarning.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.sql.v1.DatabaseInstance.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.sql.v1.DatabaseInstance.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 4: { @@ -41547,7 +44460,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -41578,31 +44491,35 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesListResponse.verify = function verify(message) { + InstancesListResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.warnings != null && message.hasOwnProperty("warnings")) { + if (message.warnings != null && Object.hasOwnProperty.call(message, "warnings")) { if (!Array.isArray(message.warnings)) return "warnings: array expected"; for (var i = 0; i < message.warnings.length; ++i) { - var error = $root.google.cloud.sql.v1.ApiWarning.verify(message.warnings[i]); + var error = $root.google.cloud.sql.v1.ApiWarning.verify(message.warnings[i], long + 1); if (error) return "warnings." + error; } } - if (message.items != null && message.hasOwnProperty("items")) { + if (message.items != null && Object.hasOwnProperty.call(message, "items")) { if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.items[i]); + var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.items[i], long + 1); if (error) return "items." + error; } } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) if (!$util.isString(message.nextPageToken)) return "nextPageToken: string expected"; return null; @@ -41616,9 +44533,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesListResponse} InstancesListResponse */ - InstancesListResponse.fromObject = function fromObject(object) { + InstancesListResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesListResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesListResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesListResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -41627,9 +44550,9 @@ throw TypeError(".google.cloud.sql.v1.InstancesListResponse.warnings: array expected"); message.warnings = []; for (var i = 0; i < object.warnings.length; ++i) { - if (typeof object.warnings[i] !== "object") + if (!$util.isObject(object.warnings[i])) throw TypeError(".google.cloud.sql.v1.InstancesListResponse.warnings: object expected"); - message.warnings[i] = $root.google.cloud.sql.v1.ApiWarning.fromObject(object.warnings[i]); + message.warnings[i] = $root.google.cloud.sql.v1.ApiWarning.fromObject(object.warnings[i], long + 1); } } if (object.items) { @@ -41637,9 +44560,9 @@ throw TypeError(".google.cloud.sql.v1.InstancesListResponse.items: array expected"); message.items = []; for (var i = 0; i < object.items.length; ++i) { - if (typeof object.items[i] !== "object") + if (!$util.isObject(object.items[i])) throw TypeError(".google.cloud.sql.v1.InstancesListResponse.items: object expected"); - message.items[i] = $root.google.cloud.sql.v1.DatabaseInstance.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.sql.v1.DatabaseInstance.fromObject(object.items[i], long + 1); } } if (object.nextPageToken != null) @@ -41656,9 +44579,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesListResponse.toObject = function toObject(message, options) { + InstancesListResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.warnings = []; @@ -41668,19 +44595,19 @@ object.kind = ""; object.nextPageToken = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.warnings && message.warnings.length) { object.warnings = []; for (var j = 0; j < message.warnings.length; ++j) - object.warnings[j] = $root.google.cloud.sql.v1.ApiWarning.toObject(message.warnings[j], options); + object.warnings[j] = $root.google.cloud.sql.v1.ApiWarning.toObject(message.warnings[j], options, q + 1); } if (message.items && message.items.length) { object.items = []; for (var j = 0; j < message.items.length; ++j) - object.items[j] = $root.google.cloud.sql.v1.DatabaseInstance.toObject(message.items[j], options); + object.items[j] = $root.google.cloud.sql.v1.DatabaseInstance.toObject(message.items[j], options, q + 1); } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) object.nextPageToken = message.nextPageToken; return object; }; @@ -41737,7 +44664,7 @@ this.certs = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -41786,12 +44713,16 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesListServerCasResponse.encode = function encode(message, writer) { + InstancesListServerCasResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.certs != null && message.certs.length) for (var i = 0; i < message.certs.length; ++i) - $root.google.cloud.sql.v1.SslCert.encode(message.certs[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.SslCert.encode(message.certs[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.activeVersion); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -41809,7 +44740,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesListServerCasResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -41823,9 +44754,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesListServerCasResponse.decode = function decode(reader, length, error) { + InstancesListServerCasResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesListServerCasResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -41835,7 +44770,7 @@ case 1: { if (!(message.certs && message.certs.length)) message.certs = []; - message.certs.push($root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32())); + message.certs.push($root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -41847,7 +44782,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -41878,22 +44813,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesListServerCasResponse.verify = function verify(message) { + InstancesListServerCasResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.certs != null && message.hasOwnProperty("certs")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.certs != null && Object.hasOwnProperty.call(message, "certs")) { if (!Array.isArray(message.certs)) return "certs: array expected"; for (var i = 0; i < message.certs.length; ++i) { - var error = $root.google.cloud.sql.v1.SslCert.verify(message.certs[i]); + var error = $root.google.cloud.sql.v1.SslCert.verify(message.certs[i], long + 1); if (error) return "certs." + error; } } - if (message.activeVersion != null && message.hasOwnProperty("activeVersion")) + if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) if (!$util.isString(message.activeVersion)) return "activeVersion: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -41907,18 +44846,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesListServerCasResponse} InstancesListServerCasResponse */ - InstancesListServerCasResponse.fromObject = function fromObject(object) { + InstancesListServerCasResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesListServerCasResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesListServerCasResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesListServerCasResponse(); if (object.certs) { if (!Array.isArray(object.certs)) throw TypeError(".google.cloud.sql.v1.InstancesListServerCasResponse.certs: array expected"); message.certs = []; for (var i = 0; i < object.certs.length; ++i) { - if (typeof object.certs[i] !== "object") + if (!$util.isObject(object.certs[i])) throw TypeError(".google.cloud.sql.v1.InstancesListServerCasResponse.certs: object expected"); - message.certs[i] = $root.google.cloud.sql.v1.SslCert.fromObject(object.certs[i]); + message.certs[i] = $root.google.cloud.sql.v1.SslCert.fromObject(object.certs[i], long + 1); } } if (object.activeVersion != null) @@ -41937,9 +44882,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesListServerCasResponse.toObject = function toObject(message, options) { + InstancesListServerCasResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.certs = []; @@ -41950,11 +44899,11 @@ if (message.certs && message.certs.length) { object.certs = []; for (var j = 0; j < message.certs.length; ++j) - object.certs[j] = $root.google.cloud.sql.v1.SslCert.toObject(message.certs[j], options); + object.certs[j] = $root.google.cloud.sql.v1.SslCert.toObject(message.certs[j], options, q + 1); } - if (message.activeVersion != null && message.hasOwnProperty("activeVersion")) + if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) object.activeVersion = message.activeVersion; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -42013,7 +44962,7 @@ this.serverCerts = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -42070,15 +45019,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesListServerCertificatesResponse.encode = function encode(message, writer) { + InstancesListServerCertificatesResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.caCerts != null && message.caCerts.length) for (var i = 0; i < message.caCerts.length; ++i) - $root.google.cloud.sql.v1.SslCert.encode(message.caCerts[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.SslCert.encode(message.caCerts[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.serverCerts != null && message.serverCerts.length) for (var i = 0; i < message.serverCerts.length; ++i) - $root.google.cloud.sql.v1.SslCert.encode(message.serverCerts[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.SslCert.encode(message.serverCerts[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.activeVersion); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -42096,7 +45049,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesListServerCertificatesResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -42110,9 +45063,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesListServerCertificatesResponse.decode = function decode(reader, length, error) { + InstancesListServerCertificatesResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesListServerCertificatesResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -42122,13 +45079,13 @@ case 1: { if (!(message.caCerts && message.caCerts.length)) message.caCerts = []; - message.caCerts.push($root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32())); + message.caCerts.push($root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { if (!(message.serverCerts && message.serverCerts.length)) message.serverCerts = []; - message.serverCerts.push($root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32())); + message.serverCerts.push($root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { @@ -42140,7 +45097,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -42171,31 +45128,35 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesListServerCertificatesResponse.verify = function verify(message) { + InstancesListServerCertificatesResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.caCerts != null && message.hasOwnProperty("caCerts")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.caCerts != null && Object.hasOwnProperty.call(message, "caCerts")) { if (!Array.isArray(message.caCerts)) return "caCerts: array expected"; for (var i = 0; i < message.caCerts.length; ++i) { - var error = $root.google.cloud.sql.v1.SslCert.verify(message.caCerts[i]); + var error = $root.google.cloud.sql.v1.SslCert.verify(message.caCerts[i], long + 1); if (error) return "caCerts." + error; } } - if (message.serverCerts != null && message.hasOwnProperty("serverCerts")) { + if (message.serverCerts != null && Object.hasOwnProperty.call(message, "serverCerts")) { if (!Array.isArray(message.serverCerts)) return "serverCerts: array expected"; for (var i = 0; i < message.serverCerts.length; ++i) { - var error = $root.google.cloud.sql.v1.SslCert.verify(message.serverCerts[i]); + var error = $root.google.cloud.sql.v1.SslCert.verify(message.serverCerts[i], long + 1); if (error) return "serverCerts." + error; } } - if (message.activeVersion != null && message.hasOwnProperty("activeVersion")) + if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) if (!$util.isString(message.activeVersion)) return "activeVersion: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -42209,18 +45170,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesListServerCertificatesResponse} InstancesListServerCertificatesResponse */ - InstancesListServerCertificatesResponse.fromObject = function fromObject(object) { + InstancesListServerCertificatesResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesListServerCertificatesResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesListServerCertificatesResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesListServerCertificatesResponse(); if (object.caCerts) { if (!Array.isArray(object.caCerts)) throw TypeError(".google.cloud.sql.v1.InstancesListServerCertificatesResponse.caCerts: array expected"); message.caCerts = []; for (var i = 0; i < object.caCerts.length; ++i) { - if (typeof object.caCerts[i] !== "object") + if (!$util.isObject(object.caCerts[i])) throw TypeError(".google.cloud.sql.v1.InstancesListServerCertificatesResponse.caCerts: object expected"); - message.caCerts[i] = $root.google.cloud.sql.v1.SslCert.fromObject(object.caCerts[i]); + message.caCerts[i] = $root.google.cloud.sql.v1.SslCert.fromObject(object.caCerts[i], long + 1); } } if (object.serverCerts) { @@ -42228,9 +45195,9 @@ throw TypeError(".google.cloud.sql.v1.InstancesListServerCertificatesResponse.serverCerts: array expected"); message.serverCerts = []; for (var i = 0; i < object.serverCerts.length; ++i) { - if (typeof object.serverCerts[i] !== "object") + if (!$util.isObject(object.serverCerts[i])) throw TypeError(".google.cloud.sql.v1.InstancesListServerCertificatesResponse.serverCerts: object expected"); - message.serverCerts[i] = $root.google.cloud.sql.v1.SslCert.fromObject(object.serverCerts[i]); + message.serverCerts[i] = $root.google.cloud.sql.v1.SslCert.fromObject(object.serverCerts[i], long + 1); } } if (object.activeVersion != null) @@ -42249,9 +45216,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesListServerCertificatesResponse.toObject = function toObject(message, options) { + InstancesListServerCertificatesResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.caCerts = []; @@ -42264,16 +45235,16 @@ if (message.caCerts && message.caCerts.length) { object.caCerts = []; for (var j = 0; j < message.caCerts.length; ++j) - object.caCerts[j] = $root.google.cloud.sql.v1.SslCert.toObject(message.caCerts[j], options); + object.caCerts[j] = $root.google.cloud.sql.v1.SslCert.toObject(message.caCerts[j], options, q + 1); } if (message.serverCerts && message.serverCerts.length) { object.serverCerts = []; for (var j = 0; j < message.serverCerts.length; ++j) - object.serverCerts[j] = $root.google.cloud.sql.v1.SslCert.toObject(message.serverCerts[j], options); + object.serverCerts[j] = $root.google.cloud.sql.v1.SslCert.toObject(message.serverCerts[j], options, q + 1); } - if (message.activeVersion != null && message.hasOwnProperty("activeVersion")) + if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) object.activeVersion = message.activeVersion; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -42330,7 +45301,7 @@ this.certs = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -42379,12 +45350,16 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesListEntraIdCertificatesResponse.encode = function encode(message, writer) { + InstancesListEntraIdCertificatesResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.certs != null && message.certs.length) for (var i = 0; i < message.certs.length; ++i) - $root.google.cloud.sql.v1.SslCert.encode(message.certs[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.SslCert.encode(message.certs[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.activeVersion); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -42402,7 +45377,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesListEntraIdCertificatesResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -42416,9 +45391,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesListEntraIdCertificatesResponse.decode = function decode(reader, length, error) { + InstancesListEntraIdCertificatesResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesListEntraIdCertificatesResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -42428,7 +45407,7 @@ case 1: { if (!(message.certs && message.certs.length)) message.certs = []; - message.certs.push($root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32())); + message.certs.push($root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -42440,7 +45419,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -42471,22 +45450,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesListEntraIdCertificatesResponse.verify = function verify(message) { + InstancesListEntraIdCertificatesResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.certs != null && message.hasOwnProperty("certs")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.certs != null && Object.hasOwnProperty.call(message, "certs")) { if (!Array.isArray(message.certs)) return "certs: array expected"; for (var i = 0; i < message.certs.length; ++i) { - var error = $root.google.cloud.sql.v1.SslCert.verify(message.certs[i]); + var error = $root.google.cloud.sql.v1.SslCert.verify(message.certs[i], long + 1); if (error) return "certs." + error; } } - if (message.activeVersion != null && message.hasOwnProperty("activeVersion")) + if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) if (!$util.isString(message.activeVersion)) return "activeVersion: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -42500,18 +45483,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesListEntraIdCertificatesResponse} InstancesListEntraIdCertificatesResponse */ - InstancesListEntraIdCertificatesResponse.fromObject = function fromObject(object) { + InstancesListEntraIdCertificatesResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesListEntraIdCertificatesResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesListEntraIdCertificatesResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesListEntraIdCertificatesResponse(); if (object.certs) { if (!Array.isArray(object.certs)) throw TypeError(".google.cloud.sql.v1.InstancesListEntraIdCertificatesResponse.certs: array expected"); message.certs = []; for (var i = 0; i < object.certs.length; ++i) { - if (typeof object.certs[i] !== "object") + if (!$util.isObject(object.certs[i])) throw TypeError(".google.cloud.sql.v1.InstancesListEntraIdCertificatesResponse.certs: object expected"); - message.certs[i] = $root.google.cloud.sql.v1.SslCert.fromObject(object.certs[i]); + message.certs[i] = $root.google.cloud.sql.v1.SslCert.fromObject(object.certs[i], long + 1); } } if (object.activeVersion != null) @@ -42530,9 +45519,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesListEntraIdCertificatesResponse.toObject = function toObject(message, options) { + InstancesListEntraIdCertificatesResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.certs = []; @@ -42543,11 +45536,11 @@ if (message.certs && message.certs.length) { object.certs = []; for (var j = 0; j < message.certs.length; ++j) - object.certs[j] = $root.google.cloud.sql.v1.SslCert.toObject(message.certs[j], options); + object.certs[j] = $root.google.cloud.sql.v1.SslCert.toObject(message.certs[j], options, q + 1); } - if (message.activeVersion != null && message.hasOwnProperty("activeVersion")) + if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) object.activeVersion = message.activeVersion; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -42606,7 +45599,7 @@ this.restoreInstanceClearOverridesFieldNames = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -42671,15 +45664,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesRestoreBackupRequest.encode = function encode(message, writer) { + InstancesRestoreBackupRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.restoreBackupContext != null && Object.hasOwnProperty.call(message, "restoreBackupContext")) - $root.google.cloud.sql.v1.RestoreBackupContext.encode(message.restoreBackupContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.RestoreBackupContext.encode(message.restoreBackupContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.backup); if (message.restoreInstanceSettings != null && Object.hasOwnProperty.call(message, "restoreInstanceSettings")) - $root.google.cloud.sql.v1.DatabaseInstance.encode(message.restoreInstanceSettings, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1.DatabaseInstance.encode(message.restoreInstanceSettings, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.backupdrBackup != null && Object.hasOwnProperty.call(message, "backupdrBackup")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.backupdrBackup); if (message.restoreInstanceClearOverridesFieldNames != null && message.restoreInstanceClearOverridesFieldNames.length) @@ -42698,7 +45695,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesRestoreBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -42712,9 +45709,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesRestoreBackupRequest.decode = function decode(reader, length, error) { + InstancesRestoreBackupRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesRestoreBackupRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -42722,7 +45723,7 @@ break; switch (tag >>> 3) { case 1: { - message.restoreBackupContext = $root.google.cloud.sql.v1.RestoreBackupContext.decode(reader, reader.uint32()); + message.restoreBackupContext = $root.google.cloud.sql.v1.RestoreBackupContext.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -42734,7 +45735,7 @@ break; } case 3: { - message.restoreInstanceSettings = $root.google.cloud.sql.v1.DatabaseInstance.decode(reader, reader.uint32()); + message.restoreInstanceSettings = $root.google.cloud.sql.v1.DatabaseInstance.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -42744,7 +45745,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -42775,26 +45776,30 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesRestoreBackupRequest.verify = function verify(message) { + InstancesRestoreBackupRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.restoreBackupContext != null && message.hasOwnProperty("restoreBackupContext")) { - var error = $root.google.cloud.sql.v1.RestoreBackupContext.verify(message.restoreBackupContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.restoreBackupContext != null && Object.hasOwnProperty.call(message, "restoreBackupContext")) { + var error = $root.google.cloud.sql.v1.RestoreBackupContext.verify(message.restoreBackupContext, long + 1); if (error) return "restoreBackupContext." + error; } - if (message.backup != null && message.hasOwnProperty("backup")) + if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) if (!$util.isString(message.backup)) return "backup: string expected"; - if (message.backupdrBackup != null && message.hasOwnProperty("backupdrBackup")) + if (message.backupdrBackup != null && Object.hasOwnProperty.call(message, "backupdrBackup")) if (!$util.isString(message.backupdrBackup)) return "backupdrBackup: string expected"; - if (message.restoreInstanceSettings != null && message.hasOwnProperty("restoreInstanceSettings")) { - var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.restoreInstanceSettings); + if (message.restoreInstanceSettings != null && Object.hasOwnProperty.call(message, "restoreInstanceSettings")) { + var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.restoreInstanceSettings, long + 1); if (error) return "restoreInstanceSettings." + error; } - if (message.restoreInstanceClearOverridesFieldNames != null && message.hasOwnProperty("restoreInstanceClearOverridesFieldNames")) { + if (message.restoreInstanceClearOverridesFieldNames != null && Object.hasOwnProperty.call(message, "restoreInstanceClearOverridesFieldNames")) { if (!Array.isArray(message.restoreInstanceClearOverridesFieldNames)) return "restoreInstanceClearOverridesFieldNames: array expected"; for (var i = 0; i < message.restoreInstanceClearOverridesFieldNames.length; ++i) @@ -42812,23 +45817,29 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesRestoreBackupRequest} InstancesRestoreBackupRequest */ - InstancesRestoreBackupRequest.fromObject = function fromObject(object) { + InstancesRestoreBackupRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesRestoreBackupRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesRestoreBackupRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesRestoreBackupRequest(); if (object.restoreBackupContext != null) { - if (typeof object.restoreBackupContext !== "object") + if (!$util.isObject(object.restoreBackupContext)) throw TypeError(".google.cloud.sql.v1.InstancesRestoreBackupRequest.restoreBackupContext: object expected"); - message.restoreBackupContext = $root.google.cloud.sql.v1.RestoreBackupContext.fromObject(object.restoreBackupContext); + message.restoreBackupContext = $root.google.cloud.sql.v1.RestoreBackupContext.fromObject(object.restoreBackupContext, long + 1); } if (object.backup != null) message.backup = String(object.backup); if (object.backupdrBackup != null) message.backupdrBackup = String(object.backupdrBackup); if (object.restoreInstanceSettings != null) { - if (typeof object.restoreInstanceSettings !== "object") + if (!$util.isObject(object.restoreInstanceSettings)) throw TypeError(".google.cloud.sql.v1.InstancesRestoreBackupRequest.restoreInstanceSettings: object expected"); - message.restoreInstanceSettings = $root.google.cloud.sql.v1.DatabaseInstance.fromObject(object.restoreInstanceSettings); + message.restoreInstanceSettings = $root.google.cloud.sql.v1.DatabaseInstance.fromObject(object.restoreInstanceSettings, long + 1); } if (object.restoreInstanceClearOverridesFieldNames) { if (!Array.isArray(object.restoreInstanceClearOverridesFieldNames)) @@ -42849,9 +45860,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesRestoreBackupRequest.toObject = function toObject(message, options) { + InstancesRestoreBackupRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.restoreInstanceClearOverridesFieldNames = []; @@ -42861,13 +45876,13 @@ object.restoreInstanceSettings = null; object.backupdrBackup = ""; } - if (message.restoreBackupContext != null && message.hasOwnProperty("restoreBackupContext")) - object.restoreBackupContext = $root.google.cloud.sql.v1.RestoreBackupContext.toObject(message.restoreBackupContext, options); - if (message.backup != null && message.hasOwnProperty("backup")) + if (message.restoreBackupContext != null && Object.hasOwnProperty.call(message, "restoreBackupContext")) + object.restoreBackupContext = $root.google.cloud.sql.v1.RestoreBackupContext.toObject(message.restoreBackupContext, options, q + 1); + if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) object.backup = message.backup; - if (message.restoreInstanceSettings != null && message.hasOwnProperty("restoreInstanceSettings")) - object.restoreInstanceSettings = $root.google.cloud.sql.v1.DatabaseInstance.toObject(message.restoreInstanceSettings, options); - if (message.backupdrBackup != null && message.hasOwnProperty("backupdrBackup")) + if (message.restoreInstanceSettings != null && Object.hasOwnProperty.call(message, "restoreInstanceSettings")) + object.restoreInstanceSettings = $root.google.cloud.sql.v1.DatabaseInstance.toObject(message.restoreInstanceSettings, options, q + 1); + if (message.backupdrBackup != null && Object.hasOwnProperty.call(message, "backupdrBackup")) object.backupdrBackup = message.backupdrBackup; if (message.restoreInstanceClearOverridesFieldNames && message.restoreInstanceClearOverridesFieldNames.length) { object.restoreInstanceClearOverridesFieldNames = []; @@ -42926,7 +45941,7 @@ function InstancesRotateServerCaRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -42959,11 +45974,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesRotateServerCaRequest.encode = function encode(message, writer) { + InstancesRotateServerCaRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.rotateServerCaContext != null && Object.hasOwnProperty.call(message, "rotateServerCaContext")) - $root.google.cloud.sql.v1.RotateServerCaContext.encode(message.rotateServerCaContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.RotateServerCaContext.encode(message.rotateServerCaContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -42977,7 +45996,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesRotateServerCaRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -42991,9 +46010,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesRotateServerCaRequest.decode = function decode(reader, length, error) { + InstancesRotateServerCaRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesRotateServerCaRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -43001,11 +46024,11 @@ break; switch (tag >>> 3) { case 1: { - message.rotateServerCaContext = $root.google.cloud.sql.v1.RotateServerCaContext.decode(reader, reader.uint32()); + message.rotateServerCaContext = $root.google.cloud.sql.v1.RotateServerCaContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -43036,11 +46059,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesRotateServerCaRequest.verify = function verify(message) { + InstancesRotateServerCaRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.rotateServerCaContext != null && message.hasOwnProperty("rotateServerCaContext")) { - var error = $root.google.cloud.sql.v1.RotateServerCaContext.verify(message.rotateServerCaContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.rotateServerCaContext != null && Object.hasOwnProperty.call(message, "rotateServerCaContext")) { + var error = $root.google.cloud.sql.v1.RotateServerCaContext.verify(message.rotateServerCaContext, long + 1); if (error) return "rotateServerCaContext." + error; } @@ -43055,14 +46082,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesRotateServerCaRequest} InstancesRotateServerCaRequest */ - InstancesRotateServerCaRequest.fromObject = function fromObject(object) { + InstancesRotateServerCaRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesRotateServerCaRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesRotateServerCaRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesRotateServerCaRequest(); if (object.rotateServerCaContext != null) { - if (typeof object.rotateServerCaContext !== "object") + if (!$util.isObject(object.rotateServerCaContext)) throw TypeError(".google.cloud.sql.v1.InstancesRotateServerCaRequest.rotateServerCaContext: object expected"); - message.rotateServerCaContext = $root.google.cloud.sql.v1.RotateServerCaContext.fromObject(object.rotateServerCaContext); + message.rotateServerCaContext = $root.google.cloud.sql.v1.RotateServerCaContext.fromObject(object.rotateServerCaContext, long + 1); } return message; }; @@ -43076,14 +46109,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesRotateServerCaRequest.toObject = function toObject(message, options) { + InstancesRotateServerCaRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.rotateServerCaContext = null; - if (message.rotateServerCaContext != null && message.hasOwnProperty("rotateServerCaContext")) - object.rotateServerCaContext = $root.google.cloud.sql.v1.RotateServerCaContext.toObject(message.rotateServerCaContext, options); + if (message.rotateServerCaContext != null && Object.hasOwnProperty.call(message, "rotateServerCaContext")) + object.rotateServerCaContext = $root.google.cloud.sql.v1.RotateServerCaContext.toObject(message.rotateServerCaContext, options, q + 1); return object; }; @@ -43136,7 +46173,7 @@ function InstancesRotateServerCertificateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -43169,11 +46206,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesRotateServerCertificateRequest.encode = function encode(message, writer) { + InstancesRotateServerCertificateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.rotateServerCertificateContext != null && Object.hasOwnProperty.call(message, "rotateServerCertificateContext")) - $root.google.cloud.sql.v1.RotateServerCertificateContext.encode(message.rotateServerCertificateContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.RotateServerCertificateContext.encode(message.rotateServerCertificateContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -43187,7 +46228,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesRotateServerCertificateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -43201,9 +46242,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesRotateServerCertificateRequest.decode = function decode(reader, length, error) { + InstancesRotateServerCertificateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesRotateServerCertificateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -43211,11 +46256,11 @@ break; switch (tag >>> 3) { case 1: { - message.rotateServerCertificateContext = $root.google.cloud.sql.v1.RotateServerCertificateContext.decode(reader, reader.uint32()); + message.rotateServerCertificateContext = $root.google.cloud.sql.v1.RotateServerCertificateContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -43246,11 +46291,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesRotateServerCertificateRequest.verify = function verify(message) { + InstancesRotateServerCertificateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.rotateServerCertificateContext != null && message.hasOwnProperty("rotateServerCertificateContext")) { - var error = $root.google.cloud.sql.v1.RotateServerCertificateContext.verify(message.rotateServerCertificateContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.rotateServerCertificateContext != null && Object.hasOwnProperty.call(message, "rotateServerCertificateContext")) { + var error = $root.google.cloud.sql.v1.RotateServerCertificateContext.verify(message.rotateServerCertificateContext, long + 1); if (error) return "rotateServerCertificateContext." + error; } @@ -43265,14 +46314,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesRotateServerCertificateRequest} InstancesRotateServerCertificateRequest */ - InstancesRotateServerCertificateRequest.fromObject = function fromObject(object) { + InstancesRotateServerCertificateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesRotateServerCertificateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesRotateServerCertificateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesRotateServerCertificateRequest(); if (object.rotateServerCertificateContext != null) { - if (typeof object.rotateServerCertificateContext !== "object") + if (!$util.isObject(object.rotateServerCertificateContext)) throw TypeError(".google.cloud.sql.v1.InstancesRotateServerCertificateRequest.rotateServerCertificateContext: object expected"); - message.rotateServerCertificateContext = $root.google.cloud.sql.v1.RotateServerCertificateContext.fromObject(object.rotateServerCertificateContext); + message.rotateServerCertificateContext = $root.google.cloud.sql.v1.RotateServerCertificateContext.fromObject(object.rotateServerCertificateContext, long + 1); } return message; }; @@ -43286,14 +46341,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesRotateServerCertificateRequest.toObject = function toObject(message, options) { + InstancesRotateServerCertificateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.rotateServerCertificateContext = null; - if (message.rotateServerCertificateContext != null && message.hasOwnProperty("rotateServerCertificateContext")) - object.rotateServerCertificateContext = $root.google.cloud.sql.v1.RotateServerCertificateContext.toObject(message.rotateServerCertificateContext, options); + if (message.rotateServerCertificateContext != null && Object.hasOwnProperty.call(message, "rotateServerCertificateContext")) + object.rotateServerCertificateContext = $root.google.cloud.sql.v1.RotateServerCertificateContext.toObject(message.rotateServerCertificateContext, options, q + 1); return object; }; @@ -43346,7 +46405,7 @@ function InstancesRotateEntraIdCertificateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -43379,11 +46438,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesRotateEntraIdCertificateRequest.encode = function encode(message, writer) { + InstancesRotateEntraIdCertificateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.rotateEntraIdCertificateContext != null && Object.hasOwnProperty.call(message, "rotateEntraIdCertificateContext")) - $root.google.cloud.sql.v1.RotateEntraIdCertificateContext.encode(message.rotateEntraIdCertificateContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.RotateEntraIdCertificateContext.encode(message.rotateEntraIdCertificateContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -43397,7 +46460,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesRotateEntraIdCertificateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -43411,9 +46474,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesRotateEntraIdCertificateRequest.decode = function decode(reader, length, error) { + InstancesRotateEntraIdCertificateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -43421,11 +46488,11 @@ break; switch (tag >>> 3) { case 1: { - message.rotateEntraIdCertificateContext = $root.google.cloud.sql.v1.RotateEntraIdCertificateContext.decode(reader, reader.uint32()); + message.rotateEntraIdCertificateContext = $root.google.cloud.sql.v1.RotateEntraIdCertificateContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -43456,11 +46523,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesRotateEntraIdCertificateRequest.verify = function verify(message) { + InstancesRotateEntraIdCertificateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.rotateEntraIdCertificateContext != null && message.hasOwnProperty("rotateEntraIdCertificateContext")) { - var error = $root.google.cloud.sql.v1.RotateEntraIdCertificateContext.verify(message.rotateEntraIdCertificateContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.rotateEntraIdCertificateContext != null && Object.hasOwnProperty.call(message, "rotateEntraIdCertificateContext")) { + var error = $root.google.cloud.sql.v1.RotateEntraIdCertificateContext.verify(message.rotateEntraIdCertificateContext, long + 1); if (error) return "rotateEntraIdCertificateContext." + error; } @@ -43475,14 +46546,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest} InstancesRotateEntraIdCertificateRequest */ - InstancesRotateEntraIdCertificateRequest.fromObject = function fromObject(object) { + InstancesRotateEntraIdCertificateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest(); if (object.rotateEntraIdCertificateContext != null) { - if (typeof object.rotateEntraIdCertificateContext !== "object") + if (!$util.isObject(object.rotateEntraIdCertificateContext)) throw TypeError(".google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest.rotateEntraIdCertificateContext: object expected"); - message.rotateEntraIdCertificateContext = $root.google.cloud.sql.v1.RotateEntraIdCertificateContext.fromObject(object.rotateEntraIdCertificateContext); + message.rotateEntraIdCertificateContext = $root.google.cloud.sql.v1.RotateEntraIdCertificateContext.fromObject(object.rotateEntraIdCertificateContext, long + 1); } return message; }; @@ -43496,14 +46573,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesRotateEntraIdCertificateRequest.toObject = function toObject(message, options) { + InstancesRotateEntraIdCertificateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.rotateEntraIdCertificateContext = null; - if (message.rotateEntraIdCertificateContext != null && message.hasOwnProperty("rotateEntraIdCertificateContext")) - object.rotateEntraIdCertificateContext = $root.google.cloud.sql.v1.RotateEntraIdCertificateContext.toObject(message.rotateEntraIdCertificateContext, options); + if (message.rotateEntraIdCertificateContext != null && Object.hasOwnProperty.call(message, "rotateEntraIdCertificateContext")) + object.rotateEntraIdCertificateContext = $root.google.cloud.sql.v1.RotateEntraIdCertificateContext.toObject(message.rotateEntraIdCertificateContext, options, q + 1); return object; }; @@ -43556,7 +46637,7 @@ function InstancesTruncateLogRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -43589,11 +46670,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesTruncateLogRequest.encode = function encode(message, writer) { + InstancesTruncateLogRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.truncateLogContext != null && Object.hasOwnProperty.call(message, "truncateLogContext")) - $root.google.cloud.sql.v1.TruncateLogContext.encode(message.truncateLogContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.TruncateLogContext.encode(message.truncateLogContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -43607,7 +46692,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesTruncateLogRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -43621,9 +46706,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesTruncateLogRequest.decode = function decode(reader, length, error) { + InstancesTruncateLogRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesTruncateLogRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -43631,11 +46720,11 @@ break; switch (tag >>> 3) { case 1: { - message.truncateLogContext = $root.google.cloud.sql.v1.TruncateLogContext.decode(reader, reader.uint32()); + message.truncateLogContext = $root.google.cloud.sql.v1.TruncateLogContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -43666,11 +46755,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesTruncateLogRequest.verify = function verify(message) { + InstancesTruncateLogRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.truncateLogContext != null && message.hasOwnProperty("truncateLogContext")) { - var error = $root.google.cloud.sql.v1.TruncateLogContext.verify(message.truncateLogContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.truncateLogContext != null && Object.hasOwnProperty.call(message, "truncateLogContext")) { + var error = $root.google.cloud.sql.v1.TruncateLogContext.verify(message.truncateLogContext, long + 1); if (error) return "truncateLogContext." + error; } @@ -43685,14 +46778,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesTruncateLogRequest} InstancesTruncateLogRequest */ - InstancesTruncateLogRequest.fromObject = function fromObject(object) { + InstancesTruncateLogRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesTruncateLogRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesTruncateLogRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesTruncateLogRequest(); if (object.truncateLogContext != null) { - if (typeof object.truncateLogContext !== "object") + if (!$util.isObject(object.truncateLogContext)) throw TypeError(".google.cloud.sql.v1.InstancesTruncateLogRequest.truncateLogContext: object expected"); - message.truncateLogContext = $root.google.cloud.sql.v1.TruncateLogContext.fromObject(object.truncateLogContext); + message.truncateLogContext = $root.google.cloud.sql.v1.TruncateLogContext.fromObject(object.truncateLogContext, long + 1); } return message; }; @@ -43706,14 +46805,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesTruncateLogRequest.toObject = function toObject(message, options) { + InstancesTruncateLogRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.truncateLogContext = null; - if (message.truncateLogContext != null && message.hasOwnProperty("truncateLogContext")) - object.truncateLogContext = $root.google.cloud.sql.v1.TruncateLogContext.toObject(message.truncateLogContext, options); + if (message.truncateLogContext != null && Object.hasOwnProperty.call(message, "truncateLogContext")) + object.truncateLogContext = $root.google.cloud.sql.v1.TruncateLogContext.toObject(message.truncateLogContext, options, q + 1); return object; }; @@ -43766,7 +46869,7 @@ function InstancesAcquireSsrsLeaseRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -43799,11 +46902,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesAcquireSsrsLeaseRequest.encode = function encode(message, writer) { + InstancesAcquireSsrsLeaseRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.acquireSsrsLeaseContext != null && Object.hasOwnProperty.call(message, "acquireSsrsLeaseContext")) - $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.encode(message.acquireSsrsLeaseContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.encode(message.acquireSsrsLeaseContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -43817,7 +46924,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesAcquireSsrsLeaseRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -43831,9 +46938,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesAcquireSsrsLeaseRequest.decode = function decode(reader, length, error) { + InstancesAcquireSsrsLeaseRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -43841,11 +46952,11 @@ break; switch (tag >>> 3) { case 1: { - message.acquireSsrsLeaseContext = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.decode(reader, reader.uint32()); + message.acquireSsrsLeaseContext = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -43876,11 +46987,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesAcquireSsrsLeaseRequest.verify = function verify(message) { + InstancesAcquireSsrsLeaseRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.acquireSsrsLeaseContext != null && message.hasOwnProperty("acquireSsrsLeaseContext")) { - var error = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.verify(message.acquireSsrsLeaseContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.acquireSsrsLeaseContext != null && Object.hasOwnProperty.call(message, "acquireSsrsLeaseContext")) { + var error = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.verify(message.acquireSsrsLeaseContext, long + 1); if (error) return "acquireSsrsLeaseContext." + error; } @@ -43895,14 +47010,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest} InstancesAcquireSsrsLeaseRequest */ - InstancesAcquireSsrsLeaseRequest.fromObject = function fromObject(object) { + InstancesAcquireSsrsLeaseRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest(); if (object.acquireSsrsLeaseContext != null) { - if (typeof object.acquireSsrsLeaseContext !== "object") + if (!$util.isObject(object.acquireSsrsLeaseContext)) throw TypeError(".google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest.acquireSsrsLeaseContext: object expected"); - message.acquireSsrsLeaseContext = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.fromObject(object.acquireSsrsLeaseContext); + message.acquireSsrsLeaseContext = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.fromObject(object.acquireSsrsLeaseContext, long + 1); } return message; }; @@ -43916,14 +47037,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesAcquireSsrsLeaseRequest.toObject = function toObject(message, options) { + InstancesAcquireSsrsLeaseRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.acquireSsrsLeaseContext = null; - if (message.acquireSsrsLeaseContext != null && message.hasOwnProperty("acquireSsrsLeaseContext")) - object.acquireSsrsLeaseContext = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.toObject(message.acquireSsrsLeaseContext, options); + if (message.acquireSsrsLeaseContext != null && Object.hasOwnProperty.call(message, "acquireSsrsLeaseContext")) + object.acquireSsrsLeaseContext = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.toObject(message.acquireSsrsLeaseContext, options, q + 1); return object; }; @@ -43978,7 +47103,7 @@ function SqlInstancesPreCheckMajorVersionUpgradeRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -44027,15 +47152,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesPreCheckMajorVersionUpgradeRequest.encode = function encode(message, writer) { + SqlInstancesPreCheckMajorVersionUpgradeRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest.encode(message.body, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest.encode(message.body, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -44049,7 +47178,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesPreCheckMajorVersionUpgradeRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -44063,9 +47192,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesPreCheckMajorVersionUpgradeRequest.decode = function decode(reader, length, error) { + SqlInstancesPreCheckMajorVersionUpgradeRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -44081,11 +47214,11 @@ break; } case 3: { - message.body = $root.google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -44116,17 +47249,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesPreCheckMajorVersionUpgradeRequest.verify = function verify(message) { + SqlInstancesPreCheckMajorVersionUpgradeRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -44141,18 +47278,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest} SqlInstancesPreCheckMajorVersionUpgradeRequest */ - SqlInstancesPreCheckMajorVersionUpgradeRequest.fromObject = function fromObject(object) { + SqlInstancesPreCheckMajorVersionUpgradeRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest.fromObject(object.body, long + 1); } return message; }; @@ -44166,21 +47309,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesPreCheckMajorVersionUpgradeRequest.toObject = function toObject(message, options) { + SqlInstancesPreCheckMajorVersionUpgradeRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest.toObject(message.body, options, q + 1); return object; }; @@ -44237,7 +47384,7 @@ this.warnings = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -44286,17 +47433,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesVerifyExternalSyncSettingsResponse.encode = function encode(message, writer) { + SqlInstancesVerifyExternalSyncSettingsResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.errors != null && message.errors.length) for (var i = 0; i < message.errors.length; ++i) - $root.google.cloud.sql.v1.SqlExternalSyncSettingError.encode(message.errors[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.SqlExternalSyncSettingError.encode(message.errors[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.warnings != null && message.warnings.length) for (var i = 0; i < message.warnings.length; ++i) - $root.google.cloud.sql.v1.SqlExternalSyncSettingError.encode(message.warnings[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1.SqlExternalSyncSettingError.encode(message.warnings[i], writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -44310,7 +47461,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesVerifyExternalSyncSettingsResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -44324,9 +47475,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesVerifyExternalSyncSettingsResponse.decode = function decode(reader, length, error) { + SqlInstancesVerifyExternalSyncSettingsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -44340,17 +47495,17 @@ case 2: { if (!(message.errors && message.errors.length)) message.errors = []; - message.errors.push($root.google.cloud.sql.v1.SqlExternalSyncSettingError.decode(reader, reader.uint32())); + message.errors.push($root.google.cloud.sql.v1.SqlExternalSyncSettingError.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { if (!(message.warnings && message.warnings.length)) message.warnings = []; - message.warnings.push($root.google.cloud.sql.v1.SqlExternalSyncSettingError.decode(reader, reader.uint32())); + message.warnings.push($root.google.cloud.sql.v1.SqlExternalSyncSettingError.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -44381,26 +47536,30 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesVerifyExternalSyncSettingsResponse.verify = function verify(message) { + SqlInstancesVerifyExternalSyncSettingsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.errors != null && message.hasOwnProperty("errors")) { + if (message.errors != null && Object.hasOwnProperty.call(message, "errors")) { if (!Array.isArray(message.errors)) return "errors: array expected"; for (var i = 0; i < message.errors.length; ++i) { - var error = $root.google.cloud.sql.v1.SqlExternalSyncSettingError.verify(message.errors[i]); + var error = $root.google.cloud.sql.v1.SqlExternalSyncSettingError.verify(message.errors[i], long + 1); if (error) return "errors." + error; } } - if (message.warnings != null && message.hasOwnProperty("warnings")) { + if (message.warnings != null && Object.hasOwnProperty.call(message, "warnings")) { if (!Array.isArray(message.warnings)) return "warnings: array expected"; for (var i = 0; i < message.warnings.length; ++i) { - var error = $root.google.cloud.sql.v1.SqlExternalSyncSettingError.verify(message.warnings[i]); + var error = $root.google.cloud.sql.v1.SqlExternalSyncSettingError.verify(message.warnings[i], long + 1); if (error) return "warnings." + error; } @@ -44416,9 +47575,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse} SqlInstancesVerifyExternalSyncSettingsResponse */ - SqlInstancesVerifyExternalSyncSettingsResponse.fromObject = function fromObject(object) { + SqlInstancesVerifyExternalSyncSettingsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -44427,9 +47592,9 @@ throw TypeError(".google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse.errors: array expected"); message.errors = []; for (var i = 0; i < object.errors.length; ++i) { - if (typeof object.errors[i] !== "object") + if (!$util.isObject(object.errors[i])) throw TypeError(".google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse.errors: object expected"); - message.errors[i] = $root.google.cloud.sql.v1.SqlExternalSyncSettingError.fromObject(object.errors[i]); + message.errors[i] = $root.google.cloud.sql.v1.SqlExternalSyncSettingError.fromObject(object.errors[i], long + 1); } } if (object.warnings) { @@ -44437,9 +47602,9 @@ throw TypeError(".google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse.warnings: array expected"); message.warnings = []; for (var i = 0; i < object.warnings.length; ++i) { - if (typeof object.warnings[i] !== "object") + if (!$util.isObject(object.warnings[i])) throw TypeError(".google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse.warnings: object expected"); - message.warnings[i] = $root.google.cloud.sql.v1.SqlExternalSyncSettingError.fromObject(object.warnings[i]); + message.warnings[i] = $root.google.cloud.sql.v1.SqlExternalSyncSettingError.fromObject(object.warnings[i], long + 1); } } return message; @@ -44454,9 +47619,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesVerifyExternalSyncSettingsResponse.toObject = function toObject(message, options) { + SqlInstancesVerifyExternalSyncSettingsResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.errors = []; @@ -44464,17 +47633,17 @@ } if (options.defaults) object.kind = ""; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.errors && message.errors.length) { object.errors = []; for (var j = 0; j < message.errors.length; ++j) - object.errors[j] = $root.google.cloud.sql.v1.SqlExternalSyncSettingError.toObject(message.errors[j], options); + object.errors[j] = $root.google.cloud.sql.v1.SqlExternalSyncSettingError.toObject(message.errors[j], options, q + 1); } if (message.warnings && message.warnings.length) { object.warnings = []; for (var j = 0; j < message.warnings.length; ++j) - object.warnings[j] = $root.google.cloud.sql.v1.SqlExternalSyncSettingError.toObject(message.warnings[j], options); + object.warnings[j] = $root.google.cloud.sql.v1.SqlExternalSyncSettingError.toObject(message.warnings[j], options, q + 1); } return object; }; @@ -44530,7 +47699,7 @@ function SqlInstancesGetDiskShrinkConfigResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -44579,9 +47748,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesGetDiskShrinkConfigResponse.encode = function encode(message, writer) { + SqlInstancesGetDiskShrinkConfigResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.minimalTargetSizeGb != null && Object.hasOwnProperty.call(message, "minimalTargetSizeGb")) @@ -44601,7 +47774,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesGetDiskShrinkConfigResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -44615,9 +47788,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesGetDiskShrinkConfigResponse.decode = function decode(reader, length, error) { + SqlInstancesGetDiskShrinkConfigResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -44637,7 +47814,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -44668,16 +47845,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesGetDiskShrinkConfigResponse.verify = function verify(message) { + SqlInstancesGetDiskShrinkConfigResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.minimalTargetSizeGb != null && message.hasOwnProperty("minimalTargetSizeGb")) + if (message.minimalTargetSizeGb != null && Object.hasOwnProperty.call(message, "minimalTargetSizeGb")) if (!$util.isInteger(message.minimalTargetSizeGb) && !(message.minimalTargetSizeGb && $util.isInteger(message.minimalTargetSizeGb.low) && $util.isInteger(message.minimalTargetSizeGb.high))) return "minimalTargetSizeGb: integer|Long expected"; - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) if (!$util.isString(message.message)) return "message: string expected"; return null; @@ -44691,15 +47872,21 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigResponse} SqlInstancesGetDiskShrinkConfigResponse */ - SqlInstancesGetDiskShrinkConfigResponse.fromObject = function fromObject(object) { + SqlInstancesGetDiskShrinkConfigResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigResponse(); if (object.kind != null) message.kind = String(object.kind); if (object.minimalTargetSizeGb != null) if ($util.Long) - (message.minimalTargetSizeGb = $util.Long.fromValue(object.minimalTargetSizeGb)).unsigned = false; + message.minimalTargetSizeGb = $util.Long.fromValue(object.minimalTargetSizeGb, false); else if (typeof object.minimalTargetSizeGb === "string") message.minimalTargetSizeGb = parseInt(object.minimalTargetSizeGb, 10); else if (typeof object.minimalTargetSizeGb === "number") @@ -44720,27 +47907,33 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesGetDiskShrinkConfigResponse.toObject = function toObject(message, options) { + SqlInstancesGetDiskShrinkConfigResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.minimalTargetSizeGb = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.minimalTargetSizeGb = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.minimalTargetSizeGb = options.longs === String ? "0" : 0; + object.minimalTargetSizeGb = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.message = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.minimalTargetSizeGb != null && message.hasOwnProperty("minimalTargetSizeGb")) - if (typeof message.minimalTargetSizeGb === "number") + if (message.minimalTargetSizeGb != null && Object.hasOwnProperty.call(message, "minimalTargetSizeGb")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.minimalTargetSizeGb = typeof message.minimalTargetSizeGb === "number" ? BigInt(message.minimalTargetSizeGb) : $util.Long.fromBits(message.minimalTargetSizeGb.low >>> 0, message.minimalTargetSizeGb.high >>> 0, false).toBigInt(); + else if (typeof message.minimalTargetSizeGb === "number") object.minimalTargetSizeGb = options.longs === String ? String(message.minimalTargetSizeGb) : message.minimalTargetSizeGb; else object.minimalTargetSizeGb = options.longs === String ? $util.Long.prototype.toString.call(message.minimalTargetSizeGb) : options.longs === Number ? new $util.LongBits(message.minimalTargetSizeGb.low >>> 0, message.minimalTargetSizeGb.high >>> 0).toNumber() : message.minimalTargetSizeGb; - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) object.message = message.message; return object; }; @@ -44796,7 +47989,7 @@ function SqlInstancesGetLatestRecoveryTimeRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -44854,15 +48047,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesGetLatestRecoveryTimeRequest.encode = function encode(message, writer) { + SqlInstancesGetLatestRecoveryTimeRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.sourceInstanceDeletionTime != null && Object.hasOwnProperty.call(message, "sourceInstanceDeletionTime")) - $root.google.protobuf.Timestamp.encode(message.sourceInstanceDeletionTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.sourceInstanceDeletionTime, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -44876,7 +48073,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesGetLatestRecoveryTimeRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -44890,9 +48087,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesGetLatestRecoveryTimeRequest.decode = function decode(reader, length, error) { + SqlInstancesGetLatestRecoveryTimeRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -44908,11 +48109,11 @@ break; } case 3: { - message.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -44943,20 +48144,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesGetLatestRecoveryTimeRequest.verify = function verify(message) { + SqlInstancesGetLatestRecoveryTimeRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.sourceInstanceDeletionTime != null && message.hasOwnProperty("sourceInstanceDeletionTime")) { + if (message.sourceInstanceDeletionTime != null && Object.hasOwnProperty.call(message, "sourceInstanceDeletionTime")) { properties._sourceInstanceDeletionTime = 1; { - var error = $root.google.protobuf.Timestamp.verify(message.sourceInstanceDeletionTime); + var error = $root.google.protobuf.Timestamp.verify(message.sourceInstanceDeletionTime, long + 1); if (error) return "sourceInstanceDeletionTime." + error; } @@ -44972,18 +48177,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest} SqlInstancesGetLatestRecoveryTimeRequest */ - SqlInstancesGetLatestRecoveryTimeRequest.fromObject = function fromObject(object) { + SqlInstancesGetLatestRecoveryTimeRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.sourceInstanceDeletionTime != null) { - if (typeof object.sourceInstanceDeletionTime !== "object") + if (!$util.isObject(object.sourceInstanceDeletionTime)) throw TypeError(".google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest.sourceInstanceDeletionTime: object expected"); - message.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.fromObject(object.sourceInstanceDeletionTime); + message.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.fromObject(object.sourceInstanceDeletionTime, long + 1); } return message; }; @@ -44997,20 +48208,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesGetLatestRecoveryTimeRequest.toObject = function toObject(message, options) { + SqlInstancesGetLatestRecoveryTimeRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.sourceInstanceDeletionTime != null && message.hasOwnProperty("sourceInstanceDeletionTime")) { - object.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.toObject(message.sourceInstanceDeletionTime, options); + if (message.sourceInstanceDeletionTime != null && Object.hasOwnProperty.call(message, "sourceInstanceDeletionTime")) { + object.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.toObject(message.sourceInstanceDeletionTime, options, q + 1); if (options.oneofs) object._sourceInstanceDeletionTime = "sourceInstanceDeletionTime"; } @@ -45068,7 +48283,7 @@ function SqlInstancesGetLatestRecoveryTimeResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -45117,15 +48332,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesGetLatestRecoveryTimeResponse.encode = function encode(message, writer) { + SqlInstancesGetLatestRecoveryTimeResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.latestRecoveryTime != null && Object.hasOwnProperty.call(message, "latestRecoveryTime")) - $root.google.protobuf.Timestamp.encode(message.latestRecoveryTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.latestRecoveryTime, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.earliestRecoveryTime != null && Object.hasOwnProperty.call(message, "earliestRecoveryTime")) - $root.google.protobuf.Timestamp.encode(message.earliestRecoveryTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.earliestRecoveryTime, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -45139,7 +48358,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesGetLatestRecoveryTimeResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -45153,9 +48372,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesGetLatestRecoveryTimeResponse.decode = function decode(reader, length, error) { + SqlInstancesGetLatestRecoveryTimeResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -45167,15 +48390,15 @@ break; } case 2: { - message.latestRecoveryTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.latestRecoveryTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { - message.earliestRecoveryTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.earliestRecoveryTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -45206,19 +48429,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesGetLatestRecoveryTimeResponse.verify = function verify(message) { + SqlInstancesGetLatestRecoveryTimeResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.latestRecoveryTime != null && message.hasOwnProperty("latestRecoveryTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.latestRecoveryTime); + if (message.latestRecoveryTime != null && Object.hasOwnProperty.call(message, "latestRecoveryTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.latestRecoveryTime, long + 1); if (error) return "latestRecoveryTime." + error; } - if (message.earliestRecoveryTime != null && message.hasOwnProperty("earliestRecoveryTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.earliestRecoveryTime); + if (message.earliestRecoveryTime != null && Object.hasOwnProperty.call(message, "earliestRecoveryTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.earliestRecoveryTime, long + 1); if (error) return "earliestRecoveryTime." + error; } @@ -45233,21 +48460,27 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeResponse} SqlInstancesGetLatestRecoveryTimeResponse */ - SqlInstancesGetLatestRecoveryTimeResponse.fromObject = function fromObject(object) { + SqlInstancesGetLatestRecoveryTimeResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeResponse(); if (object.kind != null) message.kind = String(object.kind); if (object.latestRecoveryTime != null) { - if (typeof object.latestRecoveryTime !== "object") + if (!$util.isObject(object.latestRecoveryTime)) throw TypeError(".google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeResponse.latestRecoveryTime: object expected"); - message.latestRecoveryTime = $root.google.protobuf.Timestamp.fromObject(object.latestRecoveryTime); + message.latestRecoveryTime = $root.google.protobuf.Timestamp.fromObject(object.latestRecoveryTime, long + 1); } if (object.earliestRecoveryTime != null) { - if (typeof object.earliestRecoveryTime !== "object") + if (!$util.isObject(object.earliestRecoveryTime)) throw TypeError(".google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeResponse.earliestRecoveryTime: object expected"); - message.earliestRecoveryTime = $root.google.protobuf.Timestamp.fromObject(object.earliestRecoveryTime); + message.earliestRecoveryTime = $root.google.protobuf.Timestamp.fromObject(object.earliestRecoveryTime, long + 1); } return message; }; @@ -45261,21 +48494,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesGetLatestRecoveryTimeResponse.toObject = function toObject(message, options) { + SqlInstancesGetLatestRecoveryTimeResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.latestRecoveryTime = null; object.earliestRecoveryTime = null; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.latestRecoveryTime != null && message.hasOwnProperty("latestRecoveryTime")) - object.latestRecoveryTime = $root.google.protobuf.Timestamp.toObject(message.latestRecoveryTime, options); - if (message.earliestRecoveryTime != null && message.hasOwnProperty("earliestRecoveryTime")) - object.earliestRecoveryTime = $root.google.protobuf.Timestamp.toObject(message.earliestRecoveryTime, options); + if (message.latestRecoveryTime != null && Object.hasOwnProperty.call(message, "latestRecoveryTime")) + object.latestRecoveryTime = $root.google.protobuf.Timestamp.toObject(message.latestRecoveryTime, options, q + 1); + if (message.earliestRecoveryTime != null && Object.hasOwnProperty.call(message, "earliestRecoveryTime")) + object.earliestRecoveryTime = $root.google.protobuf.Timestamp.toObject(message.earliestRecoveryTime, options, q + 1); return object; }; @@ -45340,7 +48577,7 @@ this.databaseNames = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -45494,9 +48731,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CloneContext.encode = function encode(message, writer) { + CloneContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.pitrTimestampMs != null && Object.hasOwnProperty.call(message, "pitrTimestampMs")) @@ -45504,9 +48745,9 @@ if (message.destinationInstanceName != null && Object.hasOwnProperty.call(message, "destinationInstanceName")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.destinationInstanceName); if (message.binLogCoordinates != null && Object.hasOwnProperty.call(message, "binLogCoordinates")) - $root.google.cloud.sql.v1.BinLogCoordinates.encode(message.binLogCoordinates, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1.BinLogCoordinates.encode(message.binLogCoordinates, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.pointInTime != null && Object.hasOwnProperty.call(message, "pointInTime")) - $root.google.protobuf.Timestamp.encode(message.pointInTime, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.pointInTime, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.allocatedIpRange != null && Object.hasOwnProperty.call(message, "allocatedIpRange")) writer.uint32(/* id 6, wireType 2 =*/50).string(message.allocatedIpRange); if (message.databaseNames != null && message.databaseNames.length) @@ -45517,7 +48758,7 @@ if (message.preferredSecondaryZone != null && Object.hasOwnProperty.call(message, "preferredSecondaryZone")) writer.uint32(/* id 11, wireType 2 =*/90).string(message.preferredSecondaryZone); if (message.sourceInstanceDeletionTime != null && Object.hasOwnProperty.call(message, "sourceInstanceDeletionTime")) - $root.google.protobuf.Timestamp.encode(message.sourceInstanceDeletionTime, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.sourceInstanceDeletionTime, writer.uint32(/* id 12, wireType 2 =*/98).fork(), q + 1).ldelim(); if (message.destinationProject != null && Object.hasOwnProperty.call(message, "destinationProject")) writer.uint32(/* id 13, wireType 2 =*/106).string(message.destinationProject); if (message.destinationNetwork != null && Object.hasOwnProperty.call(message, "destinationNetwork")) @@ -45535,7 +48776,7 @@ * @returns {$protobuf.Writer} Writer */ CloneContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -45549,9 +48790,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CloneContext.decode = function decode(reader, length, error) { + CloneContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.CloneContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -45571,11 +48816,11 @@ break; } case 4: { - message.binLogCoordinates = $root.google.cloud.sql.v1.BinLogCoordinates.decode(reader, reader.uint32()); + message.binLogCoordinates = $root.google.cloud.sql.v1.BinLogCoordinates.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.pointInTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.pointInTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { @@ -45597,7 +48842,7 @@ break; } case 12: { - message.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 13: { @@ -45609,7 +48854,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -45640,63 +48885,67 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CloneContext.verify = function verify(message) { + CloneContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.pitrTimestampMs != null && message.hasOwnProperty("pitrTimestampMs")) + if (message.pitrTimestampMs != null && Object.hasOwnProperty.call(message, "pitrTimestampMs")) if (!$util.isInteger(message.pitrTimestampMs) && !(message.pitrTimestampMs && $util.isInteger(message.pitrTimestampMs.low) && $util.isInteger(message.pitrTimestampMs.high))) return "pitrTimestampMs: integer|Long expected"; - if (message.destinationInstanceName != null && message.hasOwnProperty("destinationInstanceName")) + if (message.destinationInstanceName != null && Object.hasOwnProperty.call(message, "destinationInstanceName")) if (!$util.isString(message.destinationInstanceName)) return "destinationInstanceName: string expected"; - if (message.binLogCoordinates != null && message.hasOwnProperty("binLogCoordinates")) { - var error = $root.google.cloud.sql.v1.BinLogCoordinates.verify(message.binLogCoordinates); + if (message.binLogCoordinates != null && Object.hasOwnProperty.call(message, "binLogCoordinates")) { + var error = $root.google.cloud.sql.v1.BinLogCoordinates.verify(message.binLogCoordinates, long + 1); if (error) return "binLogCoordinates." + error; } - if (message.pointInTime != null && message.hasOwnProperty("pointInTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.pointInTime); + if (message.pointInTime != null && Object.hasOwnProperty.call(message, "pointInTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.pointInTime, long + 1); if (error) return "pointInTime." + error; } - if (message.allocatedIpRange != null && message.hasOwnProperty("allocatedIpRange")) + if (message.allocatedIpRange != null && Object.hasOwnProperty.call(message, "allocatedIpRange")) if (!$util.isString(message.allocatedIpRange)) return "allocatedIpRange: string expected"; - if (message.databaseNames != null && message.hasOwnProperty("databaseNames")) { + if (message.databaseNames != null && Object.hasOwnProperty.call(message, "databaseNames")) { if (!Array.isArray(message.databaseNames)) return "databaseNames: array expected"; for (var i = 0; i < message.databaseNames.length; ++i) if (!$util.isString(message.databaseNames[i])) return "databaseNames: string[] expected"; } - if (message.preferredZone != null && message.hasOwnProperty("preferredZone")) { + if (message.preferredZone != null && Object.hasOwnProperty.call(message, "preferredZone")) { properties._preferredZone = 1; if (!$util.isString(message.preferredZone)) return "preferredZone: string expected"; } - if (message.preferredSecondaryZone != null && message.hasOwnProperty("preferredSecondaryZone")) { + if (message.preferredSecondaryZone != null && Object.hasOwnProperty.call(message, "preferredSecondaryZone")) { properties._preferredSecondaryZone = 1; if (!$util.isString(message.preferredSecondaryZone)) return "preferredSecondaryZone: string expected"; } - if (message.sourceInstanceDeletionTime != null && message.hasOwnProperty("sourceInstanceDeletionTime")) { + if (message.sourceInstanceDeletionTime != null && Object.hasOwnProperty.call(message, "sourceInstanceDeletionTime")) { properties._sourceInstanceDeletionTime = 1; { - var error = $root.google.protobuf.Timestamp.verify(message.sourceInstanceDeletionTime); + var error = $root.google.protobuf.Timestamp.verify(message.sourceInstanceDeletionTime, long + 1); if (error) return "sourceInstanceDeletionTime." + error; } } - if (message.destinationProject != null && message.hasOwnProperty("destinationProject")) { + if (message.destinationProject != null && Object.hasOwnProperty.call(message, "destinationProject")) { properties._destinationProject = 1; if (!$util.isString(message.destinationProject)) return "destinationProject: string expected"; } - if (message.destinationNetwork != null && message.hasOwnProperty("destinationNetwork")) { + if (message.destinationNetwork != null && Object.hasOwnProperty.call(message, "destinationNetwork")) { properties._destinationNetwork = 1; if (!$util.isString(message.destinationNetwork)) return "destinationNetwork: string expected"; @@ -45712,15 +48961,21 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.CloneContext} CloneContext */ - CloneContext.fromObject = function fromObject(object) { + CloneContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.CloneContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.CloneContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.CloneContext(); if (object.kind != null) message.kind = String(object.kind); if (object.pitrTimestampMs != null) if ($util.Long) - (message.pitrTimestampMs = $util.Long.fromValue(object.pitrTimestampMs)).unsigned = false; + message.pitrTimestampMs = $util.Long.fromValue(object.pitrTimestampMs, false); else if (typeof object.pitrTimestampMs === "string") message.pitrTimestampMs = parseInt(object.pitrTimestampMs, 10); else if (typeof object.pitrTimestampMs === "number") @@ -45730,14 +48985,14 @@ if (object.destinationInstanceName != null) message.destinationInstanceName = String(object.destinationInstanceName); if (object.binLogCoordinates != null) { - if (typeof object.binLogCoordinates !== "object") + if (!$util.isObject(object.binLogCoordinates)) throw TypeError(".google.cloud.sql.v1.CloneContext.binLogCoordinates: object expected"); - message.binLogCoordinates = $root.google.cloud.sql.v1.BinLogCoordinates.fromObject(object.binLogCoordinates); + message.binLogCoordinates = $root.google.cloud.sql.v1.BinLogCoordinates.fromObject(object.binLogCoordinates, long + 1); } if (object.pointInTime != null) { - if (typeof object.pointInTime !== "object") + if (!$util.isObject(object.pointInTime)) throw TypeError(".google.cloud.sql.v1.CloneContext.pointInTime: object expected"); - message.pointInTime = $root.google.protobuf.Timestamp.fromObject(object.pointInTime); + message.pointInTime = $root.google.protobuf.Timestamp.fromObject(object.pointInTime, long + 1); } if (object.allocatedIpRange != null) message.allocatedIpRange = String(object.allocatedIpRange); @@ -45753,9 +49008,9 @@ if (object.preferredSecondaryZone != null) message.preferredSecondaryZone = String(object.preferredSecondaryZone); if (object.sourceInstanceDeletionTime != null) { - if (typeof object.sourceInstanceDeletionTime !== "object") + if (!$util.isObject(object.sourceInstanceDeletionTime)) throw TypeError(".google.cloud.sql.v1.CloneContext.sourceInstanceDeletionTime: object expected"); - message.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.fromObject(object.sourceInstanceDeletionTime); + message.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.fromObject(object.sourceInstanceDeletionTime, long + 1); } if (object.destinationProject != null) message.destinationProject = String(object.destinationProject); @@ -45773,9 +49028,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CloneContext.toObject = function toObject(message, options) { + CloneContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.databaseNames = []; @@ -45783,55 +49042,57 @@ object.kind = ""; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.pitrTimestampMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.pitrTimestampMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.pitrTimestampMs = options.longs === String ? "0" : 0; + object.pitrTimestampMs = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.destinationInstanceName = ""; object.binLogCoordinates = null; object.pointInTime = null; object.allocatedIpRange = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.pitrTimestampMs != null && message.hasOwnProperty("pitrTimestampMs")) - if (typeof message.pitrTimestampMs === "number") + if (message.pitrTimestampMs != null && Object.hasOwnProperty.call(message, "pitrTimestampMs")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.pitrTimestampMs = typeof message.pitrTimestampMs === "number" ? BigInt(message.pitrTimestampMs) : $util.Long.fromBits(message.pitrTimestampMs.low >>> 0, message.pitrTimestampMs.high >>> 0, false).toBigInt(); + else if (typeof message.pitrTimestampMs === "number") object.pitrTimestampMs = options.longs === String ? String(message.pitrTimestampMs) : message.pitrTimestampMs; else object.pitrTimestampMs = options.longs === String ? $util.Long.prototype.toString.call(message.pitrTimestampMs) : options.longs === Number ? new $util.LongBits(message.pitrTimestampMs.low >>> 0, message.pitrTimestampMs.high >>> 0).toNumber() : message.pitrTimestampMs; - if (message.destinationInstanceName != null && message.hasOwnProperty("destinationInstanceName")) + if (message.destinationInstanceName != null && Object.hasOwnProperty.call(message, "destinationInstanceName")) object.destinationInstanceName = message.destinationInstanceName; - if (message.binLogCoordinates != null && message.hasOwnProperty("binLogCoordinates")) - object.binLogCoordinates = $root.google.cloud.sql.v1.BinLogCoordinates.toObject(message.binLogCoordinates, options); - if (message.pointInTime != null && message.hasOwnProperty("pointInTime")) - object.pointInTime = $root.google.protobuf.Timestamp.toObject(message.pointInTime, options); - if (message.allocatedIpRange != null && message.hasOwnProperty("allocatedIpRange")) + if (message.binLogCoordinates != null && Object.hasOwnProperty.call(message, "binLogCoordinates")) + object.binLogCoordinates = $root.google.cloud.sql.v1.BinLogCoordinates.toObject(message.binLogCoordinates, options, q + 1); + if (message.pointInTime != null && Object.hasOwnProperty.call(message, "pointInTime")) + object.pointInTime = $root.google.protobuf.Timestamp.toObject(message.pointInTime, options, q + 1); + if (message.allocatedIpRange != null && Object.hasOwnProperty.call(message, "allocatedIpRange")) object.allocatedIpRange = message.allocatedIpRange; if (message.databaseNames && message.databaseNames.length) { object.databaseNames = []; for (var j = 0; j < message.databaseNames.length; ++j) object.databaseNames[j] = message.databaseNames[j]; } - if (message.preferredZone != null && message.hasOwnProperty("preferredZone")) { + if (message.preferredZone != null && Object.hasOwnProperty.call(message, "preferredZone")) { object.preferredZone = message.preferredZone; if (options.oneofs) object._preferredZone = "preferredZone"; } - if (message.preferredSecondaryZone != null && message.hasOwnProperty("preferredSecondaryZone")) { + if (message.preferredSecondaryZone != null && Object.hasOwnProperty.call(message, "preferredSecondaryZone")) { object.preferredSecondaryZone = message.preferredSecondaryZone; if (options.oneofs) object._preferredSecondaryZone = "preferredSecondaryZone"; } - if (message.sourceInstanceDeletionTime != null && message.hasOwnProperty("sourceInstanceDeletionTime")) { - object.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.toObject(message.sourceInstanceDeletionTime, options); + if (message.sourceInstanceDeletionTime != null && Object.hasOwnProperty.call(message, "sourceInstanceDeletionTime")) { + object.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.toObject(message.sourceInstanceDeletionTime, options, q + 1); if (options.oneofs) object._sourceInstanceDeletionTime = "sourceInstanceDeletionTime"; } - if (message.destinationProject != null && message.hasOwnProperty("destinationProject")) { + if (message.destinationProject != null && Object.hasOwnProperty.call(message, "destinationProject")) { object.destinationProject = message.destinationProject; if (options.oneofs) object._destinationProject = "destinationProject"; } - if (message.destinationNetwork != null && message.hasOwnProperty("destinationNetwork")) { + if (message.destinationNetwork != null && Object.hasOwnProperty.call(message, "destinationNetwork")) { object.destinationNetwork = message.destinationNetwork; if (options.oneofs) object._destinationNetwork = "destinationNetwork"; @@ -45881,6 +49142,9 @@ * @property {string|null} [allocatedIpRange] PointInTimeRestoreContext allocatedIpRange * @property {string|null} [preferredZone] PointInTimeRestoreContext preferredZone * @property {string|null} [preferredSecondaryZone] PointInTimeRestoreContext preferredSecondaryZone + * @property {google.cloud.sql.v1.IDatabaseInstance|null} [targetInstanceSettings] PointInTimeRestoreContext targetInstanceSettings + * @property {Array.|null} [targetInstanceClearSettingsFieldNames] PointInTimeRestoreContext targetInstanceClearSettingsFieldNames + * @property {string|null} [region] PointInTimeRestoreContext region */ /** @@ -45892,9 +49156,10 @@ * @param {google.cloud.sql.v1.IPointInTimeRestoreContext=} [properties] Properties to set */ function PointInTimeRestoreContext(properties) { + this.targetInstanceClearSettingsFieldNames = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -45954,6 +49219,30 @@ */ PointInTimeRestoreContext.prototype.preferredSecondaryZone = null; + /** + * PointInTimeRestoreContext targetInstanceSettings. + * @member {google.cloud.sql.v1.IDatabaseInstance|null|undefined} targetInstanceSettings + * @memberof google.cloud.sql.v1.PointInTimeRestoreContext + * @instance + */ + PointInTimeRestoreContext.prototype.targetInstanceSettings = null; + + /** + * PointInTimeRestoreContext targetInstanceClearSettingsFieldNames. + * @member {Array.} targetInstanceClearSettingsFieldNames + * @memberof google.cloud.sql.v1.PointInTimeRestoreContext + * @instance + */ + PointInTimeRestoreContext.prototype.targetInstanceClearSettingsFieldNames = $util.emptyArray; + + /** + * PointInTimeRestoreContext region. + * @member {string|null|undefined} region + * @memberof google.cloud.sql.v1.PointInTimeRestoreContext + * @instance + */ + PointInTimeRestoreContext.prototype.region = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -45993,6 +49282,12 @@ set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(PointInTimeRestoreContext.prototype, "_region", { + get: $util.oneOfGetter($oneOfFields = ["region"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new PointInTimeRestoreContext instance using the specified properties. * @function create @@ -46014,13 +49309,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PointInTimeRestoreContext.encode = function encode(message, writer) { + PointInTimeRestoreContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.datasource != null && Object.hasOwnProperty.call(message, "datasource")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.datasource); if (message.pointInTime != null && Object.hasOwnProperty.call(message, "pointInTime")) - $root.google.protobuf.Timestamp.encode(message.pointInTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.pointInTime, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.targetInstance != null && Object.hasOwnProperty.call(message, "targetInstance")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.targetInstance); if (message.privateNetwork != null && Object.hasOwnProperty.call(message, "privateNetwork")) @@ -46031,6 +49330,13 @@ writer.uint32(/* id 6, wireType 2 =*/50).string(message.preferredZone); if (message.preferredSecondaryZone != null && Object.hasOwnProperty.call(message, "preferredSecondaryZone")) writer.uint32(/* id 9, wireType 2 =*/74).string(message.preferredSecondaryZone); + if (message.targetInstanceSettings != null && Object.hasOwnProperty.call(message, "targetInstanceSettings")) + $root.google.cloud.sql.v1.DatabaseInstance.encode(message.targetInstanceSettings, writer.uint32(/* id 11, wireType 2 =*/90).fork(), q + 1).ldelim(); + if (message.targetInstanceClearSettingsFieldNames != null && message.targetInstanceClearSettingsFieldNames.length) + for (var i = 0; i < message.targetInstanceClearSettingsFieldNames.length; ++i) + writer.uint32(/* id 12, wireType 2 =*/98).string(message.targetInstanceClearSettingsFieldNames[i]); + if (message.region != null && Object.hasOwnProperty.call(message, "region")) + writer.uint32(/* id 13, wireType 2 =*/106).string(message.region); return writer; }; @@ -46044,7 +49350,7 @@ * @returns {$protobuf.Writer} Writer */ PointInTimeRestoreContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -46058,9 +49364,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PointInTimeRestoreContext.decode = function decode(reader, length, error) { + PointInTimeRestoreContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.PointInTimeRestoreContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -46072,7 +49382,7 @@ break; } case 2: { - message.pointInTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.pointInTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -46095,8 +49405,22 @@ message.preferredSecondaryZone = reader.string(); break; } + case 11: { + message.targetInstanceSettings = $root.google.cloud.sql.v1.DatabaseInstance.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + case 12: { + if (!(message.targetInstanceClearSettingsFieldNames && message.targetInstanceClearSettingsFieldNames.length)) + message.targetInstanceClearSettingsFieldNames = []; + message.targetInstanceClearSettingsFieldNames.push(reader.string()); + break; + } + case 13: { + message.region = reader.string(); + break; + } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -46127,45 +49451,66 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PointInTimeRestoreContext.verify = function verify(message) { + PointInTimeRestoreContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.datasource != null && message.hasOwnProperty("datasource")) { + if (message.datasource != null && Object.hasOwnProperty.call(message, "datasource")) { properties._datasource = 1; if (!$util.isString(message.datasource)) return "datasource: string expected"; } - if (message.pointInTime != null && message.hasOwnProperty("pointInTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.pointInTime); + if (message.pointInTime != null && Object.hasOwnProperty.call(message, "pointInTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.pointInTime, long + 1); if (error) return "pointInTime." + error; } - if (message.targetInstance != null && message.hasOwnProperty("targetInstance")) { + if (message.targetInstance != null && Object.hasOwnProperty.call(message, "targetInstance")) { properties._targetInstance = 1; if (!$util.isString(message.targetInstance)) return "targetInstance: string expected"; } - if (message.privateNetwork != null && message.hasOwnProperty("privateNetwork")) { + if (message.privateNetwork != null && Object.hasOwnProperty.call(message, "privateNetwork")) { properties._privateNetwork = 1; if (!$util.isString(message.privateNetwork)) return "privateNetwork: string expected"; } - if (message.allocatedIpRange != null && message.hasOwnProperty("allocatedIpRange")) { + if (message.allocatedIpRange != null && Object.hasOwnProperty.call(message, "allocatedIpRange")) { properties._allocatedIpRange = 1; if (!$util.isString(message.allocatedIpRange)) return "allocatedIpRange: string expected"; } - if (message.preferredZone != null && message.hasOwnProperty("preferredZone")) { + if (message.preferredZone != null && Object.hasOwnProperty.call(message, "preferredZone")) { properties._preferredZone = 1; if (!$util.isString(message.preferredZone)) return "preferredZone: string expected"; } - if (message.preferredSecondaryZone != null && message.hasOwnProperty("preferredSecondaryZone")) { + if (message.preferredSecondaryZone != null && Object.hasOwnProperty.call(message, "preferredSecondaryZone")) { properties._preferredSecondaryZone = 1; if (!$util.isString(message.preferredSecondaryZone)) return "preferredSecondaryZone: string expected"; } + if (message.targetInstanceSettings != null && Object.hasOwnProperty.call(message, "targetInstanceSettings")) { + var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.targetInstanceSettings, long + 1); + if (error) + return "targetInstanceSettings." + error; + } + if (message.targetInstanceClearSettingsFieldNames != null && Object.hasOwnProperty.call(message, "targetInstanceClearSettingsFieldNames")) { + if (!Array.isArray(message.targetInstanceClearSettingsFieldNames)) + return "targetInstanceClearSettingsFieldNames: array expected"; + for (var i = 0; i < message.targetInstanceClearSettingsFieldNames.length; ++i) + if (!$util.isString(message.targetInstanceClearSettingsFieldNames[i])) + return "targetInstanceClearSettingsFieldNames: string[] expected"; + } + if (message.region != null && Object.hasOwnProperty.call(message, "region")) { + properties._region = 1; + if (!$util.isString(message.region)) + return "region: string expected"; + } return null; }; @@ -46177,16 +49522,22 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.PointInTimeRestoreContext} PointInTimeRestoreContext */ - PointInTimeRestoreContext.fromObject = function fromObject(object) { + PointInTimeRestoreContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.PointInTimeRestoreContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.PointInTimeRestoreContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.PointInTimeRestoreContext(); if (object.datasource != null) message.datasource = String(object.datasource); if (object.pointInTime != null) { - if (typeof object.pointInTime !== "object") + if (!$util.isObject(object.pointInTime)) throw TypeError(".google.cloud.sql.v1.PointInTimeRestoreContext.pointInTime: object expected"); - message.pointInTime = $root.google.protobuf.Timestamp.fromObject(object.pointInTime); + message.pointInTime = $root.google.protobuf.Timestamp.fromObject(object.pointInTime, long + 1); } if (object.targetInstance != null) message.targetInstance = String(object.targetInstance); @@ -46198,6 +49549,20 @@ message.preferredZone = String(object.preferredZone); if (object.preferredSecondaryZone != null) message.preferredSecondaryZone = String(object.preferredSecondaryZone); + if (object.targetInstanceSettings != null) { + if (!$util.isObject(object.targetInstanceSettings)) + throw TypeError(".google.cloud.sql.v1.PointInTimeRestoreContext.targetInstanceSettings: object expected"); + message.targetInstanceSettings = $root.google.cloud.sql.v1.DatabaseInstance.fromObject(object.targetInstanceSettings, long + 1); + } + if (object.targetInstanceClearSettingsFieldNames) { + if (!Array.isArray(object.targetInstanceClearSettingsFieldNames)) + throw TypeError(".google.cloud.sql.v1.PointInTimeRestoreContext.targetInstanceClearSettingsFieldNames: array expected"); + message.targetInstanceClearSettingsFieldNames = []; + for (var i = 0; i < object.targetInstanceClearSettingsFieldNames.length; ++i) + message.targetInstanceClearSettingsFieldNames[i] = String(object.targetInstanceClearSettingsFieldNames[i]); + } + if (object.region != null) + message.region = String(object.region); return message; }; @@ -46210,44 +49575,64 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PointInTimeRestoreContext.toObject = function toObject(message, options) { + PointInTimeRestoreContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (options.defaults) + if (options.arrays || options.defaults) + object.targetInstanceClearSettingsFieldNames = []; + if (options.defaults) { object.pointInTime = null; - if (message.datasource != null && message.hasOwnProperty("datasource")) { + object.targetInstanceSettings = null; + } + if (message.datasource != null && Object.hasOwnProperty.call(message, "datasource")) { object.datasource = message.datasource; if (options.oneofs) object._datasource = "datasource"; } - if (message.pointInTime != null && message.hasOwnProperty("pointInTime")) - object.pointInTime = $root.google.protobuf.Timestamp.toObject(message.pointInTime, options); - if (message.targetInstance != null && message.hasOwnProperty("targetInstance")) { + if (message.pointInTime != null && Object.hasOwnProperty.call(message, "pointInTime")) + object.pointInTime = $root.google.protobuf.Timestamp.toObject(message.pointInTime, options, q + 1); + if (message.targetInstance != null && Object.hasOwnProperty.call(message, "targetInstance")) { object.targetInstance = message.targetInstance; if (options.oneofs) object._targetInstance = "targetInstance"; } - if (message.privateNetwork != null && message.hasOwnProperty("privateNetwork")) { + if (message.privateNetwork != null && Object.hasOwnProperty.call(message, "privateNetwork")) { object.privateNetwork = message.privateNetwork; if (options.oneofs) object._privateNetwork = "privateNetwork"; } - if (message.allocatedIpRange != null && message.hasOwnProperty("allocatedIpRange")) { + if (message.allocatedIpRange != null && Object.hasOwnProperty.call(message, "allocatedIpRange")) { object.allocatedIpRange = message.allocatedIpRange; if (options.oneofs) object._allocatedIpRange = "allocatedIpRange"; } - if (message.preferredZone != null && message.hasOwnProperty("preferredZone")) { + if (message.preferredZone != null && Object.hasOwnProperty.call(message, "preferredZone")) { object.preferredZone = message.preferredZone; if (options.oneofs) object._preferredZone = "preferredZone"; } - if (message.preferredSecondaryZone != null && message.hasOwnProperty("preferredSecondaryZone")) { + if (message.preferredSecondaryZone != null && Object.hasOwnProperty.call(message, "preferredSecondaryZone")) { object.preferredSecondaryZone = message.preferredSecondaryZone; if (options.oneofs) object._preferredSecondaryZone = "preferredSecondaryZone"; } + if (message.targetInstanceSettings != null && Object.hasOwnProperty.call(message, "targetInstanceSettings")) + object.targetInstanceSettings = $root.google.cloud.sql.v1.DatabaseInstance.toObject(message.targetInstanceSettings, options, q + 1); + if (message.targetInstanceClearSettingsFieldNames && message.targetInstanceClearSettingsFieldNames.length) { + object.targetInstanceClearSettingsFieldNames = []; + for (var j = 0; j < message.targetInstanceClearSettingsFieldNames.length; ++j) + object.targetInstanceClearSettingsFieldNames[j] = message.targetInstanceClearSettingsFieldNames[j]; + } + if (message.region != null && Object.hasOwnProperty.call(message, "region")) { + object.region = message.region; + if (options.oneofs) + object._region = "region"; + } return object; }; @@ -46302,7 +49687,7 @@ function BinLogCoordinates(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -46351,9 +49736,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BinLogCoordinates.encode = function encode(message, writer) { + BinLogCoordinates.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.binLogFileName != null && Object.hasOwnProperty.call(message, "binLogFileName")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.binLogFileName); if (message.binLogPosition != null && Object.hasOwnProperty.call(message, "binLogPosition")) @@ -46373,7 +49762,7 @@ * @returns {$protobuf.Writer} Writer */ BinLogCoordinates.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -46387,9 +49776,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BinLogCoordinates.decode = function decode(reader, length, error) { + BinLogCoordinates.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.BinLogCoordinates(); while (reader.pos < end) { var tag = reader.uint32(); @@ -46409,7 +49802,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -46440,16 +49833,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BinLogCoordinates.verify = function verify(message) { + BinLogCoordinates.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.binLogFileName != null && message.hasOwnProperty("binLogFileName")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.binLogFileName != null && Object.hasOwnProperty.call(message, "binLogFileName")) if (!$util.isString(message.binLogFileName)) return "binLogFileName: string expected"; - if (message.binLogPosition != null && message.hasOwnProperty("binLogPosition")) + if (message.binLogPosition != null && Object.hasOwnProperty.call(message, "binLogPosition")) if (!$util.isInteger(message.binLogPosition) && !(message.binLogPosition && $util.isInteger(message.binLogPosition.low) && $util.isInteger(message.binLogPosition.high))) return "binLogPosition: integer|Long expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -46463,15 +49860,21 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.BinLogCoordinates} BinLogCoordinates */ - BinLogCoordinates.fromObject = function fromObject(object) { + BinLogCoordinates.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.BinLogCoordinates) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.BinLogCoordinates: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.BinLogCoordinates(); if (object.binLogFileName != null) message.binLogFileName = String(object.binLogFileName); if (object.binLogPosition != null) if ($util.Long) - (message.binLogPosition = $util.Long.fromValue(object.binLogPosition)).unsigned = false; + message.binLogPosition = $util.Long.fromValue(object.binLogPosition, false); else if (typeof object.binLogPosition === "string") message.binLogPosition = parseInt(object.binLogPosition, 10); else if (typeof object.binLogPosition === "number") @@ -46492,27 +49895,33 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BinLogCoordinates.toObject = function toObject(message, options) { + BinLogCoordinates.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.binLogFileName = ""; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.binLogPosition = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.binLogPosition = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.binLogPosition = options.longs === String ? "0" : 0; + object.binLogPosition = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.kind = ""; } - if (message.binLogFileName != null && message.hasOwnProperty("binLogFileName")) + if (message.binLogFileName != null && Object.hasOwnProperty.call(message, "binLogFileName")) object.binLogFileName = message.binLogFileName; - if (message.binLogPosition != null && message.hasOwnProperty("binLogPosition")) - if (typeof message.binLogPosition === "number") + if (message.binLogPosition != null && Object.hasOwnProperty.call(message, "binLogPosition")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.binLogPosition = typeof message.binLogPosition === "number" ? BigInt(message.binLogPosition) : $util.Long.fromBits(message.binLogPosition.low >>> 0, message.binLogPosition.high >>> 0, false).toBigInt(); + else if (typeof message.binLogPosition === "number") object.binLogPosition = options.longs === String ? String(message.binLogPosition) : message.binLogPosition; else object.binLogPosition = options.longs === String ? $util.Long.prototype.toString.call(message.binLogPosition) : options.longs === Number ? new $util.LongBits(message.binLogPosition.low >>> 0, message.binLogPosition.high >>> 0).toNumber() : message.binLogPosition; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -46624,7 +50033,7 @@ this.dnsNames = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -47120,9 +50529,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DatabaseInstance.encode = function encode(message, writer) { + DatabaseInstance.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.state != null && Object.hasOwnProperty.call(message, "state")) @@ -47130,25 +50543,25 @@ if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) writer.uint32(/* id 3, wireType 0 =*/24).int32(message.databaseVersion); if (message.settings != null && Object.hasOwnProperty.call(message, "settings")) - $root.google.cloud.sql.v1.Settings.encode(message.settings, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1.Settings.encode(message.settings, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) writer.uint32(/* id 5, wireType 2 =*/42).string(message.etag); if (message.failoverReplica != null && Object.hasOwnProperty.call(message, "failoverReplica")) - $root.google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica.encode(message.failoverReplica, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica.encode(message.failoverReplica, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.masterInstanceName != null && Object.hasOwnProperty.call(message, "masterInstanceName")) writer.uint32(/* id 7, wireType 2 =*/58).string(message.masterInstanceName); if (message.replicaNames != null && message.replicaNames.length) for (var i = 0; i < message.replicaNames.length; ++i) writer.uint32(/* id 8, wireType 2 =*/66).string(message.replicaNames[i]); if (message.maxDiskSize != null && Object.hasOwnProperty.call(message, "maxDiskSize")) - $root.google.protobuf.Int64Value.encode(message.maxDiskSize, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.maxDiskSize, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); if (message.currentDiskSize != null && Object.hasOwnProperty.call(message, "currentDiskSize")) - $root.google.protobuf.Int64Value.encode(message.currentDiskSize, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.currentDiskSize, writer.uint32(/* id 10, wireType 2 =*/82).fork(), q + 1).ldelim(); if (message.ipAddresses != null && message.ipAddresses.length) for (var i = 0; i < message.ipAddresses.length; ++i) - $root.google.cloud.sql.v1.IpMapping.encode(message.ipAddresses[i], writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim(); + $root.google.cloud.sql.v1.IpMapping.encode(message.ipAddresses[i], writer.uint32(/* id 11, wireType 2 =*/90).fork(), q + 1).ldelim(); if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) - $root.google.cloud.sql.v1.SslCert.encode(message.serverCaCert, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim(); + $root.google.cloud.sql.v1.SslCert.encode(message.serverCaCert, writer.uint32(/* id 12, wireType 2 =*/98).fork(), q + 1).ldelim(); if (message.instanceType != null && Object.hasOwnProperty.call(message, "instanceType")) writer.uint32(/* id 13, wireType 0 =*/104).int32(message.instanceType); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -47158,9 +50571,9 @@ if (message.serviceAccountEmailAddress != null && Object.hasOwnProperty.call(message, "serviceAccountEmailAddress")) writer.uint32(/* id 16, wireType 2 =*/130).string(message.serviceAccountEmailAddress); if (message.onPremisesConfiguration != null && Object.hasOwnProperty.call(message, "onPremisesConfiguration")) - $root.google.cloud.sql.v1.OnPremisesConfiguration.encode(message.onPremisesConfiguration, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); + $root.google.cloud.sql.v1.OnPremisesConfiguration.encode(message.onPremisesConfiguration, writer.uint32(/* id 17, wireType 2 =*/138).fork(), q + 1).ldelim(); if (message.replicaConfiguration != null && Object.hasOwnProperty.call(message, "replicaConfiguration")) - $root.google.cloud.sql.v1.ReplicaConfiguration.encode(message.replicaConfiguration, writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim(); + $root.google.cloud.sql.v1.ReplicaConfiguration.encode(message.replicaConfiguration, writer.uint32(/* id 18, wireType 2 =*/146).fork(), q + 1).ldelim(); if (message.backendType != null && Object.hasOwnProperty.call(message, "backendType")) writer.uint32(/* id 19, wireType 0 =*/152).int32(message.backendType); if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) @@ -47180,21 +50593,21 @@ if (message.gceZone != null && Object.hasOwnProperty.call(message, "gceZone")) writer.uint32(/* id 25, wireType 2 =*/202).string(message.gceZone); if (message.diskEncryptionConfiguration != null && Object.hasOwnProperty.call(message, "diskEncryptionConfiguration")) - $root.google.cloud.sql.v1.DiskEncryptionConfiguration.encode(message.diskEncryptionConfiguration, writer.uint32(/* id 26, wireType 2 =*/210).fork()).ldelim(); + $root.google.cloud.sql.v1.DiskEncryptionConfiguration.encode(message.diskEncryptionConfiguration, writer.uint32(/* id 26, wireType 2 =*/210).fork(), q + 1).ldelim(); if (message.diskEncryptionStatus != null && Object.hasOwnProperty.call(message, "diskEncryptionStatus")) - $root.google.cloud.sql.v1.DiskEncryptionStatus.encode(message.diskEncryptionStatus, writer.uint32(/* id 27, wireType 2 =*/218).fork()).ldelim(); + $root.google.cloud.sql.v1.DiskEncryptionStatus.encode(message.diskEncryptionStatus, writer.uint32(/* id 27, wireType 2 =*/218).fork(), q + 1).ldelim(); if (message.rootPassword != null && Object.hasOwnProperty.call(message, "rootPassword")) writer.uint32(/* id 29, wireType 2 =*/234).string(message.rootPassword); if (message.scheduledMaintenance != null && Object.hasOwnProperty.call(message, "scheduledMaintenance")) - $root.google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance.encode(message.scheduledMaintenance, writer.uint32(/* id 30, wireType 2 =*/242).fork()).ldelim(); + $root.google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance.encode(message.scheduledMaintenance, writer.uint32(/* id 30, wireType 2 =*/242).fork(), q + 1).ldelim(); if (message.secondaryGceZone != null && Object.hasOwnProperty.call(message, "secondaryGceZone")) writer.uint32(/* id 34, wireType 2 =*/274).string(message.secondaryGceZone); if (message.satisfiesPzs != null && Object.hasOwnProperty.call(message, "satisfiesPzs")) - $root.google.protobuf.BoolValue.encode(message.satisfiesPzs, writer.uint32(/* id 35, wireType 2 =*/282).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.satisfiesPzs, writer.uint32(/* id 35, wireType 2 =*/282).fork(), q + 1).ldelim(); if (message.outOfDiskReport != null && Object.hasOwnProperty.call(message, "outOfDiskReport")) - $root.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport.encode(message.outOfDiskReport, writer.uint32(/* id 38, wireType 2 =*/306).fork()).ldelim(); + $root.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport.encode(message.outOfDiskReport, writer.uint32(/* id 38, wireType 2 =*/306).fork(), q + 1).ldelim(); if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) - $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 39, wireType 2 =*/314).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 39, wireType 2 =*/314).fork(), q + 1).ldelim(); if (message.databaseInstalledVersion != null && Object.hasOwnProperty.call(message, "databaseInstalledVersion")) writer.uint32(/* id 40, wireType 2 =*/322).string(message.databaseInstalledVersion); if (message.availableMaintenanceVersions != null && message.availableMaintenanceVersions.length) @@ -47204,7 +50617,7 @@ writer.uint32(/* id 42, wireType 2 =*/338).string(message.maintenanceVersion); if (message.upgradableDatabaseVersions != null && message.upgradableDatabaseVersions.length) for (var i = 0; i < message.upgradableDatabaseVersions.length; ++i) - $root.google.cloud.sql.v1.AvailableDatabaseVersion.encode(message.upgradableDatabaseVersions[i], writer.uint32(/* id 45, wireType 2 =*/362).fork()).ldelim(); + $root.google.cloud.sql.v1.AvailableDatabaseVersion.encode(message.upgradableDatabaseVersions[i], writer.uint32(/* id 45, wireType 2 =*/362).fork(), q + 1).ldelim(); if (message.sqlNetworkArchitecture != null && Object.hasOwnProperty.call(message, "sqlNetworkArchitecture")) writer.uint32(/* id 47, wireType 0 =*/376).int32(message.sqlNetworkArchitecture); if (message.pscServiceAttachmentLink != null && Object.hasOwnProperty.call(message, "pscServiceAttachmentLink")) @@ -47216,15 +50629,15 @@ if (message.writeEndpoint != null && Object.hasOwnProperty.call(message, "writeEndpoint")) writer.uint32(/* id 52, wireType 2 =*/418).string(message.writeEndpoint); if (message.replicationCluster != null && Object.hasOwnProperty.call(message, "replicationCluster")) - $root.google.cloud.sql.v1.ReplicationCluster.encode(message.replicationCluster, writer.uint32(/* id 54, wireType 2 =*/434).fork()).ldelim(); + $root.google.cloud.sql.v1.ReplicationCluster.encode(message.replicationCluster, writer.uint32(/* id 54, wireType 2 =*/434).fork(), q + 1).ldelim(); if (message.geminiConfig != null && Object.hasOwnProperty.call(message, "geminiConfig")) - $root.google.cloud.sql.v1.GeminiInstanceConfig.encode(message.geminiConfig, writer.uint32(/* id 55, wireType 2 =*/442).fork()).ldelim(); + $root.google.cloud.sql.v1.GeminiInstanceConfig.encode(message.geminiConfig, writer.uint32(/* id 55, wireType 2 =*/442).fork(), q + 1).ldelim(); if (message.satisfiesPzi != null && Object.hasOwnProperty.call(message, "satisfiesPzi")) - $root.google.protobuf.BoolValue.encode(message.satisfiesPzi, writer.uint32(/* id 56, wireType 2 =*/450).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.satisfiesPzi, writer.uint32(/* id 56, wireType 2 =*/450).fork(), q + 1).ldelim(); if (message.switchTransactionLogsToCloudStorageEnabled != null && Object.hasOwnProperty.call(message, "switchTransactionLogsToCloudStorageEnabled")) - $root.google.protobuf.BoolValue.encode(message.switchTransactionLogsToCloudStorageEnabled, writer.uint32(/* id 57, wireType 2 =*/458).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.switchTransactionLogsToCloudStorageEnabled, writer.uint32(/* id 57, wireType 2 =*/458).fork(), q + 1).ldelim(); if (message.includeReplicasForMajorVersionUpgrade != null && Object.hasOwnProperty.call(message, "includeReplicasForMajorVersionUpgrade")) - $root.google.protobuf.BoolValue.encode(message.includeReplicasForMajorVersionUpgrade, writer.uint32(/* id 59, wireType 2 =*/474).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.includeReplicasForMajorVersionUpgrade, writer.uint32(/* id 59, wireType 2 =*/474).fork(), q + 1).ldelim(); if (message.tags != null && Object.hasOwnProperty.call(message, "tags")) for (var keys = Object.keys(message.tags), i = 0; i < keys.length; ++i) writer.uint32(/* id 60, wireType 2 =*/482).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.tags[keys[i]]).ldelim(); @@ -47232,10 +50645,10 @@ writer.uint32(/* id 63, wireType 0 =*/504).int32(message.nodeCount); if (message.nodes != null && message.nodes.length) for (var i = 0; i < message.nodes.length; ++i) - $root.google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig.encode(message.nodes[i], writer.uint32(/* id 64, wireType 2 =*/514).fork()).ldelim(); + $root.google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig.encode(message.nodes[i], writer.uint32(/* id 64, wireType 2 =*/514).fork(), q + 1).ldelim(); if (message.dnsNames != null && message.dnsNames.length) for (var i = 0; i < message.dnsNames.length; ++i) - $root.google.cloud.sql.v1.DnsNameMapping.encode(message.dnsNames[i], writer.uint32(/* id 67, wireType 2 =*/538).fork()).ldelim(); + $root.google.cloud.sql.v1.DnsNameMapping.encode(message.dnsNames[i], writer.uint32(/* id 67, wireType 2 =*/538).fork(), q + 1).ldelim(); return writer; }; @@ -47249,7 +50662,7 @@ * @returns {$protobuf.Writer} Writer */ DatabaseInstance.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -47263,9 +50676,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DatabaseInstance.decode = function decode(reader, length, error) { + DatabaseInstance.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.DatabaseInstance(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -47285,7 +50702,7 @@ break; } case 4: { - message.settings = $root.google.cloud.sql.v1.Settings.decode(reader, reader.uint32()); + message.settings = $root.google.cloud.sql.v1.Settings.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -47293,7 +50710,7 @@ break; } case 6: { - message.failoverReplica = $root.google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica.decode(reader, reader.uint32()); + message.failoverReplica = $root.google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { @@ -47307,21 +50724,21 @@ break; } case 9: { - message.maxDiskSize = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.maxDiskSize = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { - message.currentDiskSize = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.currentDiskSize = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { if (!(message.ipAddresses && message.ipAddresses.length)) message.ipAddresses = []; - message.ipAddresses.push($root.google.cloud.sql.v1.IpMapping.decode(reader, reader.uint32())); + message.ipAddresses.push($root.google.cloud.sql.v1.IpMapping.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 12: { - message.serverCaCert = $root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32()); + message.serverCaCert = $root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32(), undefined, long + 1); break; } case 13: { @@ -47341,11 +50758,11 @@ break; } case 17: { - message.onPremisesConfiguration = $root.google.cloud.sql.v1.OnPremisesConfiguration.decode(reader, reader.uint32()); + message.onPremisesConfiguration = $root.google.cloud.sql.v1.OnPremisesConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 18: { - message.replicaConfiguration = $root.google.cloud.sql.v1.ReplicaConfiguration.decode(reader, reader.uint32()); + message.replicaConfiguration = $root.google.cloud.sql.v1.ReplicaConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 19: { @@ -47388,11 +50805,11 @@ break; } case 26: { - message.diskEncryptionConfiguration = $root.google.cloud.sql.v1.DiskEncryptionConfiguration.decode(reader, reader.uint32()); + message.diskEncryptionConfiguration = $root.google.cloud.sql.v1.DiskEncryptionConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 27: { - message.diskEncryptionStatus = $root.google.cloud.sql.v1.DiskEncryptionStatus.decode(reader, reader.uint32()); + message.diskEncryptionStatus = $root.google.cloud.sql.v1.DiskEncryptionStatus.decode(reader, reader.uint32(), undefined, long + 1); break; } case 29: { @@ -47400,11 +50817,11 @@ break; } case 30: { - message.scheduledMaintenance = $root.google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance.decode(reader, reader.uint32()); + message.scheduledMaintenance = $root.google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance.decode(reader, reader.uint32(), undefined, long + 1); break; } case 35: { - message.satisfiesPzs = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.satisfiesPzs = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 40: { @@ -47412,11 +50829,11 @@ break; } case 38: { - message.outOfDiskReport = $root.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport.decode(reader, reader.uint32()); + message.outOfDiskReport = $root.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport.decode(reader, reader.uint32(), undefined, long + 1); break; } case 39: { - message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 41: { @@ -47432,7 +50849,7 @@ case 45: { if (!(message.upgradableDatabaseVersions && message.upgradableDatabaseVersions.length)) message.upgradableDatabaseVersions = []; - message.upgradableDatabaseVersions.push($root.google.cloud.sql.v1.AvailableDatabaseVersion.decode(reader, reader.uint32())); + message.upgradableDatabaseVersions.push($root.google.cloud.sql.v1.AvailableDatabaseVersion.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 47: { @@ -47456,23 +50873,23 @@ break; } case 54: { - message.replicationCluster = $root.google.cloud.sql.v1.ReplicationCluster.decode(reader, reader.uint32()); + message.replicationCluster = $root.google.cloud.sql.v1.ReplicationCluster.decode(reader, reader.uint32(), undefined, long + 1); break; } case 55: { - message.geminiConfig = $root.google.cloud.sql.v1.GeminiInstanceConfig.decode(reader, reader.uint32()); + message.geminiConfig = $root.google.cloud.sql.v1.GeminiInstanceConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 56: { - message.satisfiesPzi = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.satisfiesPzi = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 57: { - message.switchTransactionLogsToCloudStorageEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.switchTransactionLogsToCloudStorageEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 59: { - message.includeReplicasForMajorVersionUpgrade = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.includeReplicasForMajorVersionUpgrade = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 60: { @@ -47491,10 +50908,12 @@ value = reader.string(); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.tags, key); message.tags[key] = value; break; } @@ -47505,17 +50924,17 @@ case 64: { if (!(message.nodes && message.nodes.length)) message.nodes = []; - message.nodes.push($root.google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig.decode(reader, reader.uint32())); + message.nodes.push($root.google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 67: { if (!(message.dnsNames && message.dnsNames.length)) message.dnsNames = []; - message.dnsNames.push($root.google.cloud.sql.v1.DnsNameMapping.decode(reader, reader.uint32())); + message.dnsNames.push($root.google.cloud.sql.v1.DnsNameMapping.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -47546,14 +50965,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DatabaseInstance.verify = function verify(message) { + DatabaseInstance.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.state != null && message.hasOwnProperty("state")) + if (message.state != null && Object.hasOwnProperty.call(message, "state")) switch (message.state) { default: return "state: enum value expected"; @@ -47568,7 +50991,7 @@ case 8: break; } - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) switch (message.databaseVersion) { default: return "databaseVersion: enum value expected"; @@ -47615,6 +51038,7 @@ case 272: case 408: case 557: + case 684: case 26: case 27: case 28: @@ -47623,56 +51047,59 @@ case 200: case 201: case 202: + case 549: + case 550: + case 551: break; } - if (message.settings != null && message.hasOwnProperty("settings")) { - var error = $root.google.cloud.sql.v1.Settings.verify(message.settings); + if (message.settings != null && Object.hasOwnProperty.call(message, "settings")) { + var error = $root.google.cloud.sql.v1.Settings.verify(message.settings, long + 1); if (error) return "settings." + error; } - if (message.etag != null && message.hasOwnProperty("etag")) + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) if (!$util.isString(message.etag)) return "etag: string expected"; - if (message.failoverReplica != null && message.hasOwnProperty("failoverReplica")) { - var error = $root.google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica.verify(message.failoverReplica); + if (message.failoverReplica != null && Object.hasOwnProperty.call(message, "failoverReplica")) { + var error = $root.google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica.verify(message.failoverReplica, long + 1); if (error) return "failoverReplica." + error; } - if (message.masterInstanceName != null && message.hasOwnProperty("masterInstanceName")) + if (message.masterInstanceName != null && Object.hasOwnProperty.call(message, "masterInstanceName")) if (!$util.isString(message.masterInstanceName)) return "masterInstanceName: string expected"; - if (message.replicaNames != null && message.hasOwnProperty("replicaNames")) { + if (message.replicaNames != null && Object.hasOwnProperty.call(message, "replicaNames")) { if (!Array.isArray(message.replicaNames)) return "replicaNames: array expected"; for (var i = 0; i < message.replicaNames.length; ++i) if (!$util.isString(message.replicaNames[i])) return "replicaNames: string[] expected"; } - if (message.maxDiskSize != null && message.hasOwnProperty("maxDiskSize")) { - var error = $root.google.protobuf.Int64Value.verify(message.maxDiskSize); + if (message.maxDiskSize != null && Object.hasOwnProperty.call(message, "maxDiskSize")) { + var error = $root.google.protobuf.Int64Value.verify(message.maxDiskSize, long + 1); if (error) return "maxDiskSize." + error; } - if (message.currentDiskSize != null && message.hasOwnProperty("currentDiskSize")) { - var error = $root.google.protobuf.Int64Value.verify(message.currentDiskSize); + if (message.currentDiskSize != null && Object.hasOwnProperty.call(message, "currentDiskSize")) { + var error = $root.google.protobuf.Int64Value.verify(message.currentDiskSize, long + 1); if (error) return "currentDiskSize." + error; } - if (message.ipAddresses != null && message.hasOwnProperty("ipAddresses")) { + if (message.ipAddresses != null && Object.hasOwnProperty.call(message, "ipAddresses")) { if (!Array.isArray(message.ipAddresses)) return "ipAddresses: array expected"; for (var i = 0; i < message.ipAddresses.length; ++i) { - var error = $root.google.cloud.sql.v1.IpMapping.verify(message.ipAddresses[i]); + var error = $root.google.cloud.sql.v1.IpMapping.verify(message.ipAddresses[i], long + 1); if (error) return "ipAddresses." + error; } } - if (message.serverCaCert != null && message.hasOwnProperty("serverCaCert")) { - var error = $root.google.cloud.sql.v1.SslCert.verify(message.serverCaCert); + if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) { + var error = $root.google.cloud.sql.v1.SslCert.verify(message.serverCaCert, long + 1); if (error) return "serverCaCert." + error; } - if (message.instanceType != null && message.hasOwnProperty("instanceType")) + if (message.instanceType != null && Object.hasOwnProperty.call(message, "instanceType")) switch (message.instanceType) { default: return "instanceType: enum value expected"; @@ -47683,26 +51110,26 @@ case 5: break; } - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.ipv6Address != null && message.hasOwnProperty("ipv6Address")) + if (message.ipv6Address != null && Object.hasOwnProperty.call(message, "ipv6Address")) if (!$util.isString(message.ipv6Address)) return "ipv6Address: string expected"; - if (message.serviceAccountEmailAddress != null && message.hasOwnProperty("serviceAccountEmailAddress")) + if (message.serviceAccountEmailAddress != null && Object.hasOwnProperty.call(message, "serviceAccountEmailAddress")) if (!$util.isString(message.serviceAccountEmailAddress)) return "serviceAccountEmailAddress: string expected"; - if (message.onPremisesConfiguration != null && message.hasOwnProperty("onPremisesConfiguration")) { - var error = $root.google.cloud.sql.v1.OnPremisesConfiguration.verify(message.onPremisesConfiguration); + if (message.onPremisesConfiguration != null && Object.hasOwnProperty.call(message, "onPremisesConfiguration")) { + var error = $root.google.cloud.sql.v1.OnPremisesConfiguration.verify(message.onPremisesConfiguration, long + 1); if (error) return "onPremisesConfiguration." + error; } - if (message.replicaConfiguration != null && message.hasOwnProperty("replicaConfiguration")) { - var error = $root.google.cloud.sql.v1.ReplicaConfiguration.verify(message.replicaConfiguration); + if (message.replicaConfiguration != null && Object.hasOwnProperty.call(message, "replicaConfiguration")) { + var error = $root.google.cloud.sql.v1.ReplicaConfiguration.verify(message.replicaConfiguration, long + 1); if (error) return "replicaConfiguration." + error; } - if (message.backendType != null && message.hasOwnProperty("backendType")) + if (message.backendType != null && Object.hasOwnProperty.call(message, "backendType")) switch (message.backendType) { default: return "backendType: enum value expected"; @@ -47712,10 +51139,10 @@ case 3: break; } - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) if (!$util.isString(message.selfLink)) return "selfLink: string expected"; - if (message.suspensionReason != null && message.hasOwnProperty("suspensionReason")) { + if (message.suspensionReason != null && Object.hasOwnProperty.call(message, "suspensionReason")) { if (!Array.isArray(message.suspensionReason)) return "suspensionReason: array expected"; for (var i = 0; i < message.suspensionReason.length; ++i) @@ -47727,83 +51154,84 @@ case 3: case 4: case 5: + case 8: break; } } - if (message.connectionName != null && message.hasOwnProperty("connectionName")) + if (message.connectionName != null && Object.hasOwnProperty.call(message, "connectionName")) if (!$util.isString(message.connectionName)) return "connectionName: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.region != null && message.hasOwnProperty("region")) + if (message.region != null && Object.hasOwnProperty.call(message, "region")) if (!$util.isString(message.region)) return "region: string expected"; - if (message.gceZone != null && message.hasOwnProperty("gceZone")) + if (message.gceZone != null && Object.hasOwnProperty.call(message, "gceZone")) if (!$util.isString(message.gceZone)) return "gceZone: string expected"; - if (message.secondaryGceZone != null && message.hasOwnProperty("secondaryGceZone")) + if (message.secondaryGceZone != null && Object.hasOwnProperty.call(message, "secondaryGceZone")) if (!$util.isString(message.secondaryGceZone)) return "secondaryGceZone: string expected"; - if (message.diskEncryptionConfiguration != null && message.hasOwnProperty("diskEncryptionConfiguration")) { - var error = $root.google.cloud.sql.v1.DiskEncryptionConfiguration.verify(message.diskEncryptionConfiguration); + if (message.diskEncryptionConfiguration != null && Object.hasOwnProperty.call(message, "diskEncryptionConfiguration")) { + var error = $root.google.cloud.sql.v1.DiskEncryptionConfiguration.verify(message.diskEncryptionConfiguration, long + 1); if (error) return "diskEncryptionConfiguration." + error; } - if (message.diskEncryptionStatus != null && message.hasOwnProperty("diskEncryptionStatus")) { - var error = $root.google.cloud.sql.v1.DiskEncryptionStatus.verify(message.diskEncryptionStatus); + if (message.diskEncryptionStatus != null && Object.hasOwnProperty.call(message, "diskEncryptionStatus")) { + var error = $root.google.cloud.sql.v1.DiskEncryptionStatus.verify(message.diskEncryptionStatus, long + 1); if (error) return "diskEncryptionStatus." + error; } - if (message.rootPassword != null && message.hasOwnProperty("rootPassword")) + if (message.rootPassword != null && Object.hasOwnProperty.call(message, "rootPassword")) if (!$util.isString(message.rootPassword)) return "rootPassword: string expected"; - if (message.scheduledMaintenance != null && message.hasOwnProperty("scheduledMaintenance")) { - var error = $root.google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance.verify(message.scheduledMaintenance); + if (message.scheduledMaintenance != null && Object.hasOwnProperty.call(message, "scheduledMaintenance")) { + var error = $root.google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance.verify(message.scheduledMaintenance, long + 1); if (error) return "scheduledMaintenance." + error; } - if (message.satisfiesPzs != null && message.hasOwnProperty("satisfiesPzs")) { - var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzs); + if (message.satisfiesPzs != null && Object.hasOwnProperty.call(message, "satisfiesPzs")) { + var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzs, long + 1); if (error) return "satisfiesPzs." + error; } - if (message.databaseInstalledVersion != null && message.hasOwnProperty("databaseInstalledVersion")) + if (message.databaseInstalledVersion != null && Object.hasOwnProperty.call(message, "databaseInstalledVersion")) if (!$util.isString(message.databaseInstalledVersion)) return "databaseInstalledVersion: string expected"; - if (message.outOfDiskReport != null && message.hasOwnProperty("outOfDiskReport")) { + if (message.outOfDiskReport != null && Object.hasOwnProperty.call(message, "outOfDiskReport")) { properties._outOfDiskReport = 1; { - var error = $root.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport.verify(message.outOfDiskReport); + var error = $root.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport.verify(message.outOfDiskReport, long + 1); if (error) return "outOfDiskReport." + error; } } - if (message.createTime != null && message.hasOwnProperty("createTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.createTime); + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.createTime, long + 1); if (error) return "createTime." + error; } - if (message.availableMaintenanceVersions != null && message.hasOwnProperty("availableMaintenanceVersions")) { + if (message.availableMaintenanceVersions != null && Object.hasOwnProperty.call(message, "availableMaintenanceVersions")) { if (!Array.isArray(message.availableMaintenanceVersions)) return "availableMaintenanceVersions: array expected"; for (var i = 0; i < message.availableMaintenanceVersions.length; ++i) if (!$util.isString(message.availableMaintenanceVersions[i])) return "availableMaintenanceVersions: string[] expected"; } - if (message.maintenanceVersion != null && message.hasOwnProperty("maintenanceVersion")) + if (message.maintenanceVersion != null && Object.hasOwnProperty.call(message, "maintenanceVersion")) if (!$util.isString(message.maintenanceVersion)) return "maintenanceVersion: string expected"; - if (message.upgradableDatabaseVersions != null && message.hasOwnProperty("upgradableDatabaseVersions")) { + if (message.upgradableDatabaseVersions != null && Object.hasOwnProperty.call(message, "upgradableDatabaseVersions")) { if (!Array.isArray(message.upgradableDatabaseVersions)) return "upgradableDatabaseVersions: array expected"; for (var i = 0; i < message.upgradableDatabaseVersions.length; ++i) { - var error = $root.google.cloud.sql.v1.AvailableDatabaseVersion.verify(message.upgradableDatabaseVersions[i]); + var error = $root.google.cloud.sql.v1.AvailableDatabaseVersion.verify(message.upgradableDatabaseVersions[i], long + 1); if (error) return "upgradableDatabaseVersions." + error; } } - if (message.sqlNetworkArchitecture != null && message.hasOwnProperty("sqlNetworkArchitecture")) { + if (message.sqlNetworkArchitecture != null && Object.hasOwnProperty.call(message, "sqlNetworkArchitecture")) { properties._sqlNetworkArchitecture = 1; switch (message.sqlNetworkArchitecture) { default: @@ -47814,61 +51242,61 @@ break; } } - if (message.pscServiceAttachmentLink != null && message.hasOwnProperty("pscServiceAttachmentLink")) { + if (message.pscServiceAttachmentLink != null && Object.hasOwnProperty.call(message, "pscServiceAttachmentLink")) { properties._pscServiceAttachmentLink = 1; if (!$util.isString(message.pscServiceAttachmentLink)) return "pscServiceAttachmentLink: string expected"; } - if (message.dnsName != null && message.hasOwnProperty("dnsName")) { + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) { properties._dnsName = 1; if (!$util.isString(message.dnsName)) return "dnsName: string expected"; } - if (message.primaryDnsName != null && message.hasOwnProperty("primaryDnsName")) { + if (message.primaryDnsName != null && Object.hasOwnProperty.call(message, "primaryDnsName")) { properties._primaryDnsName = 1; if (!$util.isString(message.primaryDnsName)) return "primaryDnsName: string expected"; } - if (message.writeEndpoint != null && message.hasOwnProperty("writeEndpoint")) { + if (message.writeEndpoint != null && Object.hasOwnProperty.call(message, "writeEndpoint")) { properties._writeEndpoint = 1; if (!$util.isString(message.writeEndpoint)) return "writeEndpoint: string expected"; } - if (message.replicationCluster != null && message.hasOwnProperty("replicationCluster")) { - var error = $root.google.cloud.sql.v1.ReplicationCluster.verify(message.replicationCluster); + if (message.replicationCluster != null && Object.hasOwnProperty.call(message, "replicationCluster")) { + var error = $root.google.cloud.sql.v1.ReplicationCluster.verify(message.replicationCluster, long + 1); if (error) return "replicationCluster." + error; } - if (message.geminiConfig != null && message.hasOwnProperty("geminiConfig")) { + if (message.geminiConfig != null && Object.hasOwnProperty.call(message, "geminiConfig")) { properties._geminiConfig = 1; { - var error = $root.google.cloud.sql.v1.GeminiInstanceConfig.verify(message.geminiConfig); + var error = $root.google.cloud.sql.v1.GeminiInstanceConfig.verify(message.geminiConfig, long + 1); if (error) return "geminiConfig." + error; } } - if (message.satisfiesPzi != null && message.hasOwnProperty("satisfiesPzi")) { - var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzi); + if (message.satisfiesPzi != null && Object.hasOwnProperty.call(message, "satisfiesPzi")) { + var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzi, long + 1); if (error) return "satisfiesPzi." + error; } - if (message.switchTransactionLogsToCloudStorageEnabled != null && message.hasOwnProperty("switchTransactionLogsToCloudStorageEnabled")) { + if (message.switchTransactionLogsToCloudStorageEnabled != null && Object.hasOwnProperty.call(message, "switchTransactionLogsToCloudStorageEnabled")) { properties._switchTransactionLogsToCloudStorageEnabled = 1; { - var error = $root.google.protobuf.BoolValue.verify(message.switchTransactionLogsToCloudStorageEnabled); + var error = $root.google.protobuf.BoolValue.verify(message.switchTransactionLogsToCloudStorageEnabled, long + 1); if (error) return "switchTransactionLogsToCloudStorageEnabled." + error; } } - if (message.includeReplicasForMajorVersionUpgrade != null && message.hasOwnProperty("includeReplicasForMajorVersionUpgrade")) { + if (message.includeReplicasForMajorVersionUpgrade != null && Object.hasOwnProperty.call(message, "includeReplicasForMajorVersionUpgrade")) { properties._includeReplicasForMajorVersionUpgrade = 1; { - var error = $root.google.protobuf.BoolValue.verify(message.includeReplicasForMajorVersionUpgrade); + var error = $root.google.protobuf.BoolValue.verify(message.includeReplicasForMajorVersionUpgrade, long + 1); if (error) return "includeReplicasForMajorVersionUpgrade." + error; } } - if (message.tags != null && message.hasOwnProperty("tags")) { + if (message.tags != null && Object.hasOwnProperty.call(message, "tags")) { if (!$util.isObject(message.tags)) return "tags: object expected"; var key = Object.keys(message.tags); @@ -47876,25 +51304,25 @@ if (!$util.isString(message.tags[key[i]])) return "tags: string{k:string} expected"; } - if (message.nodeCount != null && message.hasOwnProperty("nodeCount")) { + if (message.nodeCount != null && Object.hasOwnProperty.call(message, "nodeCount")) { properties._nodeCount = 1; if (!$util.isInteger(message.nodeCount)) return "nodeCount: integer expected"; } - if (message.nodes != null && message.hasOwnProperty("nodes")) { + if (message.nodes != null && Object.hasOwnProperty.call(message, "nodes")) { if (!Array.isArray(message.nodes)) return "nodes: array expected"; for (var i = 0; i < message.nodes.length; ++i) { - var error = $root.google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig.verify(message.nodes[i]); + var error = $root.google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig.verify(message.nodes[i], long + 1); if (error) return "nodes." + error; } } - if (message.dnsNames != null && message.hasOwnProperty("dnsNames")) { + if (message.dnsNames != null && Object.hasOwnProperty.call(message, "dnsNames")) { if (!Array.isArray(message.dnsNames)) return "dnsNames: array expected"; for (var i = 0; i < message.dnsNames.length; ++i) { - var error = $root.google.cloud.sql.v1.DnsNameMapping.verify(message.dnsNames[i]); + var error = $root.google.cloud.sql.v1.DnsNameMapping.verify(message.dnsNames[i], long + 1); if (error) return "dnsNames." + error; } @@ -47910,9 +51338,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.DatabaseInstance} DatabaseInstance */ - DatabaseInstance.fromObject = function fromObject(object) { + DatabaseInstance.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.DatabaseInstance) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.DatabaseInstance: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.DatabaseInstance(); if (object.kind != null) message.kind = String(object.kind); @@ -48139,6 +51573,10 @@ case 557: message.databaseVersion = 557; break; + case "POSTGRES_19": + case 684: + message.databaseVersion = 684; + break; case "SQLSERVER_2019_STANDARD": case 26: message.databaseVersion = 26; @@ -48171,18 +51609,30 @@ case 202: message.databaseVersion = 202; break; + case "SQLSERVER_2025_STANDARD": + case 549: + message.databaseVersion = 549; + break; + case "SQLSERVER_2025_ENTERPRISE": + case 550: + message.databaseVersion = 550; + break; + case "SQLSERVER_2025_EXPRESS": + case 551: + message.databaseVersion = 551; + break; } if (object.settings != null) { - if (typeof object.settings !== "object") + if (!$util.isObject(object.settings)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.settings: object expected"); - message.settings = $root.google.cloud.sql.v1.Settings.fromObject(object.settings); + message.settings = $root.google.cloud.sql.v1.Settings.fromObject(object.settings, long + 1); } if (object.etag != null) message.etag = String(object.etag); if (object.failoverReplica != null) { - if (typeof object.failoverReplica !== "object") + if (!$util.isObject(object.failoverReplica)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.failoverReplica: object expected"); - message.failoverReplica = $root.google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica.fromObject(object.failoverReplica); + message.failoverReplica = $root.google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica.fromObject(object.failoverReplica, long + 1); } if (object.masterInstanceName != null) message.masterInstanceName = String(object.masterInstanceName); @@ -48194,29 +51644,29 @@ message.replicaNames[i] = String(object.replicaNames[i]); } if (object.maxDiskSize != null) { - if (typeof object.maxDiskSize !== "object") + if (!$util.isObject(object.maxDiskSize)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.maxDiskSize: object expected"); - message.maxDiskSize = $root.google.protobuf.Int64Value.fromObject(object.maxDiskSize); + message.maxDiskSize = $root.google.protobuf.Int64Value.fromObject(object.maxDiskSize, long + 1); } if (object.currentDiskSize != null) { - if (typeof object.currentDiskSize !== "object") + if (!$util.isObject(object.currentDiskSize)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.currentDiskSize: object expected"); - message.currentDiskSize = $root.google.protobuf.Int64Value.fromObject(object.currentDiskSize); + message.currentDiskSize = $root.google.protobuf.Int64Value.fromObject(object.currentDiskSize, long + 1); } if (object.ipAddresses) { if (!Array.isArray(object.ipAddresses)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.ipAddresses: array expected"); message.ipAddresses = []; for (var i = 0; i < object.ipAddresses.length; ++i) { - if (typeof object.ipAddresses[i] !== "object") + if (!$util.isObject(object.ipAddresses[i])) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.ipAddresses: object expected"); - message.ipAddresses[i] = $root.google.cloud.sql.v1.IpMapping.fromObject(object.ipAddresses[i]); + message.ipAddresses[i] = $root.google.cloud.sql.v1.IpMapping.fromObject(object.ipAddresses[i], long + 1); } } if (object.serverCaCert != null) { - if (typeof object.serverCaCert !== "object") + if (!$util.isObject(object.serverCaCert)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.serverCaCert: object expected"); - message.serverCaCert = $root.google.cloud.sql.v1.SslCert.fromObject(object.serverCaCert); + message.serverCaCert = $root.google.cloud.sql.v1.SslCert.fromObject(object.serverCaCert, long + 1); } switch (object.instanceType) { default: @@ -48253,14 +51703,14 @@ if (object.serviceAccountEmailAddress != null) message.serviceAccountEmailAddress = String(object.serviceAccountEmailAddress); if (object.onPremisesConfiguration != null) { - if (typeof object.onPremisesConfiguration !== "object") + if (!$util.isObject(object.onPremisesConfiguration)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.onPremisesConfiguration: object expected"); - message.onPremisesConfiguration = $root.google.cloud.sql.v1.OnPremisesConfiguration.fromObject(object.onPremisesConfiguration); + message.onPremisesConfiguration = $root.google.cloud.sql.v1.OnPremisesConfiguration.fromObject(object.onPremisesConfiguration, long + 1); } if (object.replicaConfiguration != null) { - if (typeof object.replicaConfiguration !== "object") + if (!$util.isObject(object.replicaConfiguration)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.replicaConfiguration: object expected"); - message.replicaConfiguration = $root.google.cloud.sql.v1.ReplicaConfiguration.fromObject(object.replicaConfiguration); + message.replicaConfiguration = $root.google.cloud.sql.v1.ReplicaConfiguration.fromObject(object.replicaConfiguration, long + 1); } switch (object.backendType) { default: @@ -48319,6 +51769,10 @@ case 5: message.suspensionReason[i] = 5; break; + case "PROJECT_ABUSE": + case 8: + message.suspensionReason[i] = 8; + break; } } if (object.connectionName != null) @@ -48332,38 +51786,38 @@ if (object.secondaryGceZone != null) message.secondaryGceZone = String(object.secondaryGceZone); if (object.diskEncryptionConfiguration != null) { - if (typeof object.diskEncryptionConfiguration !== "object") + if (!$util.isObject(object.diskEncryptionConfiguration)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.diskEncryptionConfiguration: object expected"); - message.diskEncryptionConfiguration = $root.google.cloud.sql.v1.DiskEncryptionConfiguration.fromObject(object.diskEncryptionConfiguration); + message.diskEncryptionConfiguration = $root.google.cloud.sql.v1.DiskEncryptionConfiguration.fromObject(object.diskEncryptionConfiguration, long + 1); } if (object.diskEncryptionStatus != null) { - if (typeof object.diskEncryptionStatus !== "object") + if (!$util.isObject(object.diskEncryptionStatus)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.diskEncryptionStatus: object expected"); - message.diskEncryptionStatus = $root.google.cloud.sql.v1.DiskEncryptionStatus.fromObject(object.diskEncryptionStatus); + message.diskEncryptionStatus = $root.google.cloud.sql.v1.DiskEncryptionStatus.fromObject(object.diskEncryptionStatus, long + 1); } if (object.rootPassword != null) message.rootPassword = String(object.rootPassword); if (object.scheduledMaintenance != null) { - if (typeof object.scheduledMaintenance !== "object") + if (!$util.isObject(object.scheduledMaintenance)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.scheduledMaintenance: object expected"); - message.scheduledMaintenance = $root.google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance.fromObject(object.scheduledMaintenance); + message.scheduledMaintenance = $root.google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance.fromObject(object.scheduledMaintenance, long + 1); } if (object.satisfiesPzs != null) { - if (typeof object.satisfiesPzs !== "object") + if (!$util.isObject(object.satisfiesPzs)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.satisfiesPzs: object expected"); - message.satisfiesPzs = $root.google.protobuf.BoolValue.fromObject(object.satisfiesPzs); + message.satisfiesPzs = $root.google.protobuf.BoolValue.fromObject(object.satisfiesPzs, long + 1); } if (object.databaseInstalledVersion != null) message.databaseInstalledVersion = String(object.databaseInstalledVersion); if (object.outOfDiskReport != null) { - if (typeof object.outOfDiskReport !== "object") + if (!$util.isObject(object.outOfDiskReport)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.outOfDiskReport: object expected"); - message.outOfDiskReport = $root.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport.fromObject(object.outOfDiskReport); + message.outOfDiskReport = $root.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport.fromObject(object.outOfDiskReport, long + 1); } if (object.createTime != null) { - if (typeof object.createTime !== "object") + if (!$util.isObject(object.createTime)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.createTime: object expected"); - message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime); + message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime, long + 1); } if (object.availableMaintenanceVersions) { if (!Array.isArray(object.availableMaintenanceVersions)) @@ -48379,9 +51833,9 @@ throw TypeError(".google.cloud.sql.v1.DatabaseInstance.upgradableDatabaseVersions: array expected"); message.upgradableDatabaseVersions = []; for (var i = 0; i < object.upgradableDatabaseVersions.length; ++i) { - if (typeof object.upgradableDatabaseVersions[i] !== "object") + if (!$util.isObject(object.upgradableDatabaseVersions[i])) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.upgradableDatabaseVersions: object expected"); - message.upgradableDatabaseVersions[i] = $root.google.cloud.sql.v1.AvailableDatabaseVersion.fromObject(object.upgradableDatabaseVersions[i]); + message.upgradableDatabaseVersions[i] = $root.google.cloud.sql.v1.AvailableDatabaseVersion.fromObject(object.upgradableDatabaseVersions[i], long + 1); } } switch (object.sqlNetworkArchitecture) { @@ -48413,36 +51867,39 @@ if (object.writeEndpoint != null) message.writeEndpoint = String(object.writeEndpoint); if (object.replicationCluster != null) { - if (typeof object.replicationCluster !== "object") + if (!$util.isObject(object.replicationCluster)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.replicationCluster: object expected"); - message.replicationCluster = $root.google.cloud.sql.v1.ReplicationCluster.fromObject(object.replicationCluster); + message.replicationCluster = $root.google.cloud.sql.v1.ReplicationCluster.fromObject(object.replicationCluster, long + 1); } if (object.geminiConfig != null) { - if (typeof object.geminiConfig !== "object") + if (!$util.isObject(object.geminiConfig)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.geminiConfig: object expected"); - message.geminiConfig = $root.google.cloud.sql.v1.GeminiInstanceConfig.fromObject(object.geminiConfig); + message.geminiConfig = $root.google.cloud.sql.v1.GeminiInstanceConfig.fromObject(object.geminiConfig, long + 1); } if (object.satisfiesPzi != null) { - if (typeof object.satisfiesPzi !== "object") + if (!$util.isObject(object.satisfiesPzi)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.satisfiesPzi: object expected"); - message.satisfiesPzi = $root.google.protobuf.BoolValue.fromObject(object.satisfiesPzi); + message.satisfiesPzi = $root.google.protobuf.BoolValue.fromObject(object.satisfiesPzi, long + 1); } if (object.switchTransactionLogsToCloudStorageEnabled != null) { - if (typeof object.switchTransactionLogsToCloudStorageEnabled !== "object") + if (!$util.isObject(object.switchTransactionLogsToCloudStorageEnabled)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.switchTransactionLogsToCloudStorageEnabled: object expected"); - message.switchTransactionLogsToCloudStorageEnabled = $root.google.protobuf.BoolValue.fromObject(object.switchTransactionLogsToCloudStorageEnabled); + message.switchTransactionLogsToCloudStorageEnabled = $root.google.protobuf.BoolValue.fromObject(object.switchTransactionLogsToCloudStorageEnabled, long + 1); } if (object.includeReplicasForMajorVersionUpgrade != null) { - if (typeof object.includeReplicasForMajorVersionUpgrade !== "object") + if (!$util.isObject(object.includeReplicasForMajorVersionUpgrade)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.includeReplicasForMajorVersionUpgrade: object expected"); - message.includeReplicasForMajorVersionUpgrade = $root.google.protobuf.BoolValue.fromObject(object.includeReplicasForMajorVersionUpgrade); + message.includeReplicasForMajorVersionUpgrade = $root.google.protobuf.BoolValue.fromObject(object.includeReplicasForMajorVersionUpgrade, long + 1); } if (object.tags) { - if (typeof object.tags !== "object") + if (!$util.isObject(object.tags)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.tags: object expected"); message.tags = {}; - for (var keys = Object.keys(object.tags), i = 0; i < keys.length; ++i) + for (var keys = Object.keys(object.tags), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.tags, keys[i]); message.tags[keys[i]] = String(object.tags[keys[i]]); + } } if (object.nodeCount != null) message.nodeCount = object.nodeCount | 0; @@ -48451,9 +51908,9 @@ throw TypeError(".google.cloud.sql.v1.DatabaseInstance.nodes: array expected"); message.nodes = []; for (var i = 0; i < object.nodes.length; ++i) { - if (typeof object.nodes[i] !== "object") + if (!$util.isObject(object.nodes[i])) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.nodes: object expected"); - message.nodes[i] = $root.google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig.fromObject(object.nodes[i]); + message.nodes[i] = $root.google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig.fromObject(object.nodes[i], long + 1); } } if (object.dnsNames) { @@ -48461,9 +51918,9 @@ throw TypeError(".google.cloud.sql.v1.DatabaseInstance.dnsNames: array expected"); message.dnsNames = []; for (var i = 0; i < object.dnsNames.length; ++i) { - if (typeof object.dnsNames[i] !== "object") + if (!$util.isObject(object.dnsNames[i])) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.dnsNames: object expected"); - message.dnsNames[i] = $root.google.cloud.sql.v1.DnsNameMapping.fromObject(object.dnsNames[i]); + message.dnsNames[i] = $root.google.cloud.sql.v1.DnsNameMapping.fromObject(object.dnsNames[i], long + 1); } } return message; @@ -48478,9 +51935,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DatabaseInstance.toObject = function toObject(message, options) { + DatabaseInstance.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.replicaNames = []; @@ -48528,149 +51989,152 @@ object.replicationCluster = null; object.satisfiesPzi = null; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.state != null && message.hasOwnProperty("state")) + if (message.state != null && Object.hasOwnProperty.call(message, "state")) object.state = options.enums === String ? $root.google.cloud.sql.v1.DatabaseInstance.SqlInstanceState[message.state] === undefined ? message.state : $root.google.cloud.sql.v1.DatabaseInstance.SqlInstanceState[message.state] : message.state; - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) object.databaseVersion = options.enums === String ? $root.google.cloud.sql.v1.SqlDatabaseVersion[message.databaseVersion] === undefined ? message.databaseVersion : $root.google.cloud.sql.v1.SqlDatabaseVersion[message.databaseVersion] : message.databaseVersion; - if (message.settings != null && message.hasOwnProperty("settings")) - object.settings = $root.google.cloud.sql.v1.Settings.toObject(message.settings, options); - if (message.etag != null && message.hasOwnProperty("etag")) + if (message.settings != null && Object.hasOwnProperty.call(message, "settings")) + object.settings = $root.google.cloud.sql.v1.Settings.toObject(message.settings, options, q + 1); + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) object.etag = message.etag; - if (message.failoverReplica != null && message.hasOwnProperty("failoverReplica")) - object.failoverReplica = $root.google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica.toObject(message.failoverReplica, options); - if (message.masterInstanceName != null && message.hasOwnProperty("masterInstanceName")) + if (message.failoverReplica != null && Object.hasOwnProperty.call(message, "failoverReplica")) + object.failoverReplica = $root.google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica.toObject(message.failoverReplica, options, q + 1); + if (message.masterInstanceName != null && Object.hasOwnProperty.call(message, "masterInstanceName")) object.masterInstanceName = message.masterInstanceName; if (message.replicaNames && message.replicaNames.length) { object.replicaNames = []; for (var j = 0; j < message.replicaNames.length; ++j) object.replicaNames[j] = message.replicaNames[j]; } - if (message.maxDiskSize != null && message.hasOwnProperty("maxDiskSize")) - object.maxDiskSize = $root.google.protobuf.Int64Value.toObject(message.maxDiskSize, options); - if (message.currentDiskSize != null && message.hasOwnProperty("currentDiskSize")) - object.currentDiskSize = $root.google.protobuf.Int64Value.toObject(message.currentDiskSize, options); + if (message.maxDiskSize != null && Object.hasOwnProperty.call(message, "maxDiskSize")) + object.maxDiskSize = $root.google.protobuf.Int64Value.toObject(message.maxDiskSize, options, q + 1); + if (message.currentDiskSize != null && Object.hasOwnProperty.call(message, "currentDiskSize")) + object.currentDiskSize = $root.google.protobuf.Int64Value.toObject(message.currentDiskSize, options, q + 1); if (message.ipAddresses && message.ipAddresses.length) { object.ipAddresses = []; for (var j = 0; j < message.ipAddresses.length; ++j) - object.ipAddresses[j] = $root.google.cloud.sql.v1.IpMapping.toObject(message.ipAddresses[j], options); + object.ipAddresses[j] = $root.google.cloud.sql.v1.IpMapping.toObject(message.ipAddresses[j], options, q + 1); } - if (message.serverCaCert != null && message.hasOwnProperty("serverCaCert")) - object.serverCaCert = $root.google.cloud.sql.v1.SslCert.toObject(message.serverCaCert, options); - if (message.instanceType != null && message.hasOwnProperty("instanceType")) + if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) + object.serverCaCert = $root.google.cloud.sql.v1.SslCert.toObject(message.serverCaCert, options, q + 1); + if (message.instanceType != null && Object.hasOwnProperty.call(message, "instanceType")) object.instanceType = options.enums === String ? $root.google.cloud.sql.v1.SqlInstanceType[message.instanceType] === undefined ? message.instanceType : $root.google.cloud.sql.v1.SqlInstanceType[message.instanceType] : message.instanceType; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.ipv6Address != null && message.hasOwnProperty("ipv6Address")) + if (message.ipv6Address != null && Object.hasOwnProperty.call(message, "ipv6Address")) object.ipv6Address = message.ipv6Address; - if (message.serviceAccountEmailAddress != null && message.hasOwnProperty("serviceAccountEmailAddress")) + if (message.serviceAccountEmailAddress != null && Object.hasOwnProperty.call(message, "serviceAccountEmailAddress")) object.serviceAccountEmailAddress = message.serviceAccountEmailAddress; - if (message.onPremisesConfiguration != null && message.hasOwnProperty("onPremisesConfiguration")) - object.onPremisesConfiguration = $root.google.cloud.sql.v1.OnPremisesConfiguration.toObject(message.onPremisesConfiguration, options); - if (message.replicaConfiguration != null && message.hasOwnProperty("replicaConfiguration")) - object.replicaConfiguration = $root.google.cloud.sql.v1.ReplicaConfiguration.toObject(message.replicaConfiguration, options); - if (message.backendType != null && message.hasOwnProperty("backendType")) + if (message.onPremisesConfiguration != null && Object.hasOwnProperty.call(message, "onPremisesConfiguration")) + object.onPremisesConfiguration = $root.google.cloud.sql.v1.OnPremisesConfiguration.toObject(message.onPremisesConfiguration, options, q + 1); + if (message.replicaConfiguration != null && Object.hasOwnProperty.call(message, "replicaConfiguration")) + object.replicaConfiguration = $root.google.cloud.sql.v1.ReplicaConfiguration.toObject(message.replicaConfiguration, options, q + 1); + if (message.backendType != null && Object.hasOwnProperty.call(message, "backendType")) object.backendType = options.enums === String ? $root.google.cloud.sql.v1.SqlBackendType[message.backendType] === undefined ? message.backendType : $root.google.cloud.sql.v1.SqlBackendType[message.backendType] : message.backendType; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) object.selfLink = message.selfLink; if (message.suspensionReason && message.suspensionReason.length) { object.suspensionReason = []; for (var j = 0; j < message.suspensionReason.length; ++j) object.suspensionReason[j] = options.enums === String ? $root.google.cloud.sql.v1.SqlSuspensionReason[message.suspensionReason[j]] === undefined ? message.suspensionReason[j] : $root.google.cloud.sql.v1.SqlSuspensionReason[message.suspensionReason[j]] : message.suspensionReason[j]; } - if (message.connectionName != null && message.hasOwnProperty("connectionName")) + if (message.connectionName != null && Object.hasOwnProperty.call(message, "connectionName")) object.connectionName = message.connectionName; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.region != null && message.hasOwnProperty("region")) + if (message.region != null && Object.hasOwnProperty.call(message, "region")) object.region = message.region; - if (message.gceZone != null && message.hasOwnProperty("gceZone")) + if (message.gceZone != null && Object.hasOwnProperty.call(message, "gceZone")) object.gceZone = message.gceZone; - if (message.diskEncryptionConfiguration != null && message.hasOwnProperty("diskEncryptionConfiguration")) - object.diskEncryptionConfiguration = $root.google.cloud.sql.v1.DiskEncryptionConfiguration.toObject(message.diskEncryptionConfiguration, options); - if (message.diskEncryptionStatus != null && message.hasOwnProperty("diskEncryptionStatus")) - object.diskEncryptionStatus = $root.google.cloud.sql.v1.DiskEncryptionStatus.toObject(message.diskEncryptionStatus, options); - if (message.rootPassword != null && message.hasOwnProperty("rootPassword")) + if (message.diskEncryptionConfiguration != null && Object.hasOwnProperty.call(message, "diskEncryptionConfiguration")) + object.diskEncryptionConfiguration = $root.google.cloud.sql.v1.DiskEncryptionConfiguration.toObject(message.diskEncryptionConfiguration, options, q + 1); + if (message.diskEncryptionStatus != null && Object.hasOwnProperty.call(message, "diskEncryptionStatus")) + object.diskEncryptionStatus = $root.google.cloud.sql.v1.DiskEncryptionStatus.toObject(message.diskEncryptionStatus, options, q + 1); + if (message.rootPassword != null && Object.hasOwnProperty.call(message, "rootPassword")) object.rootPassword = message.rootPassword; - if (message.scheduledMaintenance != null && message.hasOwnProperty("scheduledMaintenance")) - object.scheduledMaintenance = $root.google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance.toObject(message.scheduledMaintenance, options); - if (message.secondaryGceZone != null && message.hasOwnProperty("secondaryGceZone")) + if (message.scheduledMaintenance != null && Object.hasOwnProperty.call(message, "scheduledMaintenance")) + object.scheduledMaintenance = $root.google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance.toObject(message.scheduledMaintenance, options, q + 1); + if (message.secondaryGceZone != null && Object.hasOwnProperty.call(message, "secondaryGceZone")) object.secondaryGceZone = message.secondaryGceZone; - if (message.satisfiesPzs != null && message.hasOwnProperty("satisfiesPzs")) - object.satisfiesPzs = $root.google.protobuf.BoolValue.toObject(message.satisfiesPzs, options); - if (message.outOfDiskReport != null && message.hasOwnProperty("outOfDiskReport")) { - object.outOfDiskReport = $root.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport.toObject(message.outOfDiskReport, options); + if (message.satisfiesPzs != null && Object.hasOwnProperty.call(message, "satisfiesPzs")) + object.satisfiesPzs = $root.google.protobuf.BoolValue.toObject(message.satisfiesPzs, options, q + 1); + if (message.outOfDiskReport != null && Object.hasOwnProperty.call(message, "outOfDiskReport")) { + object.outOfDiskReport = $root.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport.toObject(message.outOfDiskReport, options, q + 1); if (options.oneofs) object._outOfDiskReport = "outOfDiskReport"; } - if (message.createTime != null && message.hasOwnProperty("createTime")) - object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options); - if (message.databaseInstalledVersion != null && message.hasOwnProperty("databaseInstalledVersion")) + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) + object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options, q + 1); + if (message.databaseInstalledVersion != null && Object.hasOwnProperty.call(message, "databaseInstalledVersion")) object.databaseInstalledVersion = message.databaseInstalledVersion; if (message.availableMaintenanceVersions && message.availableMaintenanceVersions.length) { object.availableMaintenanceVersions = []; for (var j = 0; j < message.availableMaintenanceVersions.length; ++j) object.availableMaintenanceVersions[j] = message.availableMaintenanceVersions[j]; } - if (message.maintenanceVersion != null && message.hasOwnProperty("maintenanceVersion")) + if (message.maintenanceVersion != null && Object.hasOwnProperty.call(message, "maintenanceVersion")) object.maintenanceVersion = message.maintenanceVersion; if (message.upgradableDatabaseVersions && message.upgradableDatabaseVersions.length) { object.upgradableDatabaseVersions = []; for (var j = 0; j < message.upgradableDatabaseVersions.length; ++j) - object.upgradableDatabaseVersions[j] = $root.google.cloud.sql.v1.AvailableDatabaseVersion.toObject(message.upgradableDatabaseVersions[j], options); + object.upgradableDatabaseVersions[j] = $root.google.cloud.sql.v1.AvailableDatabaseVersion.toObject(message.upgradableDatabaseVersions[j], options, q + 1); } - if (message.sqlNetworkArchitecture != null && message.hasOwnProperty("sqlNetworkArchitecture")) { + if (message.sqlNetworkArchitecture != null && Object.hasOwnProperty.call(message, "sqlNetworkArchitecture")) { object.sqlNetworkArchitecture = options.enums === String ? $root.google.cloud.sql.v1.DatabaseInstance.SqlNetworkArchitecture[message.sqlNetworkArchitecture] === undefined ? message.sqlNetworkArchitecture : $root.google.cloud.sql.v1.DatabaseInstance.SqlNetworkArchitecture[message.sqlNetworkArchitecture] : message.sqlNetworkArchitecture; if (options.oneofs) object._sqlNetworkArchitecture = "sqlNetworkArchitecture"; } - if (message.pscServiceAttachmentLink != null && message.hasOwnProperty("pscServiceAttachmentLink")) { + if (message.pscServiceAttachmentLink != null && Object.hasOwnProperty.call(message, "pscServiceAttachmentLink")) { object.pscServiceAttachmentLink = message.pscServiceAttachmentLink; if (options.oneofs) object._pscServiceAttachmentLink = "pscServiceAttachmentLink"; } - if (message.dnsName != null && message.hasOwnProperty("dnsName")) { + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) { object.dnsName = message.dnsName; if (options.oneofs) object._dnsName = "dnsName"; } - if (message.primaryDnsName != null && message.hasOwnProperty("primaryDnsName")) { + if (message.primaryDnsName != null && Object.hasOwnProperty.call(message, "primaryDnsName")) { object.primaryDnsName = message.primaryDnsName; if (options.oneofs) object._primaryDnsName = "primaryDnsName"; } - if (message.writeEndpoint != null && message.hasOwnProperty("writeEndpoint")) { + if (message.writeEndpoint != null && Object.hasOwnProperty.call(message, "writeEndpoint")) { object.writeEndpoint = message.writeEndpoint; if (options.oneofs) object._writeEndpoint = "writeEndpoint"; } - if (message.replicationCluster != null && message.hasOwnProperty("replicationCluster")) - object.replicationCluster = $root.google.cloud.sql.v1.ReplicationCluster.toObject(message.replicationCluster, options); - if (message.geminiConfig != null && message.hasOwnProperty("geminiConfig")) { - object.geminiConfig = $root.google.cloud.sql.v1.GeminiInstanceConfig.toObject(message.geminiConfig, options); + if (message.replicationCluster != null && Object.hasOwnProperty.call(message, "replicationCluster")) + object.replicationCluster = $root.google.cloud.sql.v1.ReplicationCluster.toObject(message.replicationCluster, options, q + 1); + if (message.geminiConfig != null && Object.hasOwnProperty.call(message, "geminiConfig")) { + object.geminiConfig = $root.google.cloud.sql.v1.GeminiInstanceConfig.toObject(message.geminiConfig, options, q + 1); if (options.oneofs) object._geminiConfig = "geminiConfig"; } - if (message.satisfiesPzi != null && message.hasOwnProperty("satisfiesPzi")) - object.satisfiesPzi = $root.google.protobuf.BoolValue.toObject(message.satisfiesPzi, options); - if (message.switchTransactionLogsToCloudStorageEnabled != null && message.hasOwnProperty("switchTransactionLogsToCloudStorageEnabled")) { - object.switchTransactionLogsToCloudStorageEnabled = $root.google.protobuf.BoolValue.toObject(message.switchTransactionLogsToCloudStorageEnabled, options); + if (message.satisfiesPzi != null && Object.hasOwnProperty.call(message, "satisfiesPzi")) + object.satisfiesPzi = $root.google.protobuf.BoolValue.toObject(message.satisfiesPzi, options, q + 1); + if (message.switchTransactionLogsToCloudStorageEnabled != null && Object.hasOwnProperty.call(message, "switchTransactionLogsToCloudStorageEnabled")) { + object.switchTransactionLogsToCloudStorageEnabled = $root.google.protobuf.BoolValue.toObject(message.switchTransactionLogsToCloudStorageEnabled, options, q + 1); if (options.oneofs) object._switchTransactionLogsToCloudStorageEnabled = "switchTransactionLogsToCloudStorageEnabled"; } - if (message.includeReplicasForMajorVersionUpgrade != null && message.hasOwnProperty("includeReplicasForMajorVersionUpgrade")) { - object.includeReplicasForMajorVersionUpgrade = $root.google.protobuf.BoolValue.toObject(message.includeReplicasForMajorVersionUpgrade, options); + if (message.includeReplicasForMajorVersionUpgrade != null && Object.hasOwnProperty.call(message, "includeReplicasForMajorVersionUpgrade")) { + object.includeReplicasForMajorVersionUpgrade = $root.google.protobuf.BoolValue.toObject(message.includeReplicasForMajorVersionUpgrade, options, q + 1); if (options.oneofs) object._includeReplicasForMajorVersionUpgrade = "includeReplicasForMajorVersionUpgrade"; } var keys2; if (message.tags && (keys2 = Object.keys(message.tags)).length) { object.tags = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.tags, keys2[j]); object.tags[keys2[j]] = message.tags[keys2[j]]; + } } - if (message.nodeCount != null && message.hasOwnProperty("nodeCount")) { + if (message.nodeCount != null && Object.hasOwnProperty.call(message, "nodeCount")) { object.nodeCount = message.nodeCount; if (options.oneofs) object._nodeCount = "nodeCount"; @@ -48678,12 +52142,12 @@ if (message.nodes && message.nodes.length) { object.nodes = []; for (var j = 0; j < message.nodes.length; ++j) - object.nodes[j] = $root.google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig.toObject(message.nodes[j], options); + object.nodes[j] = $root.google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig.toObject(message.nodes[j], options, q + 1); } if (message.dnsNames && message.dnsNames.length) { object.dnsNames = []; for (var j = 0; j < message.dnsNames.length; ++j) - object.dnsNames[j] = $root.google.cloud.sql.v1.DnsNameMapping.toObject(message.dnsNames[j], options); + object.dnsNames[j] = $root.google.cloud.sql.v1.DnsNameMapping.toObject(message.dnsNames[j], options, q + 1); } return object; }; @@ -48763,7 +52227,7 @@ function SqlFailoverReplica(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -48804,13 +52268,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlFailoverReplica.encode = function encode(message, writer) { + SqlFailoverReplica.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.available != null && Object.hasOwnProperty.call(message, "available")) - $root.google.protobuf.BoolValue.encode(message.available, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.available, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -48824,7 +52292,7 @@ * @returns {$protobuf.Writer} Writer */ SqlFailoverReplica.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -48838,9 +52306,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlFailoverReplica.decode = function decode(reader, length, error) { + SqlFailoverReplica.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica(); while (reader.pos < end) { var tag = reader.uint32(); @@ -48852,11 +52324,11 @@ break; } case 2: { - message.available = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.available = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -48887,14 +52359,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlFailoverReplica.verify = function verify(message) { + SqlFailoverReplica.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.available != null && message.hasOwnProperty("available")) { - var error = $root.google.protobuf.BoolValue.verify(message.available); + if (message.available != null && Object.hasOwnProperty.call(message, "available")) { + var error = $root.google.protobuf.BoolValue.verify(message.available, long + 1); if (error) return "available." + error; } @@ -48909,16 +52385,22 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica} SqlFailoverReplica */ - SqlFailoverReplica.fromObject = function fromObject(object) { + SqlFailoverReplica.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica(); if (object.name != null) message.name = String(object.name); if (object.available != null) { - if (typeof object.available !== "object") + if (!$util.isObject(object.available)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica.available: object expected"); - message.available = $root.google.protobuf.BoolValue.fromObject(object.available); + message.available = $root.google.protobuf.BoolValue.fromObject(object.available, long + 1); } return message; }; @@ -48932,18 +52414,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlFailoverReplica.toObject = function toObject(message, options) { + SqlFailoverReplica.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; object.available = null; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.available != null && message.hasOwnProperty("available")) - object.available = $root.google.protobuf.BoolValue.toObject(message.available, options); + if (message.available != null && Object.hasOwnProperty.call(message, "available")) + object.available = $root.google.protobuf.BoolValue.toObject(message.available, options, q + 1); return object; }; @@ -48999,7 +52485,7 @@ function SqlScheduledMaintenance(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -49065,17 +52551,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlScheduledMaintenance.encode = function encode(message, writer) { + SqlScheduledMaintenance.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) - $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.canDefer != null && Object.hasOwnProperty.call(message, "canDefer")) writer.uint32(/* id 2, wireType 0 =*/16).bool(message.canDefer); if (message.canReschedule != null && Object.hasOwnProperty.call(message, "canReschedule")) writer.uint32(/* id 3, wireType 0 =*/24).bool(message.canReschedule); if (message.scheduleDeadlineTime != null && Object.hasOwnProperty.call(message, "scheduleDeadlineTime")) - $root.google.protobuf.Timestamp.encode(message.scheduleDeadlineTime, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.scheduleDeadlineTime, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); return writer; }; @@ -49089,7 +52579,7 @@ * @returns {$protobuf.Writer} Writer */ SqlScheduledMaintenance.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -49103,9 +52593,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlScheduledMaintenance.decode = function decode(reader, length, error) { + SqlScheduledMaintenance.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance(); while (reader.pos < end) { var tag = reader.uint32(); @@ -49113,7 +52607,7 @@ break; switch (tag >>> 3) { case 1: { - message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -49125,11 +52619,11 @@ break; } case 4: { - message.scheduleDeadlineTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.scheduleDeadlineTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -49160,25 +52654,29 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlScheduledMaintenance.verify = function verify(message) { + SqlScheduledMaintenance.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.startTime != null && message.hasOwnProperty("startTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.startTime); + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.startTime, long + 1); if (error) return "startTime." + error; } - if (message.canDefer != null && message.hasOwnProperty("canDefer")) + if (message.canDefer != null && Object.hasOwnProperty.call(message, "canDefer")) if (typeof message.canDefer !== "boolean") return "canDefer: boolean expected"; - if (message.canReschedule != null && message.hasOwnProperty("canReschedule")) + if (message.canReschedule != null && Object.hasOwnProperty.call(message, "canReschedule")) if (typeof message.canReschedule !== "boolean") return "canReschedule: boolean expected"; - if (message.scheduleDeadlineTime != null && message.hasOwnProperty("scheduleDeadlineTime")) { + if (message.scheduleDeadlineTime != null && Object.hasOwnProperty.call(message, "scheduleDeadlineTime")) { properties._scheduleDeadlineTime = 1; { - var error = $root.google.protobuf.Timestamp.verify(message.scheduleDeadlineTime); + var error = $root.google.protobuf.Timestamp.verify(message.scheduleDeadlineTime, long + 1); if (error) return "scheduleDeadlineTime." + error; } @@ -49194,23 +52692,29 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance} SqlScheduledMaintenance */ - SqlScheduledMaintenance.fromObject = function fromObject(object) { + SqlScheduledMaintenance.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance(); if (object.startTime != null) { - if (typeof object.startTime !== "object") + if (!$util.isObject(object.startTime)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance.startTime: object expected"); - message.startTime = $root.google.protobuf.Timestamp.fromObject(object.startTime); + message.startTime = $root.google.protobuf.Timestamp.fromObject(object.startTime, long + 1); } if (object.canDefer != null) message.canDefer = Boolean(object.canDefer); if (object.canReschedule != null) message.canReschedule = Boolean(object.canReschedule); if (object.scheduleDeadlineTime != null) { - if (typeof object.scheduleDeadlineTime !== "object") + if (!$util.isObject(object.scheduleDeadlineTime)) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance.scheduleDeadlineTime: object expected"); - message.scheduleDeadlineTime = $root.google.protobuf.Timestamp.fromObject(object.scheduleDeadlineTime); + message.scheduleDeadlineTime = $root.google.protobuf.Timestamp.fromObject(object.scheduleDeadlineTime, long + 1); } return message; }; @@ -49224,23 +52728,27 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlScheduledMaintenance.toObject = function toObject(message, options) { + SqlScheduledMaintenance.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.startTime = null; object.canDefer = false; object.canReschedule = false; } - if (message.startTime != null && message.hasOwnProperty("startTime")) - object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options); - if (message.canDefer != null && message.hasOwnProperty("canDefer")) + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) + object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options, q + 1); + if (message.canDefer != null && Object.hasOwnProperty.call(message, "canDefer")) object.canDefer = message.canDefer; - if (message.canReschedule != null && message.hasOwnProperty("canReschedule")) + if (message.canReschedule != null && Object.hasOwnProperty.call(message, "canReschedule")) object.canReschedule = message.canReschedule; - if (message.scheduleDeadlineTime != null && message.hasOwnProperty("scheduleDeadlineTime")) { - object.scheduleDeadlineTime = $root.google.protobuf.Timestamp.toObject(message.scheduleDeadlineTime, options); + if (message.scheduleDeadlineTime != null && Object.hasOwnProperty.call(message, "scheduleDeadlineTime")) { + object.scheduleDeadlineTime = $root.google.protobuf.Timestamp.toObject(message.scheduleDeadlineTime, options, q + 1); if (options.oneofs) object._scheduleDeadlineTime = "scheduleDeadlineTime"; } @@ -49297,7 +52805,7 @@ function SqlOutOfDiskReport(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -49353,9 +52861,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlOutOfDiskReport.encode = function encode(message, writer) { + SqlOutOfDiskReport.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.sqlOutOfDiskState != null && Object.hasOwnProperty.call(message, "sqlOutOfDiskState")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.sqlOutOfDiskState); if (message.sqlMinRecommendedIncreaseSizeGb != null && Object.hasOwnProperty.call(message, "sqlMinRecommendedIncreaseSizeGb")) @@ -49373,7 +52885,7 @@ * @returns {$protobuf.Writer} Writer */ SqlOutOfDiskReport.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -49387,9 +52899,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlOutOfDiskReport.decode = function decode(reader, length, error) { + SqlOutOfDiskReport.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport(); while (reader.pos < end) { var tag = reader.uint32(); @@ -49405,7 +52921,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -49436,11 +52952,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlOutOfDiskReport.verify = function verify(message) { + SqlOutOfDiskReport.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.sqlOutOfDiskState != null && message.hasOwnProperty("sqlOutOfDiskState")) { + if (message.sqlOutOfDiskState != null && Object.hasOwnProperty.call(message, "sqlOutOfDiskState")) { properties._sqlOutOfDiskState = 1; switch (message.sqlOutOfDiskState) { default: @@ -49451,7 +52971,7 @@ break; } } - if (message.sqlMinRecommendedIncreaseSizeGb != null && message.hasOwnProperty("sqlMinRecommendedIncreaseSizeGb")) { + if (message.sqlMinRecommendedIncreaseSizeGb != null && Object.hasOwnProperty.call(message, "sqlMinRecommendedIncreaseSizeGb")) { properties._sqlMinRecommendedIncreaseSizeGb = 1; if (!$util.isInteger(message.sqlMinRecommendedIncreaseSizeGb)) return "sqlMinRecommendedIncreaseSizeGb: integer expected"; @@ -49467,9 +52987,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport} SqlOutOfDiskReport */ - SqlOutOfDiskReport.fromObject = function fromObject(object) { + SqlOutOfDiskReport.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport(); switch (object.sqlOutOfDiskState) { default: @@ -49505,16 +53031,20 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlOutOfDiskReport.toObject = function toObject(message, options) { + SqlOutOfDiskReport.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.sqlOutOfDiskState != null && message.hasOwnProperty("sqlOutOfDiskState")) { + if (message.sqlOutOfDiskState != null && Object.hasOwnProperty.call(message, "sqlOutOfDiskState")) { object.sqlOutOfDiskState = options.enums === String ? $root.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport.SqlOutOfDiskState[message.sqlOutOfDiskState] === undefined ? message.sqlOutOfDiskState : $root.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport.SqlOutOfDiskState[message.sqlOutOfDiskState] : message.sqlOutOfDiskState; if (options.oneofs) object._sqlOutOfDiskState = "sqlOutOfDiskState"; } - if (message.sqlMinRecommendedIncreaseSizeGb != null && message.hasOwnProperty("sqlMinRecommendedIncreaseSizeGb")) { + if (message.sqlMinRecommendedIncreaseSizeGb != null && Object.hasOwnProperty.call(message, "sqlMinRecommendedIncreaseSizeGb")) { object.sqlMinRecommendedIncreaseSizeGb = message.sqlMinRecommendedIncreaseSizeGb; if (options.oneofs) object._sqlMinRecommendedIncreaseSizeGb = "sqlMinRecommendedIncreaseSizeGb"; @@ -49613,7 +53143,7 @@ this.pscAutoConnections = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -49735,28 +53265,32 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PoolNodeConfig.encode = function encode(message, writer) { + PoolNodeConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.gceZone != null && Object.hasOwnProperty.call(message, "gceZone")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.gceZone); if (message.ipAddresses != null && message.ipAddresses.length) for (var i = 0; i < message.ipAddresses.length; ++i) - $root.google.cloud.sql.v1.IpMapping.encode(message.ipAddresses[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1.IpMapping.encode(message.ipAddresses[i], writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.dnsName); if (message.state != null && Object.hasOwnProperty.call(message, "state")) writer.uint32(/* id 5, wireType 0 =*/40).int32(message.state); if (message.dnsNames != null && message.dnsNames.length) for (var i = 0; i < message.dnsNames.length; ++i) - $root.google.cloud.sql.v1.DnsNameMapping.encode(message.dnsNames[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.cloud.sql.v1.DnsNameMapping.encode(message.dnsNames[i], writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.pscServiceAttachmentLink != null && Object.hasOwnProperty.call(message, "pscServiceAttachmentLink")) writer.uint32(/* id 7, wireType 2 =*/58).string(message.pscServiceAttachmentLink); if (message.pscAutoConnections != null && message.pscAutoConnections.length) for (var i = 0; i < message.pscAutoConnections.length; ++i) - $root.google.cloud.sql.v1.PscAutoConnectionConfig.encode(message.pscAutoConnections[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.cloud.sql.v1.PscAutoConnectionConfig.encode(message.pscAutoConnections[i], writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); return writer; }; @@ -49770,7 +53304,7 @@ * @returns {$protobuf.Writer} Writer */ PoolNodeConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -49784,9 +53318,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PoolNodeConfig.decode = function decode(reader, length, error) { + PoolNodeConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -49804,7 +53342,7 @@ case 3: { if (!(message.ipAddresses && message.ipAddresses.length)) message.ipAddresses = []; - message.ipAddresses.push($root.google.cloud.sql.v1.IpMapping.decode(reader, reader.uint32())); + message.ipAddresses.push($root.google.cloud.sql.v1.IpMapping.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 4: { @@ -49818,7 +53356,7 @@ case 6: { if (!(message.dnsNames && message.dnsNames.length)) message.dnsNames = []; - message.dnsNames.push($root.google.cloud.sql.v1.DnsNameMapping.decode(reader, reader.uint32())); + message.dnsNames.push($root.google.cloud.sql.v1.DnsNameMapping.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 7: { @@ -49828,11 +53366,11 @@ case 8: { if (!(message.pscAutoConnections && message.pscAutoConnections.length)) message.pscAutoConnections = []; - message.pscAutoConnections.push($root.google.cloud.sql.v1.PscAutoConnectionConfig.decode(reader, reader.uint32())); + message.pscAutoConnections.push($root.google.cloud.sql.v1.PscAutoConnectionConfig.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -49863,35 +53401,39 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PoolNodeConfig.verify = function verify(message) { + PoolNodeConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.name != null && message.hasOwnProperty("name")) { + if (message.name != null && Object.hasOwnProperty.call(message, "name")) { properties._name = 1; if (!$util.isString(message.name)) return "name: string expected"; } - if (message.gceZone != null && message.hasOwnProperty("gceZone")) { + if (message.gceZone != null && Object.hasOwnProperty.call(message, "gceZone")) { properties._gceZone = 1; if (!$util.isString(message.gceZone)) return "gceZone: string expected"; } - if (message.ipAddresses != null && message.hasOwnProperty("ipAddresses")) { + if (message.ipAddresses != null && Object.hasOwnProperty.call(message, "ipAddresses")) { if (!Array.isArray(message.ipAddresses)) return "ipAddresses: array expected"; for (var i = 0; i < message.ipAddresses.length; ++i) { - var error = $root.google.cloud.sql.v1.IpMapping.verify(message.ipAddresses[i]); + var error = $root.google.cloud.sql.v1.IpMapping.verify(message.ipAddresses[i], long + 1); if (error) return "ipAddresses." + error; } } - if (message.dnsName != null && message.hasOwnProperty("dnsName")) { + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) { properties._dnsName = 1; if (!$util.isString(message.dnsName)) return "dnsName: string expected"; } - if (message.state != null && message.hasOwnProperty("state")) { + if (message.state != null && Object.hasOwnProperty.call(message, "state")) { properties._state = 1; switch (message.state) { default: @@ -49908,25 +53450,25 @@ break; } } - if (message.dnsNames != null && message.hasOwnProperty("dnsNames")) { + if (message.dnsNames != null && Object.hasOwnProperty.call(message, "dnsNames")) { if (!Array.isArray(message.dnsNames)) return "dnsNames: array expected"; for (var i = 0; i < message.dnsNames.length; ++i) { - var error = $root.google.cloud.sql.v1.DnsNameMapping.verify(message.dnsNames[i]); + var error = $root.google.cloud.sql.v1.DnsNameMapping.verify(message.dnsNames[i], long + 1); if (error) return "dnsNames." + error; } } - if (message.pscServiceAttachmentLink != null && message.hasOwnProperty("pscServiceAttachmentLink")) { + if (message.pscServiceAttachmentLink != null && Object.hasOwnProperty.call(message, "pscServiceAttachmentLink")) { properties._pscServiceAttachmentLink = 1; if (!$util.isString(message.pscServiceAttachmentLink)) return "pscServiceAttachmentLink: string expected"; } - if (message.pscAutoConnections != null && message.hasOwnProperty("pscAutoConnections")) { + if (message.pscAutoConnections != null && Object.hasOwnProperty.call(message, "pscAutoConnections")) { if (!Array.isArray(message.pscAutoConnections)) return "pscAutoConnections: array expected"; for (var i = 0; i < message.pscAutoConnections.length; ++i) { - var error = $root.google.cloud.sql.v1.PscAutoConnectionConfig.verify(message.pscAutoConnections[i]); + var error = $root.google.cloud.sql.v1.PscAutoConnectionConfig.verify(message.pscAutoConnections[i], long + 1); if (error) return "pscAutoConnections." + error; } @@ -49942,9 +53484,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig} PoolNodeConfig */ - PoolNodeConfig.fromObject = function fromObject(object) { + PoolNodeConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig(); if (object.name != null) message.name = String(object.name); @@ -49955,9 +53503,9 @@ throw TypeError(".google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig.ipAddresses: array expected"); message.ipAddresses = []; for (var i = 0; i < object.ipAddresses.length; ++i) { - if (typeof object.ipAddresses[i] !== "object") + if (!$util.isObject(object.ipAddresses[i])) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig.ipAddresses: object expected"); - message.ipAddresses[i] = $root.google.cloud.sql.v1.IpMapping.fromObject(object.ipAddresses[i]); + message.ipAddresses[i] = $root.google.cloud.sql.v1.IpMapping.fromObject(object.ipAddresses[i], long + 1); } } if (object.dnsName != null) @@ -50011,9 +53559,9 @@ throw TypeError(".google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig.dnsNames: array expected"); message.dnsNames = []; for (var i = 0; i < object.dnsNames.length; ++i) { - if (typeof object.dnsNames[i] !== "object") + if (!$util.isObject(object.dnsNames[i])) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig.dnsNames: object expected"); - message.dnsNames[i] = $root.google.cloud.sql.v1.DnsNameMapping.fromObject(object.dnsNames[i]); + message.dnsNames[i] = $root.google.cloud.sql.v1.DnsNameMapping.fromObject(object.dnsNames[i], long + 1); } } if (object.pscServiceAttachmentLink != null) @@ -50023,9 +53571,9 @@ throw TypeError(".google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig.pscAutoConnections: array expected"); message.pscAutoConnections = []; for (var i = 0; i < object.pscAutoConnections.length; ++i) { - if (typeof object.pscAutoConnections[i] !== "object") + if (!$util.isObject(object.pscAutoConnections[i])) throw TypeError(".google.cloud.sql.v1.DatabaseInstance.PoolNodeConfig.pscAutoConnections: object expected"); - message.pscAutoConnections[i] = $root.google.cloud.sql.v1.PscAutoConnectionConfig.fromObject(object.pscAutoConnections[i]); + message.pscAutoConnections[i] = $root.google.cloud.sql.v1.PscAutoConnectionConfig.fromObject(object.pscAutoConnections[i], long + 1); } } return message; @@ -50040,21 +53588,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PoolNodeConfig.toObject = function toObject(message, options) { + PoolNodeConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.ipAddresses = []; object.dnsNames = []; object.pscAutoConnections = []; } - if (message.name != null && message.hasOwnProperty("name")) { + if (message.name != null && Object.hasOwnProperty.call(message, "name")) { object.name = message.name; if (options.oneofs) object._name = "name"; } - if (message.gceZone != null && message.hasOwnProperty("gceZone")) { + if (message.gceZone != null && Object.hasOwnProperty.call(message, "gceZone")) { object.gceZone = message.gceZone; if (options.oneofs) object._gceZone = "gceZone"; @@ -50062,14 +53614,14 @@ if (message.ipAddresses && message.ipAddresses.length) { object.ipAddresses = []; for (var j = 0; j < message.ipAddresses.length; ++j) - object.ipAddresses[j] = $root.google.cloud.sql.v1.IpMapping.toObject(message.ipAddresses[j], options); + object.ipAddresses[j] = $root.google.cloud.sql.v1.IpMapping.toObject(message.ipAddresses[j], options, q + 1); } - if (message.dnsName != null && message.hasOwnProperty("dnsName")) { + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) { object.dnsName = message.dnsName; if (options.oneofs) object._dnsName = "dnsName"; } - if (message.state != null && message.hasOwnProperty("state")) { + if (message.state != null && Object.hasOwnProperty.call(message, "state")) { object.state = options.enums === String ? $root.google.cloud.sql.v1.DatabaseInstance.SqlInstanceState[message.state] === undefined ? message.state : $root.google.cloud.sql.v1.DatabaseInstance.SqlInstanceState[message.state] : message.state; if (options.oneofs) object._state = "state"; @@ -50077,9 +53629,9 @@ if (message.dnsNames && message.dnsNames.length) { object.dnsNames = []; for (var j = 0; j < message.dnsNames.length; ++j) - object.dnsNames[j] = $root.google.cloud.sql.v1.DnsNameMapping.toObject(message.dnsNames[j], options); + object.dnsNames[j] = $root.google.cloud.sql.v1.DnsNameMapping.toObject(message.dnsNames[j], options, q + 1); } - if (message.pscServiceAttachmentLink != null && message.hasOwnProperty("pscServiceAttachmentLink")) { + if (message.pscServiceAttachmentLink != null && Object.hasOwnProperty.call(message, "pscServiceAttachmentLink")) { object.pscServiceAttachmentLink = message.pscServiceAttachmentLink; if (options.oneofs) object._pscServiceAttachmentLink = "pscServiceAttachmentLink"; @@ -50087,7 +53639,7 @@ if (message.pscAutoConnections && message.pscAutoConnections.length) { object.pscAutoConnections = []; for (var j = 0; j < message.pscAutoConnections.length; ++j) - object.pscAutoConnections[j] = $root.google.cloud.sql.v1.PscAutoConnectionConfig.toObject(message.pscAutoConnections[j], options); + object.pscAutoConnections[j] = $root.google.cloud.sql.v1.PscAutoConnectionConfig.toObject(message.pscAutoConnections[j], options, q + 1); } return object; }; @@ -50149,7 +53701,7 @@ function GeminiInstanceConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -50261,9 +53813,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GeminiInstanceConfig.encode = function encode(message, writer) { + GeminiInstanceConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.entitled != null && Object.hasOwnProperty.call(message, "entitled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.entitled); if (message.googleVacuumMgmtEnabled != null && Object.hasOwnProperty.call(message, "googleVacuumMgmtEnabled")) @@ -50289,7 +53845,7 @@ * @returns {$protobuf.Writer} Writer */ GeminiInstanceConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -50303,9 +53859,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GeminiInstanceConfig.decode = function decode(reader, length, error) { + GeminiInstanceConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.GeminiInstanceConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -50337,7 +53897,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -50368,36 +53928,40 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GeminiInstanceConfig.verify = function verify(message) { + GeminiInstanceConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.entitled != null && message.hasOwnProperty("entitled")) { + if (message.entitled != null && Object.hasOwnProperty.call(message, "entitled")) { properties._entitled = 1; if (typeof message.entitled !== "boolean") return "entitled: boolean expected"; } - if (message.googleVacuumMgmtEnabled != null && message.hasOwnProperty("googleVacuumMgmtEnabled")) { + if (message.googleVacuumMgmtEnabled != null && Object.hasOwnProperty.call(message, "googleVacuumMgmtEnabled")) { properties._googleVacuumMgmtEnabled = 1; if (typeof message.googleVacuumMgmtEnabled !== "boolean") return "googleVacuumMgmtEnabled: boolean expected"; } - if (message.oomSessionCancelEnabled != null && message.hasOwnProperty("oomSessionCancelEnabled")) { + if (message.oomSessionCancelEnabled != null && Object.hasOwnProperty.call(message, "oomSessionCancelEnabled")) { properties._oomSessionCancelEnabled = 1; if (typeof message.oomSessionCancelEnabled !== "boolean") return "oomSessionCancelEnabled: boolean expected"; } - if (message.activeQueryEnabled != null && message.hasOwnProperty("activeQueryEnabled")) { + if (message.activeQueryEnabled != null && Object.hasOwnProperty.call(message, "activeQueryEnabled")) { properties._activeQueryEnabled = 1; if (typeof message.activeQueryEnabled !== "boolean") return "activeQueryEnabled: boolean expected"; } - if (message.indexAdvisorEnabled != null && message.hasOwnProperty("indexAdvisorEnabled")) { + if (message.indexAdvisorEnabled != null && Object.hasOwnProperty.call(message, "indexAdvisorEnabled")) { properties._indexAdvisorEnabled = 1; if (typeof message.indexAdvisorEnabled !== "boolean") return "indexAdvisorEnabled: boolean expected"; } - if (message.flagRecommenderEnabled != null && message.hasOwnProperty("flagRecommenderEnabled")) { + if (message.flagRecommenderEnabled != null && Object.hasOwnProperty.call(message, "flagRecommenderEnabled")) { properties._flagRecommenderEnabled = 1; if (typeof message.flagRecommenderEnabled !== "boolean") return "flagRecommenderEnabled: boolean expected"; @@ -50413,9 +53977,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.GeminiInstanceConfig} GeminiInstanceConfig */ - GeminiInstanceConfig.fromObject = function fromObject(object) { + GeminiInstanceConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.GeminiInstanceConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.GeminiInstanceConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.GeminiInstanceConfig(); if (object.entitled != null) message.entitled = Boolean(object.entitled); @@ -50441,36 +54011,40 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GeminiInstanceConfig.toObject = function toObject(message, options) { + GeminiInstanceConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.entitled != null && message.hasOwnProperty("entitled")) { + if (message.entitled != null && Object.hasOwnProperty.call(message, "entitled")) { object.entitled = message.entitled; if (options.oneofs) object._entitled = "entitled"; } - if (message.googleVacuumMgmtEnabled != null && message.hasOwnProperty("googleVacuumMgmtEnabled")) { + if (message.googleVacuumMgmtEnabled != null && Object.hasOwnProperty.call(message, "googleVacuumMgmtEnabled")) { object.googleVacuumMgmtEnabled = message.googleVacuumMgmtEnabled; if (options.oneofs) object._googleVacuumMgmtEnabled = "googleVacuumMgmtEnabled"; } - if (message.oomSessionCancelEnabled != null && message.hasOwnProperty("oomSessionCancelEnabled")) { + if (message.oomSessionCancelEnabled != null && Object.hasOwnProperty.call(message, "oomSessionCancelEnabled")) { object.oomSessionCancelEnabled = message.oomSessionCancelEnabled; if (options.oneofs) object._oomSessionCancelEnabled = "oomSessionCancelEnabled"; } - if (message.activeQueryEnabled != null && message.hasOwnProperty("activeQueryEnabled")) { + if (message.activeQueryEnabled != null && Object.hasOwnProperty.call(message, "activeQueryEnabled")) { object.activeQueryEnabled = message.activeQueryEnabled; if (options.oneofs) object._activeQueryEnabled = "activeQueryEnabled"; } - if (message.indexAdvisorEnabled != null && message.hasOwnProperty("indexAdvisorEnabled")) { + if (message.indexAdvisorEnabled != null && Object.hasOwnProperty.call(message, "indexAdvisorEnabled")) { object.indexAdvisorEnabled = message.indexAdvisorEnabled; if (options.oneofs) object._indexAdvisorEnabled = "indexAdvisorEnabled"; } - if (message.flagRecommenderEnabled != null && message.hasOwnProperty("flagRecommenderEnabled")) { + if (message.flagRecommenderEnabled != null && Object.hasOwnProperty.call(message, "flagRecommenderEnabled")) { object.flagRecommenderEnabled = message.flagRecommenderEnabled; if (options.oneofs) object._flagRecommenderEnabled = "flagRecommenderEnabled"; @@ -50529,7 +54103,7 @@ function ReplicationCluster(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -50578,9 +54152,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ReplicationCluster.encode = function encode(message, writer) { + ReplicationCluster.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.psaWriteEndpoint != null && Object.hasOwnProperty.call(message, "psaWriteEndpoint")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.psaWriteEndpoint); if (message.failoverDrReplicaName != null && Object.hasOwnProperty.call(message, "failoverDrReplicaName")) @@ -50600,7 +54178,7 @@ * @returns {$protobuf.Writer} Writer */ ReplicationCluster.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -50614,9 +54192,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ReplicationCluster.decode = function decode(reader, length, error) { + ReplicationCluster.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ReplicationCluster(); while (reader.pos < end) { var tag = reader.uint32(); @@ -50636,7 +54218,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -50667,16 +54249,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ReplicationCluster.verify = function verify(message) { + ReplicationCluster.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.psaWriteEndpoint != null && message.hasOwnProperty("psaWriteEndpoint")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.psaWriteEndpoint != null && Object.hasOwnProperty.call(message, "psaWriteEndpoint")) if (!$util.isString(message.psaWriteEndpoint)) return "psaWriteEndpoint: string expected"; - if (message.failoverDrReplicaName != null && message.hasOwnProperty("failoverDrReplicaName")) + if (message.failoverDrReplicaName != null && Object.hasOwnProperty.call(message, "failoverDrReplicaName")) if (!$util.isString(message.failoverDrReplicaName)) return "failoverDrReplicaName: string expected"; - if (message.drReplica != null && message.hasOwnProperty("drReplica")) + if (message.drReplica != null && Object.hasOwnProperty.call(message, "drReplica")) if (typeof message.drReplica !== "boolean") return "drReplica: boolean expected"; return null; @@ -50690,9 +54276,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ReplicationCluster} ReplicationCluster */ - ReplicationCluster.fromObject = function fromObject(object) { + ReplicationCluster.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ReplicationCluster) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ReplicationCluster: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ReplicationCluster(); if (object.psaWriteEndpoint != null) message.psaWriteEndpoint = String(object.psaWriteEndpoint); @@ -50712,20 +54304,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ReplicationCluster.toObject = function toObject(message, options) { + ReplicationCluster.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.psaWriteEndpoint = ""; object.failoverDrReplicaName = ""; object.drReplica = false; } - if (message.psaWriteEndpoint != null && message.hasOwnProperty("psaWriteEndpoint")) + if (message.psaWriteEndpoint != null && Object.hasOwnProperty.call(message, "psaWriteEndpoint")) object.psaWriteEndpoint = message.psaWriteEndpoint; - if (message.failoverDrReplicaName != null && message.hasOwnProperty("failoverDrReplicaName")) + if (message.failoverDrReplicaName != null && Object.hasOwnProperty.call(message, "failoverDrReplicaName")) object.failoverDrReplicaName = message.failoverDrReplicaName; - if (message.drReplica != null && message.hasOwnProperty("drReplica")) + if (message.drReplica != null && Object.hasOwnProperty.call(message, "drReplica")) object.drReplica = message.drReplica; return object; }; @@ -50781,7 +54377,7 @@ function AvailableDatabaseVersion(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -50851,9 +54447,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - AvailableDatabaseVersion.encode = function encode(message, writer) { + AvailableDatabaseVersion.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.majorVersion != null && Object.hasOwnProperty.call(message, "majorVersion")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.majorVersion); if (message.name != null && Object.hasOwnProperty.call(message, "name")) @@ -50873,7 +54473,7 @@ * @returns {$protobuf.Writer} Writer */ AvailableDatabaseVersion.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -50887,9 +54487,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AvailableDatabaseVersion.decode = function decode(reader, length, error) { + AvailableDatabaseVersion.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.AvailableDatabaseVersion(); while (reader.pos < end) { var tag = reader.uint32(); @@ -50909,7 +54513,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -50940,21 +54544,25 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - AvailableDatabaseVersion.verify = function verify(message) { + AvailableDatabaseVersion.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.majorVersion != null && message.hasOwnProperty("majorVersion")) { + if (message.majorVersion != null && Object.hasOwnProperty.call(message, "majorVersion")) { properties._majorVersion = 1; if (!$util.isString(message.majorVersion)) return "majorVersion: string expected"; } - if (message.name != null && message.hasOwnProperty("name")) { + if (message.name != null && Object.hasOwnProperty.call(message, "name")) { properties._name = 1; if (!$util.isString(message.name)) return "name: string expected"; } - if (message.displayName != null && message.hasOwnProperty("displayName")) { + if (message.displayName != null && Object.hasOwnProperty.call(message, "displayName")) { properties._displayName = 1; if (!$util.isString(message.displayName)) return "displayName: string expected"; @@ -50970,9 +54578,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.AvailableDatabaseVersion} AvailableDatabaseVersion */ - AvailableDatabaseVersion.fromObject = function fromObject(object) { + AvailableDatabaseVersion.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.AvailableDatabaseVersion) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.AvailableDatabaseVersion: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.AvailableDatabaseVersion(); if (object.majorVersion != null) message.majorVersion = String(object.majorVersion); @@ -50992,21 +54606,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - AvailableDatabaseVersion.toObject = function toObject(message, options) { + AvailableDatabaseVersion.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.majorVersion != null && message.hasOwnProperty("majorVersion")) { + if (message.majorVersion != null && Object.hasOwnProperty.call(message, "majorVersion")) { object.majorVersion = message.majorVersion; if (options.oneofs) object._majorVersion = "majorVersion"; } - if (message.name != null && message.hasOwnProperty("name")) { + if (message.name != null && Object.hasOwnProperty.call(message, "name")) { object.name = message.name; if (options.oneofs) object._name = "name"; } - if (message.displayName != null && message.hasOwnProperty("displayName")) { + if (message.displayName != null && Object.hasOwnProperty.call(message, "displayName")) { object.displayName = message.displayName; if (options.oneofs) object._displayName = "displayName"; @@ -51063,7 +54681,7 @@ function SqlInstancesRescheduleMaintenanceRequestBody(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -51096,11 +54714,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesRescheduleMaintenanceRequestBody.encode = function encode(message, writer) { + SqlInstancesRescheduleMaintenanceRequestBody.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.reschedule != null && Object.hasOwnProperty.call(message, "reschedule")) - $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.encode(message.reschedule, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.encode(message.reschedule, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -51114,7 +54736,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesRescheduleMaintenanceRequestBody.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -51128,9 +54750,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesRescheduleMaintenanceRequestBody.decode = function decode(reader, length, error) { + SqlInstancesRescheduleMaintenanceRequestBody.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody(); while (reader.pos < end) { var tag = reader.uint32(); @@ -51138,11 +54764,11 @@ break; switch (tag >>> 3) { case 3: { - message.reschedule = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.decode(reader, reader.uint32()); + message.reschedule = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -51173,11 +54799,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesRescheduleMaintenanceRequestBody.verify = function verify(message) { + SqlInstancesRescheduleMaintenanceRequestBody.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.reschedule != null && message.hasOwnProperty("reschedule")) { - var error = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.verify(message.reschedule); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.reschedule != null && Object.hasOwnProperty.call(message, "reschedule")) { + var error = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.verify(message.reschedule, long + 1); if (error) return "reschedule." + error; } @@ -51192,14 +54822,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody} SqlInstancesRescheduleMaintenanceRequestBody */ - SqlInstancesRescheduleMaintenanceRequestBody.fromObject = function fromObject(object) { + SqlInstancesRescheduleMaintenanceRequestBody.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody(); if (object.reschedule != null) { - if (typeof object.reschedule !== "object") + if (!$util.isObject(object.reschedule)) throw TypeError(".google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.reschedule: object expected"); - message.reschedule = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.fromObject(object.reschedule); + message.reschedule = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.fromObject(object.reschedule, long + 1); } return message; }; @@ -51213,14 +54849,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesRescheduleMaintenanceRequestBody.toObject = function toObject(message, options) { + SqlInstancesRescheduleMaintenanceRequestBody.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.reschedule = null; - if (message.reschedule != null && message.hasOwnProperty("reschedule")) - object.reschedule = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.toObject(message.reschedule, options); + if (message.reschedule != null && Object.hasOwnProperty.call(message, "reschedule")) + object.reschedule = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.toObject(message.reschedule, options, q + 1); return object; }; @@ -51289,7 +54929,7 @@ function Reschedule(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -51330,13 +54970,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Reschedule.encode = function encode(message, writer) { + Reschedule.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.rescheduleType != null && Object.hasOwnProperty.call(message, "rescheduleType")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.rescheduleType); if (message.scheduleTime != null && Object.hasOwnProperty.call(message, "scheduleTime")) - $root.google.protobuf.Timestamp.encode(message.scheduleTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.scheduleTime, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -51350,7 +54994,7 @@ * @returns {$protobuf.Writer} Writer */ Reschedule.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -51364,9 +55008,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Reschedule.decode = function decode(reader, length, error) { + Reschedule.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule(); while (reader.pos < end) { var tag = reader.uint32(); @@ -51378,11 +55026,11 @@ break; } case 2: { - message.scheduleTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.scheduleTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -51413,10 +55061,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Reschedule.verify = function verify(message) { + Reschedule.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.rescheduleType != null && message.hasOwnProperty("rescheduleType")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.rescheduleType != null && Object.hasOwnProperty.call(message, "rescheduleType")) switch (message.rescheduleType) { default: return "rescheduleType: enum value expected"; @@ -51426,8 +55078,8 @@ case 3: break; } - if (message.scheduleTime != null && message.hasOwnProperty("scheduleTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.scheduleTime); + if (message.scheduleTime != null && Object.hasOwnProperty.call(message, "scheduleTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.scheduleTime, long + 1); if (error) return "scheduleTime." + error; } @@ -51442,9 +55094,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule} Reschedule */ - Reschedule.fromObject = function fromObject(object) { + Reschedule.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule(); switch (object.rescheduleType) { default: @@ -51471,9 +55129,9 @@ break; } if (object.scheduleTime != null) { - if (typeof object.scheduleTime !== "object") + if (!$util.isObject(object.scheduleTime)) throw TypeError(".google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.scheduleTime: object expected"); - message.scheduleTime = $root.google.protobuf.Timestamp.fromObject(object.scheduleTime); + message.scheduleTime = $root.google.protobuf.Timestamp.fromObject(object.scheduleTime, long + 1); } return message; }; @@ -51487,18 +55145,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Reschedule.toObject = function toObject(message, options) { + Reschedule.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.rescheduleType = options.enums === String ? "RESCHEDULE_TYPE_UNSPECIFIED" : 0; object.scheduleTime = null; } - if (message.rescheduleType != null && message.hasOwnProperty("rescheduleType")) + if (message.rescheduleType != null && Object.hasOwnProperty.call(message, "rescheduleType")) object.rescheduleType = options.enums === String ? $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.RescheduleType[message.rescheduleType] === undefined ? message.rescheduleType : $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.RescheduleType[message.rescheduleType] : message.rescheduleType; - if (message.scheduleTime != null && message.hasOwnProperty("scheduleTime")) - object.scheduleTime = $root.google.protobuf.Timestamp.toObject(message.scheduleTime, options); + if (message.scheduleTime != null && Object.hasOwnProperty.call(message, "scheduleTime")) + object.scheduleTime = $root.google.protobuf.Timestamp.toObject(message.scheduleTime, options, q + 1); return object; }; @@ -51558,7 +55220,7 @@ function DemoteMasterContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -51623,17 +55285,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DemoteMasterContext.encode = function encode(message, writer) { + DemoteMasterContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.verifyGtidConsistency != null && Object.hasOwnProperty.call(message, "verifyGtidConsistency")) - $root.google.protobuf.BoolValue.encode(message.verifyGtidConsistency, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.verifyGtidConsistency, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.masterInstanceName != null && Object.hasOwnProperty.call(message, "masterInstanceName")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.masterInstanceName); if (message.replicaConfiguration != null && Object.hasOwnProperty.call(message, "replicaConfiguration")) - $root.google.cloud.sql.v1.DemoteMasterConfiguration.encode(message.replicaConfiguration, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1.DemoteMasterConfiguration.encode(message.replicaConfiguration, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.skipReplicationSetup != null && Object.hasOwnProperty.call(message, "skipReplicationSetup")) writer.uint32(/* id 5, wireType 0 =*/40).bool(message.skipReplicationSetup); return writer; @@ -51649,7 +55315,7 @@ * @returns {$protobuf.Writer} Writer */ DemoteMasterContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -51663,9 +55329,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DemoteMasterContext.decode = function decode(reader, length, error) { + DemoteMasterContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.DemoteMasterContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -51677,7 +55347,7 @@ break; } case 2: { - message.verifyGtidConsistency = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.verifyGtidConsistency = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -51685,7 +55355,7 @@ break; } case 4: { - message.replicaConfiguration = $root.google.cloud.sql.v1.DemoteMasterConfiguration.decode(reader, reader.uint32()); + message.replicaConfiguration = $root.google.cloud.sql.v1.DemoteMasterConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -51693,7 +55363,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -51724,26 +55394,30 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DemoteMasterContext.verify = function verify(message) { + DemoteMasterContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.verifyGtidConsistency != null && message.hasOwnProperty("verifyGtidConsistency")) { - var error = $root.google.protobuf.BoolValue.verify(message.verifyGtidConsistency); + if (message.verifyGtidConsistency != null && Object.hasOwnProperty.call(message, "verifyGtidConsistency")) { + var error = $root.google.protobuf.BoolValue.verify(message.verifyGtidConsistency, long + 1); if (error) return "verifyGtidConsistency." + error; } - if (message.masterInstanceName != null && message.hasOwnProperty("masterInstanceName")) + if (message.masterInstanceName != null && Object.hasOwnProperty.call(message, "masterInstanceName")) if (!$util.isString(message.masterInstanceName)) return "masterInstanceName: string expected"; - if (message.replicaConfiguration != null && message.hasOwnProperty("replicaConfiguration")) { - var error = $root.google.cloud.sql.v1.DemoteMasterConfiguration.verify(message.replicaConfiguration); + if (message.replicaConfiguration != null && Object.hasOwnProperty.call(message, "replicaConfiguration")) { + var error = $root.google.cloud.sql.v1.DemoteMasterConfiguration.verify(message.replicaConfiguration, long + 1); if (error) return "replicaConfiguration." + error; } - if (message.skipReplicationSetup != null && message.hasOwnProperty("skipReplicationSetup")) + if (message.skipReplicationSetup != null && Object.hasOwnProperty.call(message, "skipReplicationSetup")) if (typeof message.skipReplicationSetup !== "boolean") return "skipReplicationSetup: boolean expected"; return null; @@ -51757,23 +55431,29 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.DemoteMasterContext} DemoteMasterContext */ - DemoteMasterContext.fromObject = function fromObject(object) { + DemoteMasterContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.DemoteMasterContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.DemoteMasterContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.DemoteMasterContext(); if (object.kind != null) message.kind = String(object.kind); if (object.verifyGtidConsistency != null) { - if (typeof object.verifyGtidConsistency !== "object") + if (!$util.isObject(object.verifyGtidConsistency)) throw TypeError(".google.cloud.sql.v1.DemoteMasterContext.verifyGtidConsistency: object expected"); - message.verifyGtidConsistency = $root.google.protobuf.BoolValue.fromObject(object.verifyGtidConsistency); + message.verifyGtidConsistency = $root.google.protobuf.BoolValue.fromObject(object.verifyGtidConsistency, long + 1); } if (object.masterInstanceName != null) message.masterInstanceName = String(object.masterInstanceName); if (object.replicaConfiguration != null) { - if (typeof object.replicaConfiguration !== "object") + if (!$util.isObject(object.replicaConfiguration)) throw TypeError(".google.cloud.sql.v1.DemoteMasterContext.replicaConfiguration: object expected"); - message.replicaConfiguration = $root.google.cloud.sql.v1.DemoteMasterConfiguration.fromObject(object.replicaConfiguration); + message.replicaConfiguration = $root.google.cloud.sql.v1.DemoteMasterConfiguration.fromObject(object.replicaConfiguration, long + 1); } if (object.skipReplicationSetup != null) message.skipReplicationSetup = Boolean(object.skipReplicationSetup); @@ -51789,9 +55469,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DemoteMasterContext.toObject = function toObject(message, options) { + DemoteMasterContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -51800,15 +55484,15 @@ object.replicaConfiguration = null; object.skipReplicationSetup = false; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.verifyGtidConsistency != null && message.hasOwnProperty("verifyGtidConsistency")) - object.verifyGtidConsistency = $root.google.protobuf.BoolValue.toObject(message.verifyGtidConsistency, options); - if (message.masterInstanceName != null && message.hasOwnProperty("masterInstanceName")) + if (message.verifyGtidConsistency != null && Object.hasOwnProperty.call(message, "verifyGtidConsistency")) + object.verifyGtidConsistency = $root.google.protobuf.BoolValue.toObject(message.verifyGtidConsistency, options, q + 1); + if (message.masterInstanceName != null && Object.hasOwnProperty.call(message, "masterInstanceName")) object.masterInstanceName = message.masterInstanceName; - if (message.replicaConfiguration != null && message.hasOwnProperty("replicaConfiguration")) - object.replicaConfiguration = $root.google.cloud.sql.v1.DemoteMasterConfiguration.toObject(message.replicaConfiguration, options); - if (message.skipReplicationSetup != null && message.hasOwnProperty("skipReplicationSetup")) + if (message.replicaConfiguration != null && Object.hasOwnProperty.call(message, "replicaConfiguration")) + object.replicaConfiguration = $root.google.cloud.sql.v1.DemoteMasterConfiguration.toObject(message.replicaConfiguration, options, q + 1); + if (message.skipReplicationSetup != null && Object.hasOwnProperty.call(message, "skipReplicationSetup")) object.skipReplicationSetup = message.skipReplicationSetup; return object; }; @@ -51863,7 +55547,7 @@ function DemoteContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -51904,9 +55588,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DemoteContext.encode = function encode(message, writer) { + DemoteContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.sourceRepresentativeInstanceName != null && Object.hasOwnProperty.call(message, "sourceRepresentativeInstanceName")) @@ -51924,7 +55612,7 @@ * @returns {$protobuf.Writer} Writer */ DemoteContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -51938,9 +55626,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DemoteContext.decode = function decode(reader, length, error) { + DemoteContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.DemoteContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -51956,7 +55648,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -51987,13 +55679,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DemoteContext.verify = function verify(message) { + DemoteContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.sourceRepresentativeInstanceName != null && message.hasOwnProperty("sourceRepresentativeInstanceName")) + if (message.sourceRepresentativeInstanceName != null && Object.hasOwnProperty.call(message, "sourceRepresentativeInstanceName")) if (!$util.isString(message.sourceRepresentativeInstanceName)) return "sourceRepresentativeInstanceName: string expected"; return null; @@ -52007,9 +55703,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.DemoteContext} DemoteContext */ - DemoteContext.fromObject = function fromObject(object) { + DemoteContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.DemoteContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.DemoteContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.DemoteContext(); if (object.kind != null) message.kind = String(object.kind); @@ -52027,17 +55729,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DemoteContext.toObject = function toObject(message, options) { + DemoteContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.sourceRepresentativeInstanceName = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.sourceRepresentativeInstanceName != null && message.hasOwnProperty("sourceRepresentativeInstanceName")) + if (message.sourceRepresentativeInstanceName != null && Object.hasOwnProperty.call(message, "sourceRepresentativeInstanceName")) object.sourceRepresentativeInstanceName = message.sourceRepresentativeInstanceName; return object; }; @@ -52092,7 +55798,7 @@ function FailoverContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -52133,9 +55839,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FailoverContext.encode = function encode(message, writer) { + FailoverContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.settingsVersion != null && Object.hasOwnProperty.call(message, "settingsVersion")) writer.uint32(/* id 1, wireType 0 =*/8).int64(message.settingsVersion); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -52153,7 +55863,7 @@ * @returns {$protobuf.Writer} Writer */ FailoverContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -52167,9 +55877,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FailoverContext.decode = function decode(reader, length, error) { + FailoverContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.FailoverContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -52185,7 +55899,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -52216,13 +55930,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FailoverContext.verify = function verify(message) { + FailoverContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.settingsVersion != null && message.hasOwnProperty("settingsVersion")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.settingsVersion != null && Object.hasOwnProperty.call(message, "settingsVersion")) if (!$util.isInteger(message.settingsVersion) && !(message.settingsVersion && $util.isInteger(message.settingsVersion.low) && $util.isInteger(message.settingsVersion.high))) return "settingsVersion: integer|Long expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -52236,13 +55954,19 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.FailoverContext} FailoverContext */ - FailoverContext.fromObject = function fromObject(object) { + FailoverContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.FailoverContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.FailoverContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.FailoverContext(); if (object.settingsVersion != null) if ($util.Long) - (message.settingsVersion = $util.Long.fromValue(object.settingsVersion)).unsigned = false; + message.settingsVersion = $util.Long.fromValue(object.settingsVersion, false); else if (typeof object.settingsVersion === "string") message.settingsVersion = parseInt(object.settingsVersion, 10); else if (typeof object.settingsVersion === "number") @@ -52263,24 +55987,30 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FailoverContext.toObject = function toObject(message, options) { + FailoverContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { if ($util.Long) { var long = new $util.Long(0, 0, false); - object.settingsVersion = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.settingsVersion = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.settingsVersion = options.longs === String ? "0" : 0; + object.settingsVersion = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.kind = ""; } - if (message.settingsVersion != null && message.hasOwnProperty("settingsVersion")) - if (typeof message.settingsVersion === "number") + if (message.settingsVersion != null && Object.hasOwnProperty.call(message, "settingsVersion")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.settingsVersion = typeof message.settingsVersion === "number" ? BigInt(message.settingsVersion) : $util.Long.fromBits(message.settingsVersion.low >>> 0, message.settingsVersion.high >>> 0, false).toBigInt(); + else if (typeof message.settingsVersion === "number") object.settingsVersion = options.longs === String ? String(message.settingsVersion) : message.settingsVersion; else object.settingsVersion = options.longs === String ? $util.Long.prototype.toString.call(message.settingsVersion) : options.longs === Number ? new $util.LongBits(message.settingsVersion.low >>> 0, message.settingsVersion.high >>> 0).toNumber() : message.settingsVersion; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -52337,7 +56067,7 @@ function RestoreBackupContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -52394,9 +56124,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RestoreBackupContext.encode = function encode(message, writer) { + RestoreBackupContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.backupRunId != null && Object.hasOwnProperty.call(message, "backupRunId")) @@ -52418,7 +56152,7 @@ * @returns {$protobuf.Writer} Writer */ RestoreBackupContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -52432,9 +56166,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RestoreBackupContext.decode = function decode(reader, length, error) { + RestoreBackupContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.RestoreBackupContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -52458,7 +56196,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -52489,19 +56227,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RestoreBackupContext.verify = function verify(message) { + RestoreBackupContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.backupRunId != null && message.hasOwnProperty("backupRunId")) + if (message.backupRunId != null && Object.hasOwnProperty.call(message, "backupRunId")) if (!$util.isInteger(message.backupRunId) && !(message.backupRunId && $util.isInteger(message.backupRunId.low) && $util.isInteger(message.backupRunId.high))) return "backupRunId: integer|Long expected"; - if (message.instanceId != null && message.hasOwnProperty("instanceId")) + if (message.instanceId != null && Object.hasOwnProperty.call(message, "instanceId")) if (!$util.isString(message.instanceId)) return "instanceId: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -52515,15 +56257,21 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.RestoreBackupContext} RestoreBackupContext */ - RestoreBackupContext.fromObject = function fromObject(object) { + RestoreBackupContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.RestoreBackupContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.RestoreBackupContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.RestoreBackupContext(); if (object.kind != null) message.kind = String(object.kind); if (object.backupRunId != null) if ($util.Long) - (message.backupRunId = $util.Long.fromValue(object.backupRunId)).unsigned = false; + message.backupRunId = $util.Long.fromValue(object.backupRunId, false); else if (typeof object.backupRunId === "string") message.backupRunId = parseInt(object.backupRunId, 10); else if (typeof object.backupRunId === "number") @@ -52546,30 +56294,36 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RestoreBackupContext.toObject = function toObject(message, options) { + RestoreBackupContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.backupRunId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.backupRunId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.backupRunId = options.longs === String ? "0" : 0; + object.backupRunId = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.instanceId = ""; object.project = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.backupRunId != null && message.hasOwnProperty("backupRunId")) - if (typeof message.backupRunId === "number") + if (message.backupRunId != null && Object.hasOwnProperty.call(message, "backupRunId")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.backupRunId = typeof message.backupRunId === "number" ? BigInt(message.backupRunId) : $util.Long.fromBits(message.backupRunId.low >>> 0, message.backupRunId.high >>> 0, false).toBigInt(); + else if (typeof message.backupRunId === "number") object.backupRunId = options.longs === String ? String(message.backupRunId) : message.backupRunId; else object.backupRunId = options.longs === String ? $util.Long.prototype.toString.call(message.backupRunId) : options.longs === Number ? new $util.LongBits(message.backupRunId.low >>> 0, message.backupRunId.high >>> 0).toNumber() : message.backupRunId; - if (message.instanceId != null && message.hasOwnProperty("instanceId")) + if (message.instanceId != null && Object.hasOwnProperty.call(message, "instanceId")) object.instanceId = message.instanceId; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -52624,7 +56378,7 @@ function RotateServerCaContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -52665,9 +56419,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RotateServerCaContext.encode = function encode(message, writer) { + RotateServerCaContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) @@ -52685,7 +56443,7 @@ * @returns {$protobuf.Writer} Writer */ RotateServerCaContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -52699,9 +56457,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RotateServerCaContext.decode = function decode(reader, length, error) { + RotateServerCaContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.RotateServerCaContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -52717,7 +56479,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -52748,13 +56510,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RotateServerCaContext.verify = function verify(message) { + RotateServerCaContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.nextVersion != null && message.hasOwnProperty("nextVersion")) + if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) if (!$util.isString(message.nextVersion)) return "nextVersion: string expected"; return null; @@ -52768,9 +56534,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.RotateServerCaContext} RotateServerCaContext */ - RotateServerCaContext.fromObject = function fromObject(object) { + RotateServerCaContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.RotateServerCaContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.RotateServerCaContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.RotateServerCaContext(); if (object.kind != null) message.kind = String(object.kind); @@ -52788,17 +56560,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RotateServerCaContext.toObject = function toObject(message, options) { + RotateServerCaContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.nextVersion = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.nextVersion != null && message.hasOwnProperty("nextVersion")) + if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) object.nextVersion = message.nextVersion; return object; }; @@ -52853,7 +56629,7 @@ function RotateServerCertificateContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -52894,9 +56670,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RotateServerCertificateContext.encode = function encode(message, writer) { + RotateServerCertificateContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) @@ -52914,7 +56694,7 @@ * @returns {$protobuf.Writer} Writer */ RotateServerCertificateContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -52928,9 +56708,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RotateServerCertificateContext.decode = function decode(reader, length, error) { + RotateServerCertificateContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.RotateServerCertificateContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -52946,7 +56730,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -52977,13 +56761,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RotateServerCertificateContext.verify = function verify(message) { + RotateServerCertificateContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.nextVersion != null && message.hasOwnProperty("nextVersion")) + if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) if (!$util.isString(message.nextVersion)) return "nextVersion: string expected"; return null; @@ -52997,9 +56785,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.RotateServerCertificateContext} RotateServerCertificateContext */ - RotateServerCertificateContext.fromObject = function fromObject(object) { + RotateServerCertificateContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.RotateServerCertificateContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.RotateServerCertificateContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.RotateServerCertificateContext(); if (object.kind != null) message.kind = String(object.kind); @@ -53017,17 +56811,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RotateServerCertificateContext.toObject = function toObject(message, options) { + RotateServerCertificateContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.nextVersion = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.nextVersion != null && message.hasOwnProperty("nextVersion")) + if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) object.nextVersion = message.nextVersion; return object; }; @@ -53082,7 +56880,7 @@ function RotateEntraIdCertificateContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -53123,9 +56921,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RotateEntraIdCertificateContext.encode = function encode(message, writer) { + RotateEntraIdCertificateContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) @@ -53143,7 +56945,7 @@ * @returns {$protobuf.Writer} Writer */ RotateEntraIdCertificateContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -53157,9 +56959,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RotateEntraIdCertificateContext.decode = function decode(reader, length, error) { + RotateEntraIdCertificateContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.RotateEntraIdCertificateContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -53175,7 +56981,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -53206,13 +57012,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RotateEntraIdCertificateContext.verify = function verify(message) { + RotateEntraIdCertificateContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.nextVersion != null && message.hasOwnProperty("nextVersion")) + if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) if (!$util.isString(message.nextVersion)) return "nextVersion: string expected"; return null; @@ -53226,9 +57036,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.RotateEntraIdCertificateContext} RotateEntraIdCertificateContext */ - RotateEntraIdCertificateContext.fromObject = function fromObject(object) { + RotateEntraIdCertificateContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.RotateEntraIdCertificateContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.RotateEntraIdCertificateContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.RotateEntraIdCertificateContext(); if (object.kind != null) message.kind = String(object.kind); @@ -53246,17 +57062,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RotateEntraIdCertificateContext.toObject = function toObject(message, options) { + RotateEntraIdCertificateContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.nextVersion = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.nextVersion != null && message.hasOwnProperty("nextVersion")) + if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) object.nextVersion = message.nextVersion; return object; }; @@ -53311,7 +57131,7 @@ function TruncateLogContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -53352,9 +57172,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - TruncateLogContext.encode = function encode(message, writer) { + TruncateLogContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.logType != null && Object.hasOwnProperty.call(message, "logType")) @@ -53372,7 +57196,7 @@ * @returns {$protobuf.Writer} Writer */ TruncateLogContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -53386,9 +57210,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - TruncateLogContext.decode = function decode(reader, length, error) { + TruncateLogContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.TruncateLogContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -53404,7 +57232,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -53435,13 +57263,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - TruncateLogContext.verify = function verify(message) { + TruncateLogContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.logType != null && message.hasOwnProperty("logType")) + if (message.logType != null && Object.hasOwnProperty.call(message, "logType")) if (!$util.isString(message.logType)) return "logType: string expected"; return null; @@ -53455,9 +57287,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.TruncateLogContext} TruncateLogContext */ - TruncateLogContext.fromObject = function fromObject(object) { + TruncateLogContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.TruncateLogContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.TruncateLogContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.TruncateLogContext(); if (object.kind != null) message.kind = String(object.kind); @@ -53475,17 +57313,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - TruncateLogContext.toObject = function toObject(message, options) { + TruncateLogContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.logType = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.logType != null && message.hasOwnProperty("logType")) + if (message.logType != null && Object.hasOwnProperty.call(message, "logType")) object.logType = message.logType; return object; }; @@ -53541,7 +57383,7 @@ function SqlExternalSyncSettingError(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -53590,9 +57432,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlExternalSyncSettingError.encode = function encode(message, writer) { + SqlExternalSyncSettingError.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.type != null && Object.hasOwnProperty.call(message, "type")) @@ -53612,7 +57458,7 @@ * @returns {$protobuf.Writer} Writer */ SqlExternalSyncSettingError.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -53626,9 +57472,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlExternalSyncSettingError.decode = function decode(reader, length, error) { + SqlExternalSyncSettingError.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlExternalSyncSettingError(); while (reader.pos < end) { var tag = reader.uint32(); @@ -53648,7 +57498,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -53679,13 +57529,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlExternalSyncSettingError.verify = function verify(message) { + SqlExternalSyncSettingError.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) switch (message.type) { default: return "type: enum value expected"; @@ -53750,7 +57604,7 @@ case 58: break; } - if (message.detail != null && message.hasOwnProperty("detail")) + if (message.detail != null && Object.hasOwnProperty.call(message, "detail")) if (!$util.isString(message.detail)) return "detail: string expected"; return null; @@ -53764,9 +57618,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlExternalSyncSettingError} SqlExternalSyncSettingError */ - SqlExternalSyncSettingError.fromObject = function fromObject(object) { + SqlExternalSyncSettingError.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlExternalSyncSettingError) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlExternalSyncSettingError: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlExternalSyncSettingError(); if (object.kind != null) message.kind = String(object.kind); @@ -54028,20 +57888,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlExternalSyncSettingError.toObject = function toObject(message, options) { + SqlExternalSyncSettingError.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.type = options.enums === String ? "SQL_EXTERNAL_SYNC_SETTING_ERROR_TYPE_UNSPECIFIED" : 0; object.detail = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = options.enums === String ? $root.google.cloud.sql.v1.SqlExternalSyncSettingError.SqlExternalSyncSettingErrorType[message.type] === undefined ? message.type : $root.google.cloud.sql.v1.SqlExternalSyncSettingError.SqlExternalSyncSettingErrorType[message.type] : message.type; - if (message.detail != null && message.hasOwnProperty("detail")) + if (message.detail != null && Object.hasOwnProperty.call(message, "detail")) object.detail = message.detail; return object; }; @@ -54223,7 +58087,7 @@ function SelectedObjects(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -54256,9 +58120,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SelectedObjects.encode = function encode(message, writer) { + SelectedObjects.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.database != null && Object.hasOwnProperty.call(message, "database")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.database); return writer; @@ -54274,7 +58142,7 @@ * @returns {$protobuf.Writer} Writer */ SelectedObjects.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -54288,9 +58156,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SelectedObjects.decode = function decode(reader, length, error) { + SelectedObjects.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SelectedObjects(); while (reader.pos < end) { var tag = reader.uint32(); @@ -54302,7 +58174,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -54333,10 +58205,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SelectedObjects.verify = function verify(message) { + SelectedObjects.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.database != null && message.hasOwnProperty("database")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.database != null && Object.hasOwnProperty.call(message, "database")) if (!$util.isString(message.database)) return "database: string expected"; return null; @@ -54350,9 +58226,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SelectedObjects} SelectedObjects */ - SelectedObjects.fromObject = function fromObject(object) { + SelectedObjects.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SelectedObjects) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SelectedObjects: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SelectedObjects(); if (object.database != null) message.database = String(object.database); @@ -54368,13 +58250,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SelectedObjects.toObject = function toObject(message, options) { + SelectedObjects.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.database = ""; - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) object.database = message.database; return object; }; @@ -54439,7 +58325,7 @@ this.selectedObjects = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -54552,9 +58438,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - OnPremisesConfiguration.encode = function encode(message, writer) { + OnPremisesConfiguration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.hostPort != null && Object.hasOwnProperty.call(message, "hostPort")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.hostPort); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -54572,10 +58462,10 @@ if (message.dumpFilePath != null && Object.hasOwnProperty.call(message, "dumpFilePath")) writer.uint32(/* id 8, wireType 2 =*/66).string(message.dumpFilePath); if (message.sourceInstance != null && Object.hasOwnProperty.call(message, "sourceInstance")) - $root.google.cloud.sql.v1.InstanceReference.encode(message.sourceInstance, writer.uint32(/* id 15, wireType 2 =*/122).fork()).ldelim(); + $root.google.cloud.sql.v1.InstanceReference.encode(message.sourceInstance, writer.uint32(/* id 15, wireType 2 =*/122).fork(), q + 1).ldelim(); if (message.selectedObjects != null && message.selectedObjects.length) for (var i = 0; i < message.selectedObjects.length; ++i) - $root.google.cloud.sql.v1.SelectedObjects.encode(message.selectedObjects[i], writer.uint32(/* id 16, wireType 2 =*/130).fork()).ldelim(); + $root.google.cloud.sql.v1.SelectedObjects.encode(message.selectedObjects[i], writer.uint32(/* id 16, wireType 2 =*/130).fork(), q + 1).ldelim(); if (message.sslOption != null && Object.hasOwnProperty.call(message, "sslOption")) writer.uint32(/* id 18, wireType 0 =*/144).int32(message.sslOption); return writer; @@ -54591,7 +58481,7 @@ * @returns {$protobuf.Writer} Writer */ OnPremisesConfiguration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -54605,9 +58495,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OnPremisesConfiguration.decode = function decode(reader, length, error) { + OnPremisesConfiguration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.OnPremisesConfiguration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -54647,13 +58541,13 @@ break; } case 15: { - message.sourceInstance = $root.google.cloud.sql.v1.InstanceReference.decode(reader, reader.uint32()); + message.sourceInstance = $root.google.cloud.sql.v1.InstanceReference.decode(reader, reader.uint32(), undefined, long + 1); break; } case 16: { if (!(message.selectedObjects && message.selectedObjects.length)) message.selectedObjects = []; - message.selectedObjects.push($root.google.cloud.sql.v1.SelectedObjects.decode(reader, reader.uint32())); + message.selectedObjects.push($root.google.cloud.sql.v1.SelectedObjects.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 18: { @@ -54661,7 +58555,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -54692,48 +58586,52 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OnPremisesConfiguration.verify = function verify(message) { + OnPremisesConfiguration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.hostPort != null && message.hasOwnProperty("hostPort")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.hostPort != null && Object.hasOwnProperty.call(message, "hostPort")) if (!$util.isString(message.hostPort)) return "hostPort: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.username != null && message.hasOwnProperty("username")) + if (message.username != null && Object.hasOwnProperty.call(message, "username")) if (!$util.isString(message.username)) return "username: string expected"; - if (message.password != null && message.hasOwnProperty("password")) + if (message.password != null && Object.hasOwnProperty.call(message, "password")) if (!$util.isString(message.password)) return "password: string expected"; - if (message.caCertificate != null && message.hasOwnProperty("caCertificate")) + if (message.caCertificate != null && Object.hasOwnProperty.call(message, "caCertificate")) if (!$util.isString(message.caCertificate)) return "caCertificate: string expected"; - if (message.clientCertificate != null && message.hasOwnProperty("clientCertificate")) + if (message.clientCertificate != null && Object.hasOwnProperty.call(message, "clientCertificate")) if (!$util.isString(message.clientCertificate)) return "clientCertificate: string expected"; - if (message.clientKey != null && message.hasOwnProperty("clientKey")) + if (message.clientKey != null && Object.hasOwnProperty.call(message, "clientKey")) if (!$util.isString(message.clientKey)) return "clientKey: string expected"; - if (message.dumpFilePath != null && message.hasOwnProperty("dumpFilePath")) + if (message.dumpFilePath != null && Object.hasOwnProperty.call(message, "dumpFilePath")) if (!$util.isString(message.dumpFilePath)) return "dumpFilePath: string expected"; - if (message.sourceInstance != null && message.hasOwnProperty("sourceInstance")) { - var error = $root.google.cloud.sql.v1.InstanceReference.verify(message.sourceInstance); + if (message.sourceInstance != null && Object.hasOwnProperty.call(message, "sourceInstance")) { + var error = $root.google.cloud.sql.v1.InstanceReference.verify(message.sourceInstance, long + 1); if (error) return "sourceInstance." + error; } - if (message.selectedObjects != null && message.hasOwnProperty("selectedObjects")) { + if (message.selectedObjects != null && Object.hasOwnProperty.call(message, "selectedObjects")) { if (!Array.isArray(message.selectedObjects)) return "selectedObjects: array expected"; for (var i = 0; i < message.selectedObjects.length; ++i) { - var error = $root.google.cloud.sql.v1.SelectedObjects.verify(message.selectedObjects[i]); + var error = $root.google.cloud.sql.v1.SelectedObjects.verify(message.selectedObjects[i], long + 1); if (error) return "selectedObjects." + error; } } - if (message.sslOption != null && message.hasOwnProperty("sslOption")) + if (message.sslOption != null && Object.hasOwnProperty.call(message, "sslOption")) switch (message.sslOption) { default: return "sslOption: enum value expected"; @@ -54754,9 +58652,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.OnPremisesConfiguration} OnPremisesConfiguration */ - OnPremisesConfiguration.fromObject = function fromObject(object) { + OnPremisesConfiguration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.OnPremisesConfiguration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.OnPremisesConfiguration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.OnPremisesConfiguration(); if (object.hostPort != null) message.hostPort = String(object.hostPort); @@ -54775,18 +58679,18 @@ if (object.dumpFilePath != null) message.dumpFilePath = String(object.dumpFilePath); if (object.sourceInstance != null) { - if (typeof object.sourceInstance !== "object") + if (!$util.isObject(object.sourceInstance)) throw TypeError(".google.cloud.sql.v1.OnPremisesConfiguration.sourceInstance: object expected"); - message.sourceInstance = $root.google.cloud.sql.v1.InstanceReference.fromObject(object.sourceInstance); + message.sourceInstance = $root.google.cloud.sql.v1.InstanceReference.fromObject(object.sourceInstance, long + 1); } if (object.selectedObjects) { if (!Array.isArray(object.selectedObjects)) throw TypeError(".google.cloud.sql.v1.OnPremisesConfiguration.selectedObjects: array expected"); message.selectedObjects = []; for (var i = 0; i < object.selectedObjects.length; ++i) { - if (typeof object.selectedObjects[i] !== "object") + if (!$util.isObject(object.selectedObjects[i])) throw TypeError(".google.cloud.sql.v1.OnPremisesConfiguration.selectedObjects: object expected"); - message.selectedObjects[i] = $root.google.cloud.sql.v1.SelectedObjects.fromObject(object.selectedObjects[i]); + message.selectedObjects[i] = $root.google.cloud.sql.v1.SelectedObjects.fromObject(object.selectedObjects[i], long + 1); } } switch (object.sslOption) { @@ -54825,9 +58729,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - OnPremisesConfiguration.toObject = function toObject(message, options) { + OnPremisesConfiguration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.selectedObjects = []; @@ -54843,30 +58751,30 @@ object.sourceInstance = null; object.sslOption = options.enums === String ? "SSL_OPTION_UNSPECIFIED" : 0; } - if (message.hostPort != null && message.hasOwnProperty("hostPort")) + if (message.hostPort != null && Object.hasOwnProperty.call(message, "hostPort")) object.hostPort = message.hostPort; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.username != null && message.hasOwnProperty("username")) + if (message.username != null && Object.hasOwnProperty.call(message, "username")) object.username = message.username; - if (message.password != null && message.hasOwnProperty("password")) + if (message.password != null && Object.hasOwnProperty.call(message, "password")) object.password = message.password; - if (message.caCertificate != null && message.hasOwnProperty("caCertificate")) + if (message.caCertificate != null && Object.hasOwnProperty.call(message, "caCertificate")) object.caCertificate = message.caCertificate; - if (message.clientCertificate != null && message.hasOwnProperty("clientCertificate")) + if (message.clientCertificate != null && Object.hasOwnProperty.call(message, "clientCertificate")) object.clientCertificate = message.clientCertificate; - if (message.clientKey != null && message.hasOwnProperty("clientKey")) + if (message.clientKey != null && Object.hasOwnProperty.call(message, "clientKey")) object.clientKey = message.clientKey; - if (message.dumpFilePath != null && message.hasOwnProperty("dumpFilePath")) + if (message.dumpFilePath != null && Object.hasOwnProperty.call(message, "dumpFilePath")) object.dumpFilePath = message.dumpFilePath; - if (message.sourceInstance != null && message.hasOwnProperty("sourceInstance")) - object.sourceInstance = $root.google.cloud.sql.v1.InstanceReference.toObject(message.sourceInstance, options); + if (message.sourceInstance != null && Object.hasOwnProperty.call(message, "sourceInstance")) + object.sourceInstance = $root.google.cloud.sql.v1.InstanceReference.toObject(message.sourceInstance, options, q + 1); if (message.selectedObjects && message.selectedObjects.length) { object.selectedObjects = []; for (var j = 0; j < message.selectedObjects.length; ++j) - object.selectedObjects[j] = $root.google.cloud.sql.v1.SelectedObjects.toObject(message.selectedObjects[j], options); + object.selectedObjects[j] = $root.google.cloud.sql.v1.SelectedObjects.toObject(message.selectedObjects[j], options, q + 1); } - if (message.sslOption != null && message.hasOwnProperty("sslOption")) + if (message.sslOption != null && Object.hasOwnProperty.call(message, "sslOption")) object.sslOption = options.enums === String ? $root.google.cloud.sql.v1.OnPremisesConfiguration.SslOption[message.sslOption] === undefined ? message.sslOption : $root.google.cloud.sql.v1.OnPremisesConfiguration.SslOption[message.sslOption] : message.sslOption; return object; }; @@ -54941,7 +58849,7 @@ function ReplicaConfiguration(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -54998,17 +58906,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ReplicaConfiguration.encode = function encode(message, writer) { + ReplicaConfiguration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.mysqlReplicaConfiguration != null && Object.hasOwnProperty.call(message, "mysqlReplicaConfiguration")) - $root.google.cloud.sql.v1.MySqlReplicaConfiguration.encode(message.mysqlReplicaConfiguration, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.MySqlReplicaConfiguration.encode(message.mysqlReplicaConfiguration, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.failoverTarget != null && Object.hasOwnProperty.call(message, "failoverTarget")) - $root.google.protobuf.BoolValue.encode(message.failoverTarget, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.failoverTarget, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.cascadableReplica != null && Object.hasOwnProperty.call(message, "cascadableReplica")) - $root.google.protobuf.BoolValue.encode(message.cascadableReplica, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.cascadableReplica, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); return writer; }; @@ -55022,7 +58934,7 @@ * @returns {$protobuf.Writer} Writer */ ReplicaConfiguration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -55036,9 +58948,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ReplicaConfiguration.decode = function decode(reader, length, error) { + ReplicaConfiguration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ReplicaConfiguration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -55050,19 +58966,19 @@ break; } case 2: { - message.mysqlReplicaConfiguration = $root.google.cloud.sql.v1.MySqlReplicaConfiguration.decode(reader, reader.uint32()); + message.mysqlReplicaConfiguration = $root.google.cloud.sql.v1.MySqlReplicaConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { - message.failoverTarget = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.failoverTarget = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.cascadableReplica = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.cascadableReplica = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -55093,24 +59009,28 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ReplicaConfiguration.verify = function verify(message) { + ReplicaConfiguration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.mysqlReplicaConfiguration != null && message.hasOwnProperty("mysqlReplicaConfiguration")) { - var error = $root.google.cloud.sql.v1.MySqlReplicaConfiguration.verify(message.mysqlReplicaConfiguration); + if (message.mysqlReplicaConfiguration != null && Object.hasOwnProperty.call(message, "mysqlReplicaConfiguration")) { + var error = $root.google.cloud.sql.v1.MySqlReplicaConfiguration.verify(message.mysqlReplicaConfiguration, long + 1); if (error) return "mysqlReplicaConfiguration." + error; } - if (message.failoverTarget != null && message.hasOwnProperty("failoverTarget")) { - var error = $root.google.protobuf.BoolValue.verify(message.failoverTarget); + if (message.failoverTarget != null && Object.hasOwnProperty.call(message, "failoverTarget")) { + var error = $root.google.protobuf.BoolValue.verify(message.failoverTarget, long + 1); if (error) return "failoverTarget." + error; } - if (message.cascadableReplica != null && message.hasOwnProperty("cascadableReplica")) { - var error = $root.google.protobuf.BoolValue.verify(message.cascadableReplica); + if (message.cascadableReplica != null && Object.hasOwnProperty.call(message, "cascadableReplica")) { + var error = $root.google.protobuf.BoolValue.verify(message.cascadableReplica, long + 1); if (error) return "cascadableReplica." + error; } @@ -55125,26 +59045,32 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ReplicaConfiguration} ReplicaConfiguration */ - ReplicaConfiguration.fromObject = function fromObject(object) { + ReplicaConfiguration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ReplicaConfiguration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ReplicaConfiguration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ReplicaConfiguration(); if (object.kind != null) message.kind = String(object.kind); if (object.mysqlReplicaConfiguration != null) { - if (typeof object.mysqlReplicaConfiguration !== "object") + if (!$util.isObject(object.mysqlReplicaConfiguration)) throw TypeError(".google.cloud.sql.v1.ReplicaConfiguration.mysqlReplicaConfiguration: object expected"); - message.mysqlReplicaConfiguration = $root.google.cloud.sql.v1.MySqlReplicaConfiguration.fromObject(object.mysqlReplicaConfiguration); + message.mysqlReplicaConfiguration = $root.google.cloud.sql.v1.MySqlReplicaConfiguration.fromObject(object.mysqlReplicaConfiguration, long + 1); } if (object.failoverTarget != null) { - if (typeof object.failoverTarget !== "object") + if (!$util.isObject(object.failoverTarget)) throw TypeError(".google.cloud.sql.v1.ReplicaConfiguration.failoverTarget: object expected"); - message.failoverTarget = $root.google.protobuf.BoolValue.fromObject(object.failoverTarget); + message.failoverTarget = $root.google.protobuf.BoolValue.fromObject(object.failoverTarget, long + 1); } if (object.cascadableReplica != null) { - if (typeof object.cascadableReplica !== "object") + if (!$util.isObject(object.cascadableReplica)) throw TypeError(".google.cloud.sql.v1.ReplicaConfiguration.cascadableReplica: object expected"); - message.cascadableReplica = $root.google.protobuf.BoolValue.fromObject(object.cascadableReplica); + message.cascadableReplica = $root.google.protobuf.BoolValue.fromObject(object.cascadableReplica, long + 1); } return message; }; @@ -55158,9 +59084,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ReplicaConfiguration.toObject = function toObject(message, options) { + ReplicaConfiguration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -55168,14 +59098,14 @@ object.failoverTarget = null; object.cascadableReplica = null; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.mysqlReplicaConfiguration != null && message.hasOwnProperty("mysqlReplicaConfiguration")) - object.mysqlReplicaConfiguration = $root.google.cloud.sql.v1.MySqlReplicaConfiguration.toObject(message.mysqlReplicaConfiguration, options); - if (message.failoverTarget != null && message.hasOwnProperty("failoverTarget")) - object.failoverTarget = $root.google.protobuf.BoolValue.toObject(message.failoverTarget, options); - if (message.cascadableReplica != null && message.hasOwnProperty("cascadableReplica")) - object.cascadableReplica = $root.google.protobuf.BoolValue.toObject(message.cascadableReplica, options); + if (message.mysqlReplicaConfiguration != null && Object.hasOwnProperty.call(message, "mysqlReplicaConfiguration")) + object.mysqlReplicaConfiguration = $root.google.cloud.sql.v1.MySqlReplicaConfiguration.toObject(message.mysqlReplicaConfiguration, options, q + 1); + if (message.failoverTarget != null && Object.hasOwnProperty.call(message, "failoverTarget")) + object.failoverTarget = $root.google.protobuf.BoolValue.toObject(message.failoverTarget, options, q + 1); + if (message.cascadableReplica != null && Object.hasOwnProperty.call(message, "cascadableReplica")) + object.cascadableReplica = $root.google.protobuf.BoolValue.toObject(message.cascadableReplica, options, q + 1); return object; }; @@ -55230,7 +59160,7 @@ function SqlInstancesExecuteSqlRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -55279,15 +59209,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesExecuteSqlRequest.encode = function encode(message, writer) { + SqlInstancesExecuteSqlRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.ExecuteSqlPayload.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.ExecuteSqlPayload.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -55301,7 +59235,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesExecuteSqlRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -55315,9 +59249,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesExecuteSqlRequest.decode = function decode(reader, length, error) { + SqlInstancesExecuteSqlRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -55333,11 +59271,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.ExecuteSqlPayload.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.ExecuteSqlPayload.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -55368,17 +59306,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesExecuteSqlRequest.verify = function verify(message) { + SqlInstancesExecuteSqlRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.ExecuteSqlPayload.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.ExecuteSqlPayload.verify(message.body, long + 1); if (error) return "body." + error; } @@ -55393,18 +59335,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesExecuteSqlRequest} SqlInstancesExecuteSqlRequest */ - SqlInstancesExecuteSqlRequest.fromObject = function fromObject(object) { + SqlInstancesExecuteSqlRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesExecuteSqlRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesExecuteSqlRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.ExecuteSqlPayload.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.ExecuteSqlPayload.fromObject(object.body, long + 1); } return message; }; @@ -55418,21 +59366,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesExecuteSqlRequest.toObject = function toObject(message, options) { + SqlInstancesExecuteSqlRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.ExecuteSqlPayload.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.ExecuteSqlPayload.toObject(message.body, options, q + 1); return object; }; @@ -55491,7 +59443,7 @@ function ExecuteSqlPayload(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -55586,9 +59538,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ExecuteSqlPayload.encode = function encode(message, writer) { + ExecuteSqlPayload.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.user != null && Object.hasOwnProperty.call(message, "user")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.user); if (message.sqlStatement != null && Object.hasOwnProperty.call(message, "sqlStatement")) @@ -55616,7 +59572,7 @@ * @returns {$protobuf.Writer} Writer */ ExecuteSqlPayload.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -55630,9 +59586,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExecuteSqlPayload.decode = function decode(reader, length, error) { + ExecuteSqlPayload.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ExecuteSqlPayload(); while (reader.pos < end) { var tag = reader.uint32(); @@ -55668,7 +59628,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -55699,28 +59659,32 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ExecuteSqlPayload.verify = function verify(message) { + ExecuteSqlPayload.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.user != null && message.hasOwnProperty("user")) + if (message.user != null && Object.hasOwnProperty.call(message, "user")) if (!$util.isString(message.user)) return "user: string expected"; - if (message.sqlStatement != null && message.hasOwnProperty("sqlStatement")) + if (message.sqlStatement != null && Object.hasOwnProperty.call(message, "sqlStatement")) if (!$util.isString(message.sqlStatement)) return "sqlStatement: string expected"; - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) if (!$util.isString(message.database)) return "database: string expected"; - if (message.autoIamAuthn != null && message.hasOwnProperty("autoIamAuthn")) { + if (message.autoIamAuthn != null && Object.hasOwnProperty.call(message, "autoIamAuthn")) { properties.userPassword = 1; if (typeof message.autoIamAuthn !== "boolean") return "autoIamAuthn: boolean expected"; } - if (message.rowLimit != null && message.hasOwnProperty("rowLimit")) + if (message.rowLimit != null && Object.hasOwnProperty.call(message, "rowLimit")) if (!$util.isInteger(message.rowLimit) && !(message.rowLimit && $util.isInteger(message.rowLimit.low) && $util.isInteger(message.rowLimit.high))) return "rowLimit: integer|Long expected"; - if (message.partialResultMode != null && message.hasOwnProperty("partialResultMode")) + if (message.partialResultMode != null && Object.hasOwnProperty.call(message, "partialResultMode")) switch (message.partialResultMode) { default: return "partialResultMode: enum value expected"; @@ -55729,7 +59693,7 @@ case 2: break; } - if (message.application != null && message.hasOwnProperty("application")) + if (message.application != null && Object.hasOwnProperty.call(message, "application")) if (!$util.isString(message.application)) return "application: string expected"; return null; @@ -55743,9 +59707,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ExecuteSqlPayload} ExecuteSqlPayload */ - ExecuteSqlPayload.fromObject = function fromObject(object) { + ExecuteSqlPayload.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ExecuteSqlPayload) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ExecuteSqlPayload: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ExecuteSqlPayload(); if (object.user != null) message.user = String(object.user); @@ -55757,7 +59727,7 @@ message.autoIamAuthn = Boolean(object.autoIamAuthn); if (object.rowLimit != null) if ($util.Long) - (message.rowLimit = $util.Long.fromValue(object.rowLimit)).unsigned = false; + message.rowLimit = $util.Long.fromValue(object.rowLimit, false); else if (typeof object.rowLimit === "string") message.rowLimit = parseInt(object.rowLimit, 10); else if (typeof object.rowLimit === "number") @@ -55798,9 +59768,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ExecuteSqlPayload.toObject = function toObject(message, options) { + ExecuteSqlPayload.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.user = ""; @@ -55808,31 +59782,33 @@ object.database = ""; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.rowLimit = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.rowLimit = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.rowLimit = options.longs === String ? "0" : 0; + object.rowLimit = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.partialResultMode = options.enums === String ? "PARTIAL_RESULT_MODE_UNSPECIFIED" : 0; object.application = ""; } - if (message.user != null && message.hasOwnProperty("user")) + if (message.user != null && Object.hasOwnProperty.call(message, "user")) object.user = message.user; - if (message.sqlStatement != null && message.hasOwnProperty("sqlStatement")) + if (message.sqlStatement != null && Object.hasOwnProperty.call(message, "sqlStatement")) object.sqlStatement = message.sqlStatement; - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) object.database = message.database; - if (message.rowLimit != null && message.hasOwnProperty("rowLimit")) - if (typeof message.rowLimit === "number") + if (message.rowLimit != null && Object.hasOwnProperty.call(message, "rowLimit")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.rowLimit = typeof message.rowLimit === "number" ? BigInt(message.rowLimit) : $util.Long.fromBits(message.rowLimit.low >>> 0, message.rowLimit.high >>> 0, false).toBigInt(); + else if (typeof message.rowLimit === "number") object.rowLimit = options.longs === String ? String(message.rowLimit) : message.rowLimit; else object.rowLimit = options.longs === String ? $util.Long.prototype.toString.call(message.rowLimit) : options.longs === Number ? new $util.LongBits(message.rowLimit.low >>> 0, message.rowLimit.high >>> 0).toNumber() : message.rowLimit; - if (message.autoIamAuthn != null && message.hasOwnProperty("autoIamAuthn")) { + if (message.autoIamAuthn != null && Object.hasOwnProperty.call(message, "autoIamAuthn")) { object.autoIamAuthn = message.autoIamAuthn; if (options.oneofs) object.userPassword = "autoIamAuthn"; } - if (message.partialResultMode != null && message.hasOwnProperty("partialResultMode")) + if (message.partialResultMode != null && Object.hasOwnProperty.call(message, "partialResultMode")) object.partialResultMode = options.enums === String ? $root.google.cloud.sql.v1.ExecuteSqlPayload.PartialResultMode[message.partialResultMode] === undefined ? message.partialResultMode : $root.google.cloud.sql.v1.ExecuteSqlPayload.PartialResultMode[message.partialResultMode] : message.partialResultMode; - if (message.application != null && message.hasOwnProperty("application")) + if (message.application != null && Object.hasOwnProperty.call(message, "application")) object.application = message.application; return object; }; @@ -55907,7 +59883,7 @@ this.results = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -55964,19 +59940,23 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesExecuteSqlResponse.encode = function encode(message, writer) { + SqlInstancesExecuteSqlResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) - $root.google.cloud.sql.v1.Metadata.encode(message.metadata, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.cloud.sql.v1.Metadata.encode(message.metadata, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.results != null && message.results.length) for (var i = 0; i < message.results.length; ++i) - $root.google.cloud.sql.v1.QueryResult.encode(message.results[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.cloud.sql.v1.QueryResult.encode(message.results[i], writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.status != null && Object.hasOwnProperty.call(message, "status")) - $root.google.rpc.Status.encode(message.status, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.rpc.Status.encode(message.status, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); if (message.messages != null && message.messages.length) for (var i = 0; i < message.messages.length; ++i) - $root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.Message.encode(message.messages[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.Message.encode(message.messages[i], writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); return writer; }; @@ -55990,7 +59970,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesExecuteSqlResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -56004,9 +59984,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesExecuteSqlResponse.decode = function decode(reader, length, error) { + SqlInstancesExecuteSqlResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -56016,25 +60000,25 @@ case 9: { if (!(message.messages && message.messages.length)) message.messages = []; - message.messages.push($root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.Message.decode(reader, reader.uint32())); + message.messages.push($root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.Message.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 6: { - message.metadata = $root.google.cloud.sql.v1.Metadata.decode(reader, reader.uint32()); + message.metadata = $root.google.cloud.sql.v1.Metadata.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { if (!(message.results && message.results.length)) message.results = []; - message.results.push($root.google.cloud.sql.v1.QueryResult.decode(reader, reader.uint32())); + message.results.push($root.google.cloud.sql.v1.QueryResult.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 8: { - message.status = $root.google.rpc.Status.decode(reader, reader.uint32()); + message.status = $root.google.rpc.Status.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -56065,34 +60049,38 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesExecuteSqlResponse.verify = function verify(message) { + SqlInstancesExecuteSqlResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.messages != null && message.hasOwnProperty("messages")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.messages != null && Object.hasOwnProperty.call(message, "messages")) { if (!Array.isArray(message.messages)) return "messages: array expected"; for (var i = 0; i < message.messages.length; ++i) { - var error = $root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.Message.verify(message.messages[i]); + var error = $root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.Message.verify(message.messages[i], long + 1); if (error) return "messages." + error; } } - if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.google.cloud.sql.v1.Metadata.verify(message.metadata); + if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) { + var error = $root.google.cloud.sql.v1.Metadata.verify(message.metadata, long + 1); if (error) return "metadata." + error; } - if (message.results != null && message.hasOwnProperty("results")) { + if (message.results != null && Object.hasOwnProperty.call(message, "results")) { if (!Array.isArray(message.results)) return "results: array expected"; for (var i = 0; i < message.results.length; ++i) { - var error = $root.google.cloud.sql.v1.QueryResult.verify(message.results[i]); + var error = $root.google.cloud.sql.v1.QueryResult.verify(message.results[i], long + 1); if (error) return "results." + error; } } - if (message.status != null && message.hasOwnProperty("status")) { - var error = $root.google.rpc.Status.verify(message.status); + if (message.status != null && Object.hasOwnProperty.call(message, "status")) { + var error = $root.google.rpc.Status.verify(message.status, long + 1); if (error) return "status." + error; } @@ -56107,39 +60095,45 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesExecuteSqlResponse} SqlInstancesExecuteSqlResponse */ - SqlInstancesExecuteSqlResponse.fromObject = function fromObject(object) { + SqlInstancesExecuteSqlResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesExecuteSqlResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse(); if (object.messages) { if (!Array.isArray(object.messages)) throw TypeError(".google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.messages: array expected"); message.messages = []; for (var i = 0; i < object.messages.length; ++i) { - if (typeof object.messages[i] !== "object") + if (!$util.isObject(object.messages[i])) throw TypeError(".google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.messages: object expected"); - message.messages[i] = $root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.Message.fromObject(object.messages[i]); + message.messages[i] = $root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.Message.fromObject(object.messages[i], long + 1); } } if (object.metadata != null) { - if (typeof object.metadata !== "object") + if (!$util.isObject(object.metadata)) throw TypeError(".google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.metadata: object expected"); - message.metadata = $root.google.cloud.sql.v1.Metadata.fromObject(object.metadata); + message.metadata = $root.google.cloud.sql.v1.Metadata.fromObject(object.metadata, long + 1); } if (object.results) { if (!Array.isArray(object.results)) throw TypeError(".google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.results: array expected"); message.results = []; for (var i = 0; i < object.results.length; ++i) { - if (typeof object.results[i] !== "object") + if (!$util.isObject(object.results[i])) throw TypeError(".google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.results: object expected"); - message.results[i] = $root.google.cloud.sql.v1.QueryResult.fromObject(object.results[i]); + message.results[i] = $root.google.cloud.sql.v1.QueryResult.fromObject(object.results[i], long + 1); } } if (object.status != null) { - if (typeof object.status !== "object") + if (!$util.isObject(object.status)) throw TypeError(".google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.status: object expected"); - message.status = $root.google.rpc.Status.fromObject(object.status); + message.status = $root.google.rpc.Status.fromObject(object.status, long + 1); } return message; }; @@ -56153,9 +60147,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesExecuteSqlResponse.toObject = function toObject(message, options) { + SqlInstancesExecuteSqlResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.results = []; @@ -56165,19 +60163,19 @@ object.metadata = null; object.status = null; } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.google.cloud.sql.v1.Metadata.toObject(message.metadata, options); + if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) + object.metadata = $root.google.cloud.sql.v1.Metadata.toObject(message.metadata, options, q + 1); if (message.results && message.results.length) { object.results = []; for (var j = 0; j < message.results.length; ++j) - object.results[j] = $root.google.cloud.sql.v1.QueryResult.toObject(message.results[j], options); + object.results[j] = $root.google.cloud.sql.v1.QueryResult.toObject(message.results[j], options, q + 1); } - if (message.status != null && message.hasOwnProperty("status")) - object.status = $root.google.rpc.Status.toObject(message.status, options); + if (message.status != null && Object.hasOwnProperty.call(message, "status")) + object.status = $root.google.rpc.Status.toObject(message.status, options, q + 1); if (message.messages && message.messages.length) { object.messages = []; for (var j = 0; j < message.messages.length; ++j) - object.messages[j] = $root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.Message.toObject(message.messages[j], options); + object.messages[j] = $root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.Message.toObject(message.messages[j], options, q + 1); } return object; }; @@ -56229,7 +60227,7 @@ function Message(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -56285,9 +60283,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Message.encode = function encode(message, writer) { + Message.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.message != null && Object.hasOwnProperty.call(message, "message")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.message); if (message.severity != null && Object.hasOwnProperty.call(message, "severity")) @@ -56305,7 +60307,7 @@ * @returns {$protobuf.Writer} Writer */ Message.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -56319,9 +60321,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Message.decode = function decode(reader, length, error) { + Message.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.Message(); while (reader.pos < end) { var tag = reader.uint32(); @@ -56337,7 +60343,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -56368,16 +60374,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Message.verify = function verify(message) { + Message.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.message != null && message.hasOwnProperty("message")) { + if (message.message != null && Object.hasOwnProperty.call(message, "message")) { properties._message = 1; if (!$util.isString(message.message)) return "message: string expected"; } - if (message.severity != null && message.hasOwnProperty("severity")) { + if (message.severity != null && Object.hasOwnProperty.call(message, "severity")) { properties._severity = 1; if (!$util.isString(message.severity)) return "severity: string expected"; @@ -56393,9 +60403,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.Message} Message */ - Message.fromObject = function fromObject(object) { + Message.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.Message) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.Message: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.Message(); if (object.message != null) message.message = String(object.message); @@ -56413,16 +60429,20 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Message.toObject = function toObject(message, options) { + Message.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.message != null && message.hasOwnProperty("message")) { + if (message.message != null && Object.hasOwnProperty.call(message, "message")) { object.message = message.message; if (options.oneofs) object._message = "message"; } - if (message.severity != null && message.hasOwnProperty("severity")) { + if (message.severity != null && Object.hasOwnProperty.call(message, "severity")) { object.severity = message.severity; if (options.oneofs) object._severity = "severity"; @@ -56488,7 +60508,7 @@ this.rows = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -56553,21 +60573,25 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - QueryResult.encode = function encode(message, writer) { + QueryResult.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.columns != null && message.columns.length) for (var i = 0; i < message.columns.length; ++i) - $root.google.cloud.sql.v1.Column.encode(message.columns[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.Column.encode(message.columns[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.rows != null && message.rows.length) for (var i = 0; i < message.rows.length; ++i) - $root.google.cloud.sql.v1.Row.encode(message.rows[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.Row.encode(message.rows[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.message != null && Object.hasOwnProperty.call(message, "message")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.message); if (message.partialResult != null && Object.hasOwnProperty.call(message, "partialResult")) writer.uint32(/* id 4, wireType 0 =*/32).bool(message.partialResult); if (message.status != null && Object.hasOwnProperty.call(message, "status")) - $root.google.rpc.Status.encode(message.status, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.rpc.Status.encode(message.status, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); return writer; }; @@ -56581,7 +60605,7 @@ * @returns {$protobuf.Writer} Writer */ QueryResult.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -56595,9 +60619,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - QueryResult.decode = function decode(reader, length, error) { + QueryResult.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.QueryResult(); while (reader.pos < end) { var tag = reader.uint32(); @@ -56607,13 +60635,13 @@ case 1: { if (!(message.columns && message.columns.length)) message.columns = []; - message.columns.push($root.google.cloud.sql.v1.Column.decode(reader, reader.uint32())); + message.columns.push($root.google.cloud.sql.v1.Column.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { if (!(message.rows && message.rows.length)) message.rows = []; - message.rows.push($root.google.cloud.sql.v1.Row.decode(reader, reader.uint32())); + message.rows.push($root.google.cloud.sql.v1.Row.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { @@ -56625,11 +60653,11 @@ break; } case 8: { - message.status = $root.google.rpc.Status.decode(reader, reader.uint32()); + message.status = $root.google.rpc.Status.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -56660,35 +60688,39 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - QueryResult.verify = function verify(message) { + QueryResult.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.columns != null && message.hasOwnProperty("columns")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.columns != null && Object.hasOwnProperty.call(message, "columns")) { if (!Array.isArray(message.columns)) return "columns: array expected"; for (var i = 0; i < message.columns.length; ++i) { - var error = $root.google.cloud.sql.v1.Column.verify(message.columns[i]); + var error = $root.google.cloud.sql.v1.Column.verify(message.columns[i], long + 1); if (error) return "columns." + error; } } - if (message.rows != null && message.hasOwnProperty("rows")) { + if (message.rows != null && Object.hasOwnProperty.call(message, "rows")) { if (!Array.isArray(message.rows)) return "rows: array expected"; for (var i = 0; i < message.rows.length; ++i) { - var error = $root.google.cloud.sql.v1.Row.verify(message.rows[i]); + var error = $root.google.cloud.sql.v1.Row.verify(message.rows[i], long + 1); if (error) return "rows." + error; } } - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) if (!$util.isString(message.message)) return "message: string expected"; - if (message.partialResult != null && message.hasOwnProperty("partialResult")) + if (message.partialResult != null && Object.hasOwnProperty.call(message, "partialResult")) if (typeof message.partialResult !== "boolean") return "partialResult: boolean expected"; - if (message.status != null && message.hasOwnProperty("status")) { - var error = $root.google.rpc.Status.verify(message.status); + if (message.status != null && Object.hasOwnProperty.call(message, "status")) { + var error = $root.google.rpc.Status.verify(message.status, long + 1); if (error) return "status." + error; } @@ -56703,18 +60735,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.QueryResult} QueryResult */ - QueryResult.fromObject = function fromObject(object) { + QueryResult.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.QueryResult) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.QueryResult: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.QueryResult(); if (object.columns) { if (!Array.isArray(object.columns)) throw TypeError(".google.cloud.sql.v1.QueryResult.columns: array expected"); message.columns = []; for (var i = 0; i < object.columns.length; ++i) { - if (typeof object.columns[i] !== "object") + if (!$util.isObject(object.columns[i])) throw TypeError(".google.cloud.sql.v1.QueryResult.columns: object expected"); - message.columns[i] = $root.google.cloud.sql.v1.Column.fromObject(object.columns[i]); + message.columns[i] = $root.google.cloud.sql.v1.Column.fromObject(object.columns[i], long + 1); } } if (object.rows) { @@ -56722,9 +60760,9 @@ throw TypeError(".google.cloud.sql.v1.QueryResult.rows: array expected"); message.rows = []; for (var i = 0; i < object.rows.length; ++i) { - if (typeof object.rows[i] !== "object") + if (!$util.isObject(object.rows[i])) throw TypeError(".google.cloud.sql.v1.QueryResult.rows: object expected"); - message.rows[i] = $root.google.cloud.sql.v1.Row.fromObject(object.rows[i]); + message.rows[i] = $root.google.cloud.sql.v1.Row.fromObject(object.rows[i], long + 1); } } if (object.message != null) @@ -56732,9 +60770,9 @@ if (object.partialResult != null) message.partialResult = Boolean(object.partialResult); if (object.status != null) { - if (typeof object.status !== "object") + if (!$util.isObject(object.status)) throw TypeError(".google.cloud.sql.v1.QueryResult.status: object expected"); - message.status = $root.google.rpc.Status.fromObject(object.status); + message.status = $root.google.rpc.Status.fromObject(object.status, long + 1); } return message; }; @@ -56748,9 +60786,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - QueryResult.toObject = function toObject(message, options) { + QueryResult.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.columns = []; @@ -56764,19 +60806,19 @@ if (message.columns && message.columns.length) { object.columns = []; for (var j = 0; j < message.columns.length; ++j) - object.columns[j] = $root.google.cloud.sql.v1.Column.toObject(message.columns[j], options); + object.columns[j] = $root.google.cloud.sql.v1.Column.toObject(message.columns[j], options, q + 1); } if (message.rows && message.rows.length) { object.rows = []; for (var j = 0; j < message.rows.length; ++j) - object.rows[j] = $root.google.cloud.sql.v1.Row.toObject(message.rows[j], options); + object.rows[j] = $root.google.cloud.sql.v1.Row.toObject(message.rows[j], options, q + 1); } - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) object.message = message.message; - if (message.partialResult != null && message.hasOwnProperty("partialResult")) + if (message.partialResult != null && Object.hasOwnProperty.call(message, "partialResult")) object.partialResult = message.partialResult; - if (message.status != null && message.hasOwnProperty("status")) - object.status = $root.google.rpc.Status.toObject(message.status, options); + if (message.status != null && Object.hasOwnProperty.call(message, "status")) + object.status = $root.google.rpc.Status.toObject(message.status, options, q + 1); return object; }; @@ -56830,7 +60872,7 @@ function Column(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -56871,9 +60913,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Column.encode = function encode(message, writer) { + Column.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.type != null && Object.hasOwnProperty.call(message, "type")) @@ -56891,7 +60937,7 @@ * @returns {$protobuf.Writer} Writer */ Column.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -56905,9 +60951,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Column.decode = function decode(reader, length, error) { + Column.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.Column(); while (reader.pos < end) { var tag = reader.uint32(); @@ -56923,7 +60973,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -56954,13 +61004,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Column.verify = function verify(message) { + Column.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) if (!$util.isString(message.type)) return "type: string expected"; return null; @@ -56974,9 +61028,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.Column} Column */ - Column.fromObject = function fromObject(object) { + Column.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.Column) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.Column: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.Column(); if (object.name != null) message.name = String(object.name); @@ -56994,17 +61054,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Column.toObject = function toObject(message, options) { + Column.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; object.type = ""; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = message.type; return object; }; @@ -57059,7 +61123,7 @@ this.values = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -57092,12 +61156,16 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Row.encode = function encode(message, writer) { + Row.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.values != null && message.values.length) for (var i = 0; i < message.values.length; ++i) - $root.google.cloud.sql.v1.Value.encode(message.values[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.Value.encode(message.values[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -57111,7 +61179,7 @@ * @returns {$protobuf.Writer} Writer */ Row.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -57125,9 +61193,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Row.decode = function decode(reader, length, error) { + Row.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.Row(); while (reader.pos < end) { var tag = reader.uint32(); @@ -57137,11 +61209,11 @@ case 1: { if (!(message.values && message.values.length)) message.values = []; - message.values.push($root.google.cloud.sql.v1.Value.decode(reader, reader.uint32())); + message.values.push($root.google.cloud.sql.v1.Value.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -57172,14 +61244,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Row.verify = function verify(message) { + Row.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.values != null && message.hasOwnProperty("values")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.values != null && Object.hasOwnProperty.call(message, "values")) { if (!Array.isArray(message.values)) return "values: array expected"; for (var i = 0; i < message.values.length; ++i) { - var error = $root.google.cloud.sql.v1.Value.verify(message.values[i]); + var error = $root.google.cloud.sql.v1.Value.verify(message.values[i], long + 1); if (error) return "values." + error; } @@ -57195,18 +61271,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.Row} Row */ - Row.fromObject = function fromObject(object) { + Row.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.Row) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.Row: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.Row(); if (object.values) { if (!Array.isArray(object.values)) throw TypeError(".google.cloud.sql.v1.Row.values: array expected"); message.values = []; for (var i = 0; i < object.values.length; ++i) { - if (typeof object.values[i] !== "object") + if (!$util.isObject(object.values[i])) throw TypeError(".google.cloud.sql.v1.Row.values: object expected"); - message.values[i] = $root.google.cloud.sql.v1.Value.fromObject(object.values[i]); + message.values[i] = $root.google.cloud.sql.v1.Value.fromObject(object.values[i], long + 1); } } return message; @@ -57221,16 +61303,20 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Row.toObject = function toObject(message, options) { + Row.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.values = []; if (message.values && message.values.length) { object.values = []; for (var j = 0; j < message.values.length; ++j) - object.values[j] = $root.google.cloud.sql.v1.Value.toObject(message.values[j], options); + object.values[j] = $root.google.cloud.sql.v1.Value.toObject(message.values[j], options, q + 1); } return object; }; @@ -57285,7 +61371,7 @@ function Value(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -57326,9 +61412,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Value.encode = function encode(message, writer) { + Value.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.value != null && Object.hasOwnProperty.call(message, "value")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.value); if (message.nullValue != null && Object.hasOwnProperty.call(message, "nullValue")) @@ -57346,7 +61436,7 @@ * @returns {$protobuf.Writer} Writer */ Value.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -57360,9 +61450,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Value.decode = function decode(reader, length, error) { + Value.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.Value(); while (reader.pos < end) { var tag = reader.uint32(); @@ -57378,7 +61472,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -57409,13 +61503,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Value.verify = function verify(message) { + Value.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!$util.isString(message.value)) return "value: string expected"; - if (message.nullValue != null && message.hasOwnProperty("nullValue")) + if (message.nullValue != null && Object.hasOwnProperty.call(message, "nullValue")) if (typeof message.nullValue !== "boolean") return "nullValue: boolean expected"; return null; @@ -57429,9 +61527,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.Value} Value */ - Value.fromObject = function fromObject(object) { + Value.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.Value) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.Value: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.Value(); if (object.value != null) message.value = String(object.value); @@ -57449,17 +61553,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Value.toObject = function toObject(message, options) { + Value.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.value = ""; object.nullValue = false; } - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = message.value; - if (message.nullValue != null && message.hasOwnProperty("nullValue")) + if (message.nullValue != null && Object.hasOwnProperty.call(message, "nullValue")) object.nullValue = message.nullValue; return object; }; @@ -57513,7 +61621,7 @@ function Metadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -57546,11 +61654,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Metadata.encode = function encode(message, writer) { + Metadata.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.sqlStatementExecutionTime != null && Object.hasOwnProperty.call(message, "sqlStatementExecutionTime")) - $root.google.protobuf.Duration.encode(message.sqlStatementExecutionTime, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.sqlStatementExecutionTime, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -57564,7 +61676,7 @@ * @returns {$protobuf.Writer} Writer */ Metadata.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -57578,9 +61690,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Metadata.decode = function decode(reader, length, error) { + Metadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.Metadata(); while (reader.pos < end) { var tag = reader.uint32(); @@ -57588,11 +61704,11 @@ break; switch (tag >>> 3) { case 1: { - message.sqlStatementExecutionTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.sqlStatementExecutionTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -57623,11 +61739,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Metadata.verify = function verify(message) { + Metadata.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.sqlStatementExecutionTime != null && message.hasOwnProperty("sqlStatementExecutionTime")) { - var error = $root.google.protobuf.Duration.verify(message.sqlStatementExecutionTime); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.sqlStatementExecutionTime != null && Object.hasOwnProperty.call(message, "sqlStatementExecutionTime")) { + var error = $root.google.protobuf.Duration.verify(message.sqlStatementExecutionTime, long + 1); if (error) return "sqlStatementExecutionTime." + error; } @@ -57642,14 +61762,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.Metadata} Metadata */ - Metadata.fromObject = function fromObject(object) { + Metadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.Metadata) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.Metadata: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.Metadata(); if (object.sqlStatementExecutionTime != null) { - if (typeof object.sqlStatementExecutionTime !== "object") + if (!$util.isObject(object.sqlStatementExecutionTime)) throw TypeError(".google.cloud.sql.v1.Metadata.sqlStatementExecutionTime: object expected"); - message.sqlStatementExecutionTime = $root.google.protobuf.Duration.fromObject(object.sqlStatementExecutionTime); + message.sqlStatementExecutionTime = $root.google.protobuf.Duration.fromObject(object.sqlStatementExecutionTime, long + 1); } return message; }; @@ -57663,14 +61789,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Metadata.toObject = function toObject(message, options) { + Metadata.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.sqlStatementExecutionTime = null; - if (message.sqlStatementExecutionTime != null && message.hasOwnProperty("sqlStatementExecutionTime")) - object.sqlStatementExecutionTime = $root.google.protobuf.Duration.toObject(message.sqlStatementExecutionTime, options); + if (message.sqlStatementExecutionTime != null && Object.hasOwnProperty.call(message, "sqlStatementExecutionTime")) + object.sqlStatementExecutionTime = $root.google.protobuf.Duration.toObject(message.sqlStatementExecutionTime, options, q + 1); return object; }; @@ -57725,7 +61855,7 @@ function SqlInstancesAcquireSsrsLeaseRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -57774,15 +61904,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesAcquireSsrsLeaseRequest.encode = function encode(message, writer) { + SqlInstancesAcquireSsrsLeaseRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -57796,7 +61930,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesAcquireSsrsLeaseRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -57810,9 +61944,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesAcquireSsrsLeaseRequest.decode = function decode(reader, length, error) { + SqlInstancesAcquireSsrsLeaseRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -57828,11 +61966,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -57863,17 +62001,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesAcquireSsrsLeaseRequest.verify = function verify(message) { + SqlInstancesAcquireSsrsLeaseRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -57888,18 +62030,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest} SqlInstancesAcquireSsrsLeaseRequest */ - SqlInstancesAcquireSsrsLeaseRequest.fromObject = function fromObject(object) { + SqlInstancesAcquireSsrsLeaseRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest.fromObject(object.body, long + 1); } return message; }; @@ -57913,21 +62061,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesAcquireSsrsLeaseRequest.toObject = function toObject(message, options) { + SqlInstancesAcquireSsrsLeaseRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest.toObject(message.body, options, q + 1); return object; }; @@ -57980,7 +62132,7 @@ function SqlInstancesAcquireSsrsLeaseResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -58013,9 +62165,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesAcquireSsrsLeaseResponse.encode = function encode(message, writer) { + SqlInstancesAcquireSsrsLeaseResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.operationId != null && Object.hasOwnProperty.call(message, "operationId")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.operationId); return writer; @@ -58031,7 +62187,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesAcquireSsrsLeaseResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -58045,9 +62201,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesAcquireSsrsLeaseResponse.decode = function decode(reader, length, error) { + SqlInstancesAcquireSsrsLeaseResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -58059,7 +62219,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -58090,10 +62250,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesAcquireSsrsLeaseResponse.verify = function verify(message) { + SqlInstancesAcquireSsrsLeaseResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.operationId != null && message.hasOwnProperty("operationId")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.operationId != null && Object.hasOwnProperty.call(message, "operationId")) if (!$util.isString(message.operationId)) return "operationId: string expected"; return null; @@ -58107,9 +62271,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseResponse} SqlInstancesAcquireSsrsLeaseResponse */ - SqlInstancesAcquireSsrsLeaseResponse.fromObject = function fromObject(object) { + SqlInstancesAcquireSsrsLeaseResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseResponse(); if (object.operationId != null) message.operationId = String(object.operationId); @@ -58125,13 +62295,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesAcquireSsrsLeaseResponse.toObject = function toObject(message, options) { + SqlInstancesAcquireSsrsLeaseResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.operationId = ""; - if (message.operationId != null && message.hasOwnProperty("operationId")) + if (message.operationId != null && Object.hasOwnProperty.call(message, "operationId")) object.operationId = message.operationId; return object; }; @@ -58186,7 +62360,7 @@ function SqlInstancesReleaseSsrsLeaseRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -58227,9 +62401,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesReleaseSsrsLeaseRequest.encode = function encode(message, writer) { + SqlInstancesReleaseSsrsLeaseRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -58247,7 +62425,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesReleaseSsrsLeaseRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -58261,9 +62439,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesReleaseSsrsLeaseRequest.decode = function decode(reader, length, error) { + SqlInstancesReleaseSsrsLeaseRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -58279,7 +62461,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -58310,13 +62492,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesReleaseSsrsLeaseRequest.verify = function verify(message) { + SqlInstancesReleaseSsrsLeaseRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -58330,9 +62516,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest} SqlInstancesReleaseSsrsLeaseRequest */ - SqlInstancesReleaseSsrsLeaseRequest.fromObject = function fromObject(object) { + SqlInstancesReleaseSsrsLeaseRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -58350,17 +62542,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesReleaseSsrsLeaseRequest.toObject = function toObject(message, options) { + SqlInstancesReleaseSsrsLeaseRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -58414,7 +62610,7 @@ function SqlInstancesReleaseSsrsLeaseResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -58447,9 +62643,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesReleaseSsrsLeaseResponse.encode = function encode(message, writer) { + SqlInstancesReleaseSsrsLeaseResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.operationId != null && Object.hasOwnProperty.call(message, "operationId")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.operationId); return writer; @@ -58465,7 +62665,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesReleaseSsrsLeaseResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -58479,9 +62679,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesReleaseSsrsLeaseResponse.decode = function decode(reader, length, error) { + SqlInstancesReleaseSsrsLeaseResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -58493,7 +62697,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -58524,10 +62728,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesReleaseSsrsLeaseResponse.verify = function verify(message) { + SqlInstancesReleaseSsrsLeaseResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.operationId != null && message.hasOwnProperty("operationId")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.operationId != null && Object.hasOwnProperty.call(message, "operationId")) if (!$util.isString(message.operationId)) return "operationId: string expected"; return null; @@ -58541,9 +62749,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseResponse} SqlInstancesReleaseSsrsLeaseResponse */ - SqlInstancesReleaseSsrsLeaseResponse.fromObject = function fromObject(object) { + SqlInstancesReleaseSsrsLeaseResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseResponse(); if (object.operationId != null) message.operationId = String(object.operationId); @@ -58559,13 +62773,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesReleaseSsrsLeaseResponse.toObject = function toObject(message, options) { + SqlInstancesReleaseSsrsLeaseResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.operationId = ""; - if (message.operationId != null && message.hasOwnProperty("operationId")) + if (message.operationId != null && Object.hasOwnProperty.call(message, "operationId")) object.operationId = message.operationId; return object; }; @@ -58620,7 +62838,7 @@ function SqlInstancesPointInTimeRestoreRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -58661,13 +62879,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesPointInTimeRestoreRequest.encode = function encode(message, writer) { + SqlInstancesPointInTimeRestoreRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); if (message.context != null && Object.hasOwnProperty.call(message, "context")) - $root.google.cloud.sql.v1.PointInTimeRestoreContext.encode(message.context, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.PointInTimeRestoreContext.encode(message.context, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -58681,7 +62903,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesPointInTimeRestoreRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -58695,9 +62917,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesPointInTimeRestoreRequest.decode = function decode(reader, length, error) { + SqlInstancesPointInTimeRestoreRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -58709,11 +62935,11 @@ break; } case 100: { - message.context = $root.google.cloud.sql.v1.PointInTimeRestoreContext.decode(reader, reader.uint32()); + message.context = $root.google.cloud.sql.v1.PointInTimeRestoreContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -58744,14 +62970,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesPointInTimeRestoreRequest.verify = function verify(message) { + SqlInstancesPointInTimeRestoreRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.parent != null && message.hasOwnProperty("parent")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) if (!$util.isString(message.parent)) return "parent: string expected"; - if (message.context != null && message.hasOwnProperty("context")) { - var error = $root.google.cloud.sql.v1.PointInTimeRestoreContext.verify(message.context); + if (message.context != null && Object.hasOwnProperty.call(message, "context")) { + var error = $root.google.cloud.sql.v1.PointInTimeRestoreContext.verify(message.context, long + 1); if (error) return "context." + error; } @@ -58766,16 +62996,22 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest} SqlInstancesPointInTimeRestoreRequest */ - SqlInstancesPointInTimeRestoreRequest.fromObject = function fromObject(object) { + SqlInstancesPointInTimeRestoreRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest(); if (object.parent != null) message.parent = String(object.parent); if (object.context != null) { - if (typeof object.context !== "object") + if (!$util.isObject(object.context)) throw TypeError(".google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest.context: object expected"); - message.context = $root.google.cloud.sql.v1.PointInTimeRestoreContext.fromObject(object.context); + message.context = $root.google.cloud.sql.v1.PointInTimeRestoreContext.fromObject(object.context, long + 1); } return message; }; @@ -58789,18 +63025,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesPointInTimeRestoreRequest.toObject = function toObject(message, options) { + SqlInstancesPointInTimeRestoreRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.parent = ""; object.context = null; } - if (message.parent != null && message.hasOwnProperty("parent")) + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) object.parent = message.parent; - if (message.context != null && message.hasOwnProperty("context")) - object.context = $root.google.cloud.sql.v1.PointInTimeRestoreContext.toObject(message.context, options); + if (message.context != null && Object.hasOwnProperty.call(message, "context")) + object.context = $root.google.cloud.sql.v1.PointInTimeRestoreContext.toObject(message.context, options, q + 1); return object; }; @@ -58862,6 +63102,7 @@ * @property {number} LEGAL_ISSUE=3 LEGAL_ISSUE value * @property {number} OPERATIONAL_ISSUE=4 OPERATIONAL_ISSUE value * @property {number} KMS_KEY_ISSUE=5 KMS_KEY_ISSUE value + * @property {number} PROJECT_ABUSE=8 PROJECT_ABUSE value */ v1.SqlSuspensionReason = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -58870,6 +63111,7 @@ values[valuesById[3] = "LEGAL_ISSUE"] = 3; values[valuesById[4] = "OPERATIONAL_ISSUE"] = 4; values[valuesById[5] = "KMS_KEY_ISSUE"] = 5; + values[valuesById[8] = "PROJECT_ABUSE"] = 8; return values; })(); @@ -58925,7 +63167,7 @@ * @variation 1 */ Object.defineProperty(SqlConnectService.prototype.getConnectSettings = function getConnectSettings(request, callback) { - return this.rpcCall(getConnectSettings, $root.google.cloud.sql.v1.GetConnectSettingsRequest, $root.google.cloud.sql.v1.ConnectSettings, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, getConnectSettings, $root.google.cloud.sql.v1.GetConnectSettingsRequest, $root.google.cloud.sql.v1.ConnectSettings, request, callback); }, "name", { value: "GetConnectSettings" }); /** @@ -58958,7 +63200,7 @@ * @variation 1 */ Object.defineProperty(SqlConnectService.prototype.generateEphemeralCert = function generateEphemeralCert(request, callback) { - return this.rpcCall(generateEphemeralCert, $root.google.cloud.sql.v1.GenerateEphemeralCertRequest, $root.google.cloud.sql.v1.GenerateEphemeralCertResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, generateEphemeralCert, $root.google.cloud.sql.v1.GenerateEphemeralCertRequest, $root.google.cloud.sql.v1.GenerateEphemeralCertResponse, request, callback); }, "name", { value: "GenerateEphemeralCert" }); /** @@ -58996,7 +63238,7 @@ function GetConnectSettingsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -59045,15 +63287,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetConnectSettingsRequest.encode = function encode(message, writer) { + GetConnectSettingsRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.readTime != null && Object.hasOwnProperty.call(message, "readTime")) - $root.google.protobuf.Timestamp.encode(message.readTime, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.readTime, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); return writer; }; @@ -59067,7 +63313,7 @@ * @returns {$protobuf.Writer} Writer */ GetConnectSettingsRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -59081,9 +63327,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetConnectSettingsRequest.decode = function decode(reader, length, error) { + GetConnectSettingsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.GetConnectSettingsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -59099,11 +63349,11 @@ break; } case 7: { - message.readTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.readTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -59134,17 +63384,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetConnectSettingsRequest.verify = function verify(message) { + GetConnectSettingsRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.readTime != null && message.hasOwnProperty("readTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.readTime); + if (message.readTime != null && Object.hasOwnProperty.call(message, "readTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.readTime, long + 1); if (error) return "readTime." + error; } @@ -59159,18 +63413,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.GetConnectSettingsRequest} GetConnectSettingsRequest */ - GetConnectSettingsRequest.fromObject = function fromObject(object) { + GetConnectSettingsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.GetConnectSettingsRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.GetConnectSettingsRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.GetConnectSettingsRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.readTime != null) { - if (typeof object.readTime !== "object") + if (!$util.isObject(object.readTime)) throw TypeError(".google.cloud.sql.v1.GetConnectSettingsRequest.readTime: object expected"); - message.readTime = $root.google.protobuf.Timestamp.fromObject(object.readTime); + message.readTime = $root.google.protobuf.Timestamp.fromObject(object.readTime, long + 1); } return message; }; @@ -59184,21 +63444,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetConnectSettingsRequest.toObject = function toObject(message, options) { + GetConnectSettingsRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.readTime = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.readTime != null && message.hasOwnProperty("readTime")) - object.readTime = $root.google.protobuf.Timestamp.toObject(message.readTime, options); + if (message.readTime != null && Object.hasOwnProperty.call(message, "readTime")) + object.readTime = $root.google.protobuf.Timestamp.toObject(message.readTime, options, q + 1); return object; }; @@ -59269,7 +63533,7 @@ this.mdxProtocolSupport = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -59415,16 +63679,20 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ConnectSettings.encode = function encode(message, writer) { + ConnectSettings.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) - $root.google.cloud.sql.v1.SslCert.encode(message.serverCaCert, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.SslCert.encode(message.serverCaCert, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.ipAddresses != null && message.ipAddresses.length) for (var i = 0; i < message.ipAddresses.length; ++i) - $root.google.cloud.sql.v1.IpMapping.encode(message.ipAddresses[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1.IpMapping.encode(message.ipAddresses[i], writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.region != null && Object.hasOwnProperty.call(message, "region")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.region); if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) @@ -59442,7 +63710,7 @@ writer.uint32(/* id 37, wireType 2 =*/298).string(message.customSubjectAlternativeNames[i]); if (message.dnsNames != null && message.dnsNames.length) for (var i = 0; i < message.dnsNames.length; ++i) - $root.google.cloud.sql.v1.DnsNameMapping.encode(message.dnsNames[i], writer.uint32(/* id 38, wireType 2 =*/306).fork()).ldelim(); + $root.google.cloud.sql.v1.DnsNameMapping.encode(message.dnsNames[i], writer.uint32(/* id 38, wireType 2 =*/306).fork(), q + 1).ldelim(); if (message.mdxProtocolSupport != null && message.mdxProtocolSupport.length) { writer.uint32(/* id 39, wireType 2 =*/314).fork(); for (var i = 0; i < message.mdxProtocolSupport.length; ++i) @@ -59453,7 +63721,7 @@ writer.uint32(/* id 63, wireType 0 =*/504).int32(message.nodeCount); if (message.nodes != null && message.nodes.length) for (var i = 0; i < message.nodes.length; ++i) - $root.google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig.encode(message.nodes[i], writer.uint32(/* id 64, wireType 2 =*/514).fork()).ldelim(); + $root.google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig.encode(message.nodes[i], writer.uint32(/* id 64, wireType 2 =*/514).fork(), q + 1).ldelim(); return writer; }; @@ -59467,7 +63735,7 @@ * @returns {$protobuf.Writer} Writer */ ConnectSettings.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -59481,9 +63749,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ConnectSettings.decode = function decode(reader, length, error) { + ConnectSettings.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ConnectSettings(); while (reader.pos < end) { var tag = reader.uint32(); @@ -59495,13 +63767,13 @@ break; } case 2: { - message.serverCaCert = $root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32()); + message.serverCaCert = $root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { if (!(message.ipAddresses && message.ipAddresses.length)) message.ipAddresses = []; - message.ipAddresses.push($root.google.cloud.sql.v1.IpMapping.decode(reader, reader.uint32())); + message.ipAddresses.push($root.google.cloud.sql.v1.IpMapping.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 4: { @@ -59537,7 +63809,7 @@ case 38: { if (!(message.dnsNames && message.dnsNames.length)) message.dnsNames = []; - message.dnsNames.push($root.google.cloud.sql.v1.DnsNameMapping.decode(reader, reader.uint32())); + message.dnsNames.push($root.google.cloud.sql.v1.DnsNameMapping.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 63: { @@ -59547,7 +63819,7 @@ case 64: { if (!(message.nodes && message.nodes.length)) message.nodes = []; - message.nodes.push($root.google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig.decode(reader, reader.uint32())); + message.nodes.push($root.google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 39: { @@ -59562,7 +63834,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -59593,31 +63865,35 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ConnectSettings.verify = function verify(message) { + ConnectSettings.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.serverCaCert != null && message.hasOwnProperty("serverCaCert")) { - var error = $root.google.cloud.sql.v1.SslCert.verify(message.serverCaCert); + if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) { + var error = $root.google.cloud.sql.v1.SslCert.verify(message.serverCaCert, long + 1); if (error) return "serverCaCert." + error; } - if (message.ipAddresses != null && message.hasOwnProperty("ipAddresses")) { + if (message.ipAddresses != null && Object.hasOwnProperty.call(message, "ipAddresses")) { if (!Array.isArray(message.ipAddresses)) return "ipAddresses: array expected"; for (var i = 0; i < message.ipAddresses.length; ++i) { - var error = $root.google.cloud.sql.v1.IpMapping.verify(message.ipAddresses[i]); + var error = $root.google.cloud.sql.v1.IpMapping.verify(message.ipAddresses[i], long + 1); if (error) return "ipAddresses." + error; } } - if (message.region != null && message.hasOwnProperty("region")) + if (message.region != null && Object.hasOwnProperty.call(message, "region")) if (!$util.isString(message.region)) return "region: string expected"; - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) switch (message.databaseVersion) { default: return "databaseVersion: enum value expected"; @@ -59664,6 +63940,7 @@ case 272: case 408: case 557: + case 684: case 26: case 27: case 28: @@ -59672,9 +63949,12 @@ case 200: case 201: case 202: + case 549: + case 550: + case 551: break; } - if (message.backendType != null && message.hasOwnProperty("backendType")) + if (message.backendType != null && Object.hasOwnProperty.call(message, "backendType")) switch (message.backendType) { default: return "backendType: enum value expected"; @@ -59684,13 +63964,13 @@ case 3: break; } - if (message.pscEnabled != null && message.hasOwnProperty("pscEnabled")) + if (message.pscEnabled != null && Object.hasOwnProperty.call(message, "pscEnabled")) if (typeof message.pscEnabled !== "boolean") return "pscEnabled: boolean expected"; - if (message.dnsName != null && message.hasOwnProperty("dnsName")) + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) if (!$util.isString(message.dnsName)) return "dnsName: string expected"; - if (message.serverCaMode != null && message.hasOwnProperty("serverCaMode")) + if (message.serverCaMode != null && Object.hasOwnProperty.call(message, "serverCaMode")) switch (message.serverCaMode) { default: return "serverCaMode: enum value expected"; @@ -59700,37 +63980,37 @@ case 3: break; } - if (message.customSubjectAlternativeNames != null && message.hasOwnProperty("customSubjectAlternativeNames")) { + if (message.customSubjectAlternativeNames != null && Object.hasOwnProperty.call(message, "customSubjectAlternativeNames")) { if (!Array.isArray(message.customSubjectAlternativeNames)) return "customSubjectAlternativeNames: array expected"; for (var i = 0; i < message.customSubjectAlternativeNames.length; ++i) if (!$util.isString(message.customSubjectAlternativeNames[i])) return "customSubjectAlternativeNames: string[] expected"; } - if (message.dnsNames != null && message.hasOwnProperty("dnsNames")) { + if (message.dnsNames != null && Object.hasOwnProperty.call(message, "dnsNames")) { if (!Array.isArray(message.dnsNames)) return "dnsNames: array expected"; for (var i = 0; i < message.dnsNames.length; ++i) { - var error = $root.google.cloud.sql.v1.DnsNameMapping.verify(message.dnsNames[i]); + var error = $root.google.cloud.sql.v1.DnsNameMapping.verify(message.dnsNames[i], long + 1); if (error) return "dnsNames." + error; } } - if (message.nodeCount != null && message.hasOwnProperty("nodeCount")) { + if (message.nodeCount != null && Object.hasOwnProperty.call(message, "nodeCount")) { properties._nodeCount = 1; if (!$util.isInteger(message.nodeCount)) return "nodeCount: integer expected"; } - if (message.nodes != null && message.hasOwnProperty("nodes")) { + if (message.nodes != null && Object.hasOwnProperty.call(message, "nodes")) { if (!Array.isArray(message.nodes)) return "nodes: array expected"; for (var i = 0; i < message.nodes.length; ++i) { - var error = $root.google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig.verify(message.nodes[i]); + var error = $root.google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig.verify(message.nodes[i], long + 1); if (error) return "nodes." + error; } } - if (message.mdxProtocolSupport != null && message.hasOwnProperty("mdxProtocolSupport")) { + if (message.mdxProtocolSupport != null && Object.hasOwnProperty.call(message, "mdxProtocolSupport")) { if (!Array.isArray(message.mdxProtocolSupport)) return "mdxProtocolSupport: array expected"; for (var i = 0; i < message.mdxProtocolSupport.length; ++i) @@ -59753,25 +64033,31 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ConnectSettings} ConnectSettings */ - ConnectSettings.fromObject = function fromObject(object) { + ConnectSettings.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ConnectSettings) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ConnectSettings: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ConnectSettings(); if (object.kind != null) message.kind = String(object.kind); if (object.serverCaCert != null) { - if (typeof object.serverCaCert !== "object") + if (!$util.isObject(object.serverCaCert)) throw TypeError(".google.cloud.sql.v1.ConnectSettings.serverCaCert: object expected"); - message.serverCaCert = $root.google.cloud.sql.v1.SslCert.fromObject(object.serverCaCert); + message.serverCaCert = $root.google.cloud.sql.v1.SslCert.fromObject(object.serverCaCert, long + 1); } if (object.ipAddresses) { if (!Array.isArray(object.ipAddresses)) throw TypeError(".google.cloud.sql.v1.ConnectSettings.ipAddresses: array expected"); message.ipAddresses = []; for (var i = 0; i < object.ipAddresses.length; ++i) { - if (typeof object.ipAddresses[i] !== "object") + if (!$util.isObject(object.ipAddresses[i])) throw TypeError(".google.cloud.sql.v1.ConnectSettings.ipAddresses: object expected"); - message.ipAddresses[i] = $root.google.cloud.sql.v1.IpMapping.fromObject(object.ipAddresses[i]); + message.ipAddresses[i] = $root.google.cloud.sql.v1.IpMapping.fromObject(object.ipAddresses[i], long + 1); } } if (object.region != null) @@ -59955,6 +64241,10 @@ case 557: message.databaseVersion = 557; break; + case "POSTGRES_19": + case 684: + message.databaseVersion = 684; + break; case "SQLSERVER_2019_STANDARD": case 26: message.databaseVersion = 26; @@ -59987,6 +64277,18 @@ case 202: message.databaseVersion = 202; break; + case "SQLSERVER_2025_STANDARD": + case 549: + message.databaseVersion = 549; + break; + case "SQLSERVER_2025_ENTERPRISE": + case 550: + message.databaseVersion = 550; + break; + case "SQLSERVER_2025_EXPRESS": + case 551: + message.databaseVersion = 551; + break; } switch (object.backendType) { default: @@ -60052,9 +64354,9 @@ throw TypeError(".google.cloud.sql.v1.ConnectSettings.dnsNames: array expected"); message.dnsNames = []; for (var i = 0; i < object.dnsNames.length; ++i) { - if (typeof object.dnsNames[i] !== "object") + if (!$util.isObject(object.dnsNames[i])) throw TypeError(".google.cloud.sql.v1.ConnectSettings.dnsNames: object expected"); - message.dnsNames[i] = $root.google.cloud.sql.v1.DnsNameMapping.fromObject(object.dnsNames[i]); + message.dnsNames[i] = $root.google.cloud.sql.v1.DnsNameMapping.fromObject(object.dnsNames[i], long + 1); } } if (object.nodeCount != null) @@ -60064,9 +64366,9 @@ throw TypeError(".google.cloud.sql.v1.ConnectSettings.nodes: array expected"); message.nodes = []; for (var i = 0; i < object.nodes.length; ++i) { - if (typeof object.nodes[i] !== "object") + if (!$util.isObject(object.nodes[i])) throw TypeError(".google.cloud.sql.v1.ConnectSettings.nodes: object expected"); - message.nodes[i] = $root.google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig.fromObject(object.nodes[i]); + message.nodes[i] = $root.google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig.fromObject(object.nodes[i], long + 1); } } if (object.mdxProtocolSupport) { @@ -60102,9 +64404,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ConnectSettings.toObject = function toObject(message, options) { + ConnectSettings.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.ipAddresses = []; @@ -60123,26 +64429,26 @@ object.dnsName = ""; object.serverCaMode = options.enums === String ? "CA_MODE_UNSPECIFIED" : 0; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.serverCaCert != null && message.hasOwnProperty("serverCaCert")) - object.serverCaCert = $root.google.cloud.sql.v1.SslCert.toObject(message.serverCaCert, options); + if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) + object.serverCaCert = $root.google.cloud.sql.v1.SslCert.toObject(message.serverCaCert, options, q + 1); if (message.ipAddresses && message.ipAddresses.length) { object.ipAddresses = []; for (var j = 0; j < message.ipAddresses.length; ++j) - object.ipAddresses[j] = $root.google.cloud.sql.v1.IpMapping.toObject(message.ipAddresses[j], options); + object.ipAddresses[j] = $root.google.cloud.sql.v1.IpMapping.toObject(message.ipAddresses[j], options, q + 1); } - if (message.region != null && message.hasOwnProperty("region")) + if (message.region != null && Object.hasOwnProperty.call(message, "region")) object.region = message.region; - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) object.databaseVersion = options.enums === String ? $root.google.cloud.sql.v1.SqlDatabaseVersion[message.databaseVersion] === undefined ? message.databaseVersion : $root.google.cloud.sql.v1.SqlDatabaseVersion[message.databaseVersion] : message.databaseVersion; - if (message.backendType != null && message.hasOwnProperty("backendType")) + if (message.backendType != null && Object.hasOwnProperty.call(message, "backendType")) object.backendType = options.enums === String ? $root.google.cloud.sql.v1.SqlBackendType[message.backendType] === undefined ? message.backendType : $root.google.cloud.sql.v1.SqlBackendType[message.backendType] : message.backendType; - if (message.pscEnabled != null && message.hasOwnProperty("pscEnabled")) + if (message.pscEnabled != null && Object.hasOwnProperty.call(message, "pscEnabled")) object.pscEnabled = message.pscEnabled; - if (message.dnsName != null && message.hasOwnProperty("dnsName")) + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) object.dnsName = message.dnsName; - if (message.serverCaMode != null && message.hasOwnProperty("serverCaMode")) + if (message.serverCaMode != null && Object.hasOwnProperty.call(message, "serverCaMode")) object.serverCaMode = options.enums === String ? $root.google.cloud.sql.v1.ConnectSettings.CaMode[message.serverCaMode] === undefined ? message.serverCaMode : $root.google.cloud.sql.v1.ConnectSettings.CaMode[message.serverCaMode] : message.serverCaMode; if (message.customSubjectAlternativeNames && message.customSubjectAlternativeNames.length) { object.customSubjectAlternativeNames = []; @@ -60152,14 +64458,14 @@ if (message.dnsNames && message.dnsNames.length) { object.dnsNames = []; for (var j = 0; j < message.dnsNames.length; ++j) - object.dnsNames[j] = $root.google.cloud.sql.v1.DnsNameMapping.toObject(message.dnsNames[j], options); + object.dnsNames[j] = $root.google.cloud.sql.v1.DnsNameMapping.toObject(message.dnsNames[j], options, q + 1); } if (message.mdxProtocolSupport && message.mdxProtocolSupport.length) { object.mdxProtocolSupport = []; for (var j = 0; j < message.mdxProtocolSupport.length; ++j) object.mdxProtocolSupport[j] = options.enums === String ? $root.google.cloud.sql.v1.ConnectSettings.MdxProtocolSupport[message.mdxProtocolSupport[j]] === undefined ? message.mdxProtocolSupport[j] : $root.google.cloud.sql.v1.ConnectSettings.MdxProtocolSupport[message.mdxProtocolSupport[j]] : message.mdxProtocolSupport[j]; } - if (message.nodeCount != null && message.hasOwnProperty("nodeCount")) { + if (message.nodeCount != null && Object.hasOwnProperty.call(message, "nodeCount")) { object.nodeCount = message.nodeCount; if (options.oneofs) object._nodeCount = "nodeCount"; @@ -60167,7 +64473,7 @@ if (message.nodes && message.nodes.length) { object.nodes = []; for (var j = 0; j < message.nodes.length; ++j) - object.nodes[j] = $root.google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig.toObject(message.nodes[j], options); + object.nodes[j] = $root.google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig.toObject(message.nodes[j], options, q + 1); } return object; }; @@ -60241,7 +64547,7 @@ this.dnsNames = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -60313,19 +64619,23 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ConnectPoolNodeConfig.encode = function encode(message, writer) { + ConnectPoolNodeConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.ipAddresses != null && message.ipAddresses.length) for (var i = 0; i < message.ipAddresses.length; ++i) - $root.google.cloud.sql.v1.IpMapping.encode(message.ipAddresses[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.IpMapping.encode(message.ipAddresses[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.dnsName); if (message.dnsNames != null && message.dnsNames.length) for (var i = 0; i < message.dnsNames.length; ++i) - $root.google.cloud.sql.v1.DnsNameMapping.encode(message.dnsNames[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1.DnsNameMapping.encode(message.dnsNames[i], writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); return writer; }; @@ -60339,7 +64649,7 @@ * @returns {$protobuf.Writer} Writer */ ConnectPoolNodeConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -60353,9 +64663,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ConnectPoolNodeConfig.decode = function decode(reader, length, error) { + ConnectPoolNodeConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -60369,7 +64683,7 @@ case 2: { if (!(message.ipAddresses && message.ipAddresses.length)) message.ipAddresses = []; - message.ipAddresses.push($root.google.cloud.sql.v1.IpMapping.decode(reader, reader.uint32())); + message.ipAddresses.push($root.google.cloud.sql.v1.IpMapping.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { @@ -60379,11 +64693,11 @@ case 4: { if (!(message.dnsNames && message.dnsNames.length)) message.dnsNames = []; - message.dnsNames.push($root.google.cloud.sql.v1.DnsNameMapping.decode(reader, reader.uint32())); + message.dnsNames.push($root.google.cloud.sql.v1.DnsNameMapping.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -60414,34 +64728,38 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ConnectPoolNodeConfig.verify = function verify(message) { + ConnectPoolNodeConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.name != null && message.hasOwnProperty("name")) { + if (message.name != null && Object.hasOwnProperty.call(message, "name")) { properties._name = 1; if (!$util.isString(message.name)) return "name: string expected"; } - if (message.ipAddresses != null && message.hasOwnProperty("ipAddresses")) { + if (message.ipAddresses != null && Object.hasOwnProperty.call(message, "ipAddresses")) { if (!Array.isArray(message.ipAddresses)) return "ipAddresses: array expected"; for (var i = 0; i < message.ipAddresses.length; ++i) { - var error = $root.google.cloud.sql.v1.IpMapping.verify(message.ipAddresses[i]); + var error = $root.google.cloud.sql.v1.IpMapping.verify(message.ipAddresses[i], long + 1); if (error) return "ipAddresses." + error; } } - if (message.dnsName != null && message.hasOwnProperty("dnsName")) { + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) { properties._dnsName = 1; if (!$util.isString(message.dnsName)) return "dnsName: string expected"; } - if (message.dnsNames != null && message.hasOwnProperty("dnsNames")) { + if (message.dnsNames != null && Object.hasOwnProperty.call(message, "dnsNames")) { if (!Array.isArray(message.dnsNames)) return "dnsNames: array expected"; for (var i = 0; i < message.dnsNames.length; ++i) { - var error = $root.google.cloud.sql.v1.DnsNameMapping.verify(message.dnsNames[i]); + var error = $root.google.cloud.sql.v1.DnsNameMapping.verify(message.dnsNames[i], long + 1); if (error) return "dnsNames." + error; } @@ -60457,9 +64775,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig} ConnectPoolNodeConfig */ - ConnectPoolNodeConfig.fromObject = function fromObject(object) { + ConnectPoolNodeConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig(); if (object.name != null) message.name = String(object.name); @@ -60468,9 +64792,9 @@ throw TypeError(".google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig.ipAddresses: array expected"); message.ipAddresses = []; for (var i = 0; i < object.ipAddresses.length; ++i) { - if (typeof object.ipAddresses[i] !== "object") + if (!$util.isObject(object.ipAddresses[i])) throw TypeError(".google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig.ipAddresses: object expected"); - message.ipAddresses[i] = $root.google.cloud.sql.v1.IpMapping.fromObject(object.ipAddresses[i]); + message.ipAddresses[i] = $root.google.cloud.sql.v1.IpMapping.fromObject(object.ipAddresses[i], long + 1); } } if (object.dnsName != null) @@ -60480,9 +64804,9 @@ throw TypeError(".google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig.dnsNames: array expected"); message.dnsNames = []; for (var i = 0; i < object.dnsNames.length; ++i) { - if (typeof object.dnsNames[i] !== "object") + if (!$util.isObject(object.dnsNames[i])) throw TypeError(".google.cloud.sql.v1.ConnectSettings.ConnectPoolNodeConfig.dnsNames: object expected"); - message.dnsNames[i] = $root.google.cloud.sql.v1.DnsNameMapping.fromObject(object.dnsNames[i]); + message.dnsNames[i] = $root.google.cloud.sql.v1.DnsNameMapping.fromObject(object.dnsNames[i], long + 1); } } return message; @@ -60497,15 +64821,19 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ConnectPoolNodeConfig.toObject = function toObject(message, options) { + ConnectPoolNodeConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.ipAddresses = []; object.dnsNames = []; } - if (message.name != null && message.hasOwnProperty("name")) { + if (message.name != null && Object.hasOwnProperty.call(message, "name")) { object.name = message.name; if (options.oneofs) object._name = "name"; @@ -60513,9 +64841,9 @@ if (message.ipAddresses && message.ipAddresses.length) { object.ipAddresses = []; for (var j = 0; j < message.ipAddresses.length; ++j) - object.ipAddresses[j] = $root.google.cloud.sql.v1.IpMapping.toObject(message.ipAddresses[j], options); + object.ipAddresses[j] = $root.google.cloud.sql.v1.IpMapping.toObject(message.ipAddresses[j], options, q + 1); } - if (message.dnsName != null && message.hasOwnProperty("dnsName")) { + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) { object.dnsName = message.dnsName; if (options.oneofs) object._dnsName = "dnsName"; @@ -60523,7 +64851,7 @@ if (message.dnsNames && message.dnsNames.length) { object.dnsNames = []; for (var j = 0; j < message.dnsNames.length; ++j) - object.dnsNames[j] = $root.google.cloud.sql.v1.DnsNameMapping.toObject(message.dnsNames[j], options); + object.dnsNames[j] = $root.google.cloud.sql.v1.DnsNameMapping.toObject(message.dnsNames[j], options, q + 1); } return object; }; @@ -60599,7 +64927,7 @@ function GenerateEphemeralCertRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -60672,9 +65000,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GenerateEphemeralCertRequest.encode = function encode(message, writer) { + GenerateEphemeralCertRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -60684,9 +65016,9 @@ if (message.accessToken != null && Object.hasOwnProperty.call(message, "accessToken")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.accessToken); if (message.readTime != null && Object.hasOwnProperty.call(message, "readTime")) - $root.google.protobuf.Timestamp.encode(message.readTime, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.readTime, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.validDuration != null && Object.hasOwnProperty.call(message, "validDuration")) - $root.google.protobuf.Duration.encode(message.validDuration, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.validDuration, writer.uint32(/* id 12, wireType 2 =*/98).fork(), q + 1).ldelim(); return writer; }; @@ -60700,7 +65032,7 @@ * @returns {$protobuf.Writer} Writer */ GenerateEphemeralCertRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -60714,9 +65046,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GenerateEphemeralCertRequest.decode = function decode(reader, length, error) { + GenerateEphemeralCertRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.GenerateEphemeralCertRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -60740,15 +65076,15 @@ break; } case 7: { - message.readTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.readTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 12: { - message.validDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.validDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -60779,28 +65115,32 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GenerateEphemeralCertRequest.verify = function verify(message) { + GenerateEphemeralCertRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.publicKey != null && message.hasOwnProperty("publicKey")) + if (message.publicKey != null && Object.hasOwnProperty.call(message, "publicKey")) if (!$util.isString(message.publicKey)) return "publicKey: string expected"; - if (message.accessToken != null && message.hasOwnProperty("accessToken")) + if (message.accessToken != null && Object.hasOwnProperty.call(message, "accessToken")) if (!$util.isString(message.accessToken)) return "accessToken: string expected"; - if (message.readTime != null && message.hasOwnProperty("readTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.readTime); + if (message.readTime != null && Object.hasOwnProperty.call(message, "readTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.readTime, long + 1); if (error) return "readTime." + error; } - if (message.validDuration != null && message.hasOwnProperty("validDuration")) { - var error = $root.google.protobuf.Duration.verify(message.validDuration); + if (message.validDuration != null && Object.hasOwnProperty.call(message, "validDuration")) { + var error = $root.google.protobuf.Duration.verify(message.validDuration, long + 1); if (error) return "validDuration." + error; } @@ -60815,9 +65155,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.GenerateEphemeralCertRequest} GenerateEphemeralCertRequest */ - GenerateEphemeralCertRequest.fromObject = function fromObject(object) { + GenerateEphemeralCertRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.GenerateEphemeralCertRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.GenerateEphemeralCertRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.GenerateEphemeralCertRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -60828,14 +65174,14 @@ if (object.accessToken != null) message.accessToken = String(object.accessToken); if (object.readTime != null) { - if (typeof object.readTime !== "object") + if (!$util.isObject(object.readTime)) throw TypeError(".google.cloud.sql.v1.GenerateEphemeralCertRequest.readTime: object expected"); - message.readTime = $root.google.protobuf.Timestamp.fromObject(object.readTime); + message.readTime = $root.google.protobuf.Timestamp.fromObject(object.readTime, long + 1); } if (object.validDuration != null) { - if (typeof object.validDuration !== "object") + if (!$util.isObject(object.validDuration)) throw TypeError(".google.cloud.sql.v1.GenerateEphemeralCertRequest.validDuration: object expected"); - message.validDuration = $root.google.protobuf.Duration.fromObject(object.validDuration); + message.validDuration = $root.google.protobuf.Duration.fromObject(object.validDuration, long + 1); } return message; }; @@ -60849,9 +65195,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GenerateEphemeralCertRequest.toObject = function toObject(message, options) { + GenerateEphemeralCertRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; @@ -60861,18 +65211,18 @@ object.readTime = null; object.validDuration = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.publicKey != null && message.hasOwnProperty("publicKey")) + if (message.publicKey != null && Object.hasOwnProperty.call(message, "publicKey")) object.publicKey = message.publicKey; - if (message.accessToken != null && message.hasOwnProperty("accessToken")) + if (message.accessToken != null && Object.hasOwnProperty.call(message, "accessToken")) object.accessToken = message.accessToken; - if (message.readTime != null && message.hasOwnProperty("readTime")) - object.readTime = $root.google.protobuf.Timestamp.toObject(message.readTime, options); - if (message.validDuration != null && message.hasOwnProperty("validDuration")) - object.validDuration = $root.google.protobuf.Duration.toObject(message.validDuration, options); + if (message.readTime != null && Object.hasOwnProperty.call(message, "readTime")) + object.readTime = $root.google.protobuf.Timestamp.toObject(message.readTime, options, q + 1); + if (message.validDuration != null && Object.hasOwnProperty.call(message, "validDuration")) + object.validDuration = $root.google.protobuf.Duration.toObject(message.validDuration, options, q + 1); return object; }; @@ -60925,7 +65275,7 @@ function GenerateEphemeralCertResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -60958,11 +65308,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GenerateEphemeralCertResponse.encode = function encode(message, writer) { + GenerateEphemeralCertResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.ephemeralCert != null && Object.hasOwnProperty.call(message, "ephemeralCert")) - $root.google.cloud.sql.v1.SslCert.encode(message.ephemeralCert, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1.SslCert.encode(message.ephemeralCert, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -60976,7 +65330,7 @@ * @returns {$protobuf.Writer} Writer */ GenerateEphemeralCertResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -60990,9 +65344,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GenerateEphemeralCertResponse.decode = function decode(reader, length, error) { + GenerateEphemeralCertResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.GenerateEphemeralCertResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -61000,11 +65358,11 @@ break; switch (tag >>> 3) { case 1: { - message.ephemeralCert = $root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32()); + message.ephemeralCert = $root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -61035,11 +65393,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GenerateEphemeralCertResponse.verify = function verify(message) { + GenerateEphemeralCertResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.ephemeralCert != null && message.hasOwnProperty("ephemeralCert")) { - var error = $root.google.cloud.sql.v1.SslCert.verify(message.ephemeralCert); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.ephemeralCert != null && Object.hasOwnProperty.call(message, "ephemeralCert")) { + var error = $root.google.cloud.sql.v1.SslCert.verify(message.ephemeralCert, long + 1); if (error) return "ephemeralCert." + error; } @@ -61054,14 +65416,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.GenerateEphemeralCertResponse} GenerateEphemeralCertResponse */ - GenerateEphemeralCertResponse.fromObject = function fromObject(object) { + GenerateEphemeralCertResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.GenerateEphemeralCertResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.GenerateEphemeralCertResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.GenerateEphemeralCertResponse(); if (object.ephemeralCert != null) { - if (typeof object.ephemeralCert !== "object") + if (!$util.isObject(object.ephemeralCert)) throw TypeError(".google.cloud.sql.v1.GenerateEphemeralCertResponse.ephemeralCert: object expected"); - message.ephemeralCert = $root.google.cloud.sql.v1.SslCert.fromObject(object.ephemeralCert); + message.ephemeralCert = $root.google.cloud.sql.v1.SslCert.fromObject(object.ephemeralCert, long + 1); } return message; }; @@ -61075,14 +65443,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GenerateEphemeralCertResponse.toObject = function toObject(message, options) { + GenerateEphemeralCertResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.ephemeralCert = null; - if (message.ephemeralCert != null && message.hasOwnProperty("ephemeralCert")) - object.ephemeralCert = $root.google.cloud.sql.v1.SslCert.toObject(message.ephemeralCert, options); + if (message.ephemeralCert != null && Object.hasOwnProperty.call(message, "ephemeralCert")) + object.ephemeralCert = $root.google.cloud.sql.v1.SslCert.toObject(message.ephemeralCert, options, q + 1); return object; }; @@ -61167,7 +65539,7 @@ * @variation 1 */ Object.defineProperty(SqlDatabasesService.prototype["delete"] = function delete_(request, callback) { - return this.rpcCall(delete_, $root.google.cloud.sql.v1.SqlDatabasesDeleteRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, delete_, $root.google.cloud.sql.v1.SqlDatabasesDeleteRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Delete" }); /** @@ -61200,7 +65572,7 @@ * @variation 1 */ Object.defineProperty(SqlDatabasesService.prototype.get = function get(request, callback) { - return this.rpcCall(get, $root.google.cloud.sql.v1.SqlDatabasesGetRequest, $root.google.cloud.sql.v1.Database, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, get, $root.google.cloud.sql.v1.SqlDatabasesGetRequest, $root.google.cloud.sql.v1.Database, request, callback); }, "name", { value: "Get" }); /** @@ -61233,7 +65605,7 @@ * @variation 1 */ Object.defineProperty(SqlDatabasesService.prototype.insert = function insert(request, callback) { - return this.rpcCall(insert, $root.google.cloud.sql.v1.SqlDatabasesInsertRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, insert, $root.google.cloud.sql.v1.SqlDatabasesInsertRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Insert" }); /** @@ -61266,7 +65638,7 @@ * @variation 1 */ Object.defineProperty(SqlDatabasesService.prototype.list = function list(request, callback) { - return this.rpcCall(list, $root.google.cloud.sql.v1.SqlDatabasesListRequest, $root.google.cloud.sql.v1.DatabasesListResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, list, $root.google.cloud.sql.v1.SqlDatabasesListRequest, $root.google.cloud.sql.v1.DatabasesListResponse, request, callback); }, "name", { value: "List" }); /** @@ -61299,7 +65671,7 @@ * @variation 1 */ Object.defineProperty(SqlDatabasesService.prototype.patch = function patch(request, callback) { - return this.rpcCall(patch, $root.google.cloud.sql.v1.SqlDatabasesUpdateRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, patch, $root.google.cloud.sql.v1.SqlDatabasesUpdateRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Patch" }); /** @@ -61332,7 +65704,7 @@ * @variation 1 */ Object.defineProperty(SqlDatabasesService.prototype.update = function update(request, callback) { - return this.rpcCall(update, $root.google.cloud.sql.v1.SqlDatabasesUpdateRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, update, $root.google.cloud.sql.v1.SqlDatabasesUpdateRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Update" }); /** @@ -61370,7 +65742,7 @@ function SqlDatabasesDeleteRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -61419,9 +65791,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlDatabasesDeleteRequest.encode = function encode(message, writer) { + SqlDatabasesDeleteRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.database != null && Object.hasOwnProperty.call(message, "database")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.database); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) @@ -61441,7 +65817,7 @@ * @returns {$protobuf.Writer} Writer */ SqlDatabasesDeleteRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -61455,9 +65831,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlDatabasesDeleteRequest.decode = function decode(reader, length, error) { + SqlDatabasesDeleteRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlDatabasesDeleteRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -61477,7 +65857,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -61508,16 +65888,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlDatabasesDeleteRequest.verify = function verify(message) { + SqlDatabasesDeleteRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.database != null && message.hasOwnProperty("database")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.database != null && Object.hasOwnProperty.call(message, "database")) if (!$util.isString(message.database)) return "database: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -61531,9 +65915,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlDatabasesDeleteRequest} SqlDatabasesDeleteRequest */ - SqlDatabasesDeleteRequest.fromObject = function fromObject(object) { + SqlDatabasesDeleteRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlDatabasesDeleteRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlDatabasesDeleteRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlDatabasesDeleteRequest(); if (object.database != null) message.database = String(object.database); @@ -61553,20 +65943,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlDatabasesDeleteRequest.toObject = function toObject(message, options) { + SqlDatabasesDeleteRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.database = ""; object.instance = ""; object.project = ""; } - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) object.database = message.database; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -61622,7 +66016,7 @@ function SqlDatabasesGetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -61671,9 +66065,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlDatabasesGetRequest.encode = function encode(message, writer) { + SqlDatabasesGetRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.database != null && Object.hasOwnProperty.call(message, "database")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.database); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) @@ -61693,7 +66091,7 @@ * @returns {$protobuf.Writer} Writer */ SqlDatabasesGetRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -61707,9 +66105,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlDatabasesGetRequest.decode = function decode(reader, length, error) { + SqlDatabasesGetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlDatabasesGetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -61729,7 +66131,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -61760,16 +66162,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlDatabasesGetRequest.verify = function verify(message) { + SqlDatabasesGetRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.database != null && message.hasOwnProperty("database")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.database != null && Object.hasOwnProperty.call(message, "database")) if (!$util.isString(message.database)) return "database: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -61783,9 +66189,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlDatabasesGetRequest} SqlDatabasesGetRequest */ - SqlDatabasesGetRequest.fromObject = function fromObject(object) { + SqlDatabasesGetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlDatabasesGetRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlDatabasesGetRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlDatabasesGetRequest(); if (object.database != null) message.database = String(object.database); @@ -61805,20 +66217,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlDatabasesGetRequest.toObject = function toObject(message, options) { + SqlDatabasesGetRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.database = ""; object.instance = ""; object.project = ""; } - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) object.database = message.database; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -61874,7 +66290,7 @@ function SqlDatabasesInsertRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -61923,15 +66339,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlDatabasesInsertRequest.encode = function encode(message, writer) { + SqlDatabasesInsertRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.Database.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.Database.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -61945,7 +66365,7 @@ * @returns {$protobuf.Writer} Writer */ SqlDatabasesInsertRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -61959,9 +66379,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlDatabasesInsertRequest.decode = function decode(reader, length, error) { + SqlDatabasesInsertRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlDatabasesInsertRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -61977,11 +66401,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.Database.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.Database.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -62012,17 +66436,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlDatabasesInsertRequest.verify = function verify(message) { + SqlDatabasesInsertRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.Database.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.Database.verify(message.body, long + 1); if (error) return "body." + error; } @@ -62037,18 +66465,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlDatabasesInsertRequest} SqlDatabasesInsertRequest */ - SqlDatabasesInsertRequest.fromObject = function fromObject(object) { + SqlDatabasesInsertRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlDatabasesInsertRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlDatabasesInsertRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlDatabasesInsertRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlDatabasesInsertRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.Database.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.Database.fromObject(object.body, long + 1); } return message; }; @@ -62062,21 +66496,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlDatabasesInsertRequest.toObject = function toObject(message, options) { + SqlDatabasesInsertRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.Database.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.Database.toObject(message.body, options, q + 1); return object; }; @@ -62130,7 +66568,7 @@ function SqlDatabasesListRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -62171,9 +66609,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlDatabasesListRequest.encode = function encode(message, writer) { + SqlDatabasesListRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -62191,7 +66633,7 @@ * @returns {$protobuf.Writer} Writer */ SqlDatabasesListRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -62205,9 +66647,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlDatabasesListRequest.decode = function decode(reader, length, error) { + SqlDatabasesListRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlDatabasesListRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -62223,7 +66669,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -62254,13 +66700,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlDatabasesListRequest.verify = function verify(message) { + SqlDatabasesListRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -62274,9 +66724,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlDatabasesListRequest} SqlDatabasesListRequest */ - SqlDatabasesListRequest.fromObject = function fromObject(object) { + SqlDatabasesListRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlDatabasesListRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlDatabasesListRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlDatabasesListRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -62294,17 +66750,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlDatabasesListRequest.toObject = function toObject(message, options) { + SqlDatabasesListRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -62361,7 +66821,7 @@ function SqlDatabasesUpdateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -62418,9 +66878,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlDatabasesUpdateRequest.encode = function encode(message, writer) { + SqlDatabasesUpdateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.database != null && Object.hasOwnProperty.call(message, "database")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.database); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) @@ -62428,7 +66892,7 @@ if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.Database.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.Database.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -62442,7 +66906,7 @@ * @returns {$protobuf.Writer} Writer */ SqlDatabasesUpdateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -62456,9 +66920,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlDatabasesUpdateRequest.decode = function decode(reader, length, error) { + SqlDatabasesUpdateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlDatabasesUpdateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -62478,11 +66946,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.Database.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.Database.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -62513,20 +66981,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlDatabasesUpdateRequest.verify = function verify(message) { + SqlDatabasesUpdateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.database != null && message.hasOwnProperty("database")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.database != null && Object.hasOwnProperty.call(message, "database")) if (!$util.isString(message.database)) return "database: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.Database.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.Database.verify(message.body, long + 1); if (error) return "body." + error; } @@ -62541,9 +67013,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlDatabasesUpdateRequest} SqlDatabasesUpdateRequest */ - SqlDatabasesUpdateRequest.fromObject = function fromObject(object) { + SqlDatabasesUpdateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlDatabasesUpdateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlDatabasesUpdateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlDatabasesUpdateRequest(); if (object.database != null) message.database = String(object.database); @@ -62552,9 +67030,9 @@ if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlDatabasesUpdateRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.Database.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.Database.fromObject(object.body, long + 1); } return message; }; @@ -62568,9 +67046,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlDatabasesUpdateRequest.toObject = function toObject(message, options) { + SqlDatabasesUpdateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.database = ""; @@ -62578,14 +67060,14 @@ object.project = ""; object.body = null; } - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) object.database = message.database; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.Database.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.Database.toObject(message.body, options, q + 1); return object; }; @@ -62640,7 +67122,7 @@ this.items = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -62681,14 +67163,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DatabasesListResponse.encode = function encode(message, writer) { + DatabasesListResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.items != null && message.items.length) for (var i = 0; i < message.items.length; ++i) - $root.google.cloud.sql.v1.Database.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.Database.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -62702,7 +67188,7 @@ * @returns {$protobuf.Writer} Writer */ DatabasesListResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -62716,9 +67202,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DatabasesListResponse.decode = function decode(reader, length, error) { + DatabasesListResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.DatabasesListResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -62732,11 +67222,11 @@ case 2: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.sql.v1.Database.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.sql.v1.Database.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -62767,17 +67257,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DatabasesListResponse.verify = function verify(message) { + DatabasesListResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.items != null && message.hasOwnProperty("items")) { + if (message.items != null && Object.hasOwnProperty.call(message, "items")) { if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.sql.v1.Database.verify(message.items[i]); + var error = $root.google.cloud.sql.v1.Database.verify(message.items[i], long + 1); if (error) return "items." + error; } @@ -62793,9 +67287,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.DatabasesListResponse} DatabasesListResponse */ - DatabasesListResponse.fromObject = function fromObject(object) { + DatabasesListResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.DatabasesListResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.DatabasesListResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.DatabasesListResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -62804,9 +67304,9 @@ throw TypeError(".google.cloud.sql.v1.DatabasesListResponse.items: array expected"); message.items = []; for (var i = 0; i < object.items.length; ++i) { - if (typeof object.items[i] !== "object") + if (!$util.isObject(object.items[i])) throw TypeError(".google.cloud.sql.v1.DatabasesListResponse.items: object expected"); - message.items[i] = $root.google.cloud.sql.v1.Database.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.sql.v1.Database.fromObject(object.items[i], long + 1); } } return message; @@ -62821,20 +67321,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DatabasesListResponse.toObject = function toObject(message, options) { + DatabasesListResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.items = []; if (options.defaults) object.kind = ""; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.items && message.items.length) { object.items = []; for (var j = 0; j < message.items.length; ++j) - object.items[j] = $root.google.cloud.sql.v1.Database.toObject(message.items[j], options); + object.items[j] = $root.google.cloud.sql.v1.Database.toObject(message.items[j], options, q + 1); } return object; }; @@ -62990,7 +67494,7 @@ * @variation 1 */ Object.defineProperty(SqlFlagsService.prototype.list = function list(request, callback) { - return this.rpcCall(list, $root.google.cloud.sql.v1.SqlFlagsListRequest, $root.google.cloud.sql.v1.FlagsListResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, list, $root.google.cloud.sql.v1.SqlFlagsListRequest, $root.google.cloud.sql.v1.FlagsListResponse, request, callback); }, "name", { value: "List" }); /** @@ -63027,7 +67531,7 @@ function SqlFlagsListRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -63077,9 +67581,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlFlagsListRequest.encode = function encode(message, writer) { + SqlFlagsListRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.databaseVersion); if (message.flagScope != null && Object.hasOwnProperty.call(message, "flagScope")) @@ -63097,7 +67605,7 @@ * @returns {$protobuf.Writer} Writer */ SqlFlagsListRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -63111,9 +67619,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlFlagsListRequest.decode = function decode(reader, length, error) { + SqlFlagsListRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlFlagsListRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -63129,7 +67641,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -63160,14 +67672,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlFlagsListRequest.verify = function verify(message) { + SqlFlagsListRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) if (!$util.isString(message.databaseVersion)) return "databaseVersion: string expected"; - if (message.flagScope != null && message.hasOwnProperty("flagScope")) { + if (message.flagScope != null && Object.hasOwnProperty.call(message, "flagScope")) { properties._flagScope = 1; switch (message.flagScope) { default: @@ -63189,9 +67705,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlFlagsListRequest} SqlFlagsListRequest */ - SqlFlagsListRequest.fromObject = function fromObject(object) { + SqlFlagsListRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlFlagsListRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlFlagsListRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlFlagsListRequest(); if (object.databaseVersion != null) message.databaseVersion = String(object.databaseVersion); @@ -63227,15 +67749,19 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlFlagsListRequest.toObject = function toObject(message, options) { + SqlFlagsListRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.databaseVersion = ""; - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) object.databaseVersion = message.databaseVersion; - if (message.flagScope != null && message.hasOwnProperty("flagScope")) { + if (message.flagScope != null && Object.hasOwnProperty.call(message, "flagScope")) { object.flagScope = options.enums === String ? $root.google.cloud.sql.v1.SqlFlagScope[message.flagScope] === undefined ? message.flagScope : $root.google.cloud.sql.v1.SqlFlagScope[message.flagScope] : message.flagScope; if (options.oneofs) object._flagScope = "flagScope"; @@ -63294,7 +67820,7 @@ this.items = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -63335,14 +67861,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FlagsListResponse.encode = function encode(message, writer) { + FlagsListResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.items != null && message.items.length) for (var i = 0; i < message.items.length; ++i) - $root.google.cloud.sql.v1.Flag.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.Flag.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -63356,7 +67886,7 @@ * @returns {$protobuf.Writer} Writer */ FlagsListResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -63370,9 +67900,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FlagsListResponse.decode = function decode(reader, length, error) { + FlagsListResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.FlagsListResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -63386,11 +67920,11 @@ case 2: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.sql.v1.Flag.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.sql.v1.Flag.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -63421,17 +67955,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FlagsListResponse.verify = function verify(message) { + FlagsListResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.items != null && message.hasOwnProperty("items")) { + if (message.items != null && Object.hasOwnProperty.call(message, "items")) { if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.sql.v1.Flag.verify(message.items[i]); + var error = $root.google.cloud.sql.v1.Flag.verify(message.items[i], long + 1); if (error) return "items." + error; } @@ -63447,9 +67985,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.FlagsListResponse} FlagsListResponse */ - FlagsListResponse.fromObject = function fromObject(object) { + FlagsListResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.FlagsListResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.FlagsListResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.FlagsListResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -63458,9 +68002,9 @@ throw TypeError(".google.cloud.sql.v1.FlagsListResponse.items: array expected"); message.items = []; for (var i = 0; i < object.items.length; ++i) { - if (typeof object.items[i] !== "object") + if (!$util.isObject(object.items[i])) throw TypeError(".google.cloud.sql.v1.FlagsListResponse.items: object expected"); - message.items[i] = $root.google.cloud.sql.v1.Flag.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.sql.v1.Flag.fromObject(object.items[i], long + 1); } } return message; @@ -63475,20 +68019,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FlagsListResponse.toObject = function toObject(message, options) { + FlagsListResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.items = []; if (options.defaults) object.kind = ""; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.items && message.items.length) { object.items = []; for (var j = 0; j < message.items.length; ++j) - object.items[j] = $root.google.cloud.sql.v1.Flag.toObject(message.items[j], options); + object.items[j] = $root.google.cloud.sql.v1.Flag.toObject(message.items[j], options, q + 1); } return object; }; @@ -63557,7 +68105,7 @@ this.allowedIntValues = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -63700,9 +68248,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Flag.encode = function encode(message, writer) { + Flag.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.type != null && Object.hasOwnProperty.call(message, "type")) @@ -63717,15 +68269,15 @@ for (var i = 0; i < message.allowedStringValues.length; ++i) writer.uint32(/* id 4, wireType 2 =*/34).string(message.allowedStringValues[i]); if (message.minValue != null && Object.hasOwnProperty.call(message, "minValue")) - $root.google.protobuf.Int64Value.encode(message.minValue, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.minValue, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.maxValue != null && Object.hasOwnProperty.call(message, "maxValue")) - $root.google.protobuf.Int64Value.encode(message.maxValue, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.maxValue, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.requiresRestart != null && Object.hasOwnProperty.call(message, "requiresRestart")) - $root.google.protobuf.BoolValue.encode(message.requiresRestart, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.requiresRestart, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 8, wireType 2 =*/66).string(message.kind); if (message.inBeta != null && Object.hasOwnProperty.call(message, "inBeta")) - $root.google.protobuf.BoolValue.encode(message.inBeta, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.inBeta, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); if (message.allowedIntValues != null && message.allowedIntValues.length) { writer.uint32(/* id 10, wireType 2 =*/82).fork(); for (var i = 0; i < message.allowedIntValues.length; ++i) @@ -63737,7 +68289,7 @@ if (message.recommendedStringValue != null && Object.hasOwnProperty.call(message, "recommendedStringValue")) writer.uint32(/* id 16, wireType 2 =*/130).string(message.recommendedStringValue); if (message.recommendedIntValue != null && Object.hasOwnProperty.call(message, "recommendedIntValue")) - $root.google.protobuf.Int64Value.encode(message.recommendedIntValue, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.recommendedIntValue, writer.uint32(/* id 17, wireType 2 =*/138).fork(), q + 1).ldelim(); return writer; }; @@ -63751,7 +68303,7 @@ * @returns {$protobuf.Writer} Writer */ Flag.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -63765,9 +68317,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Flag.decode = function decode(reader, length, error) { + Flag.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.Flag(); while (reader.pos < end) { var tag = reader.uint32(); @@ -63800,15 +68356,15 @@ break; } case 5: { - message.minValue = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.minValue = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.maxValue = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.maxValue = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { - message.requiresRestart = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.requiresRestart = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { @@ -63816,7 +68372,7 @@ break; } case 9: { - message.inBeta = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.inBeta = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { @@ -63839,11 +68395,11 @@ break; } case 17: { - message.recommendedIntValue = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.recommendedIntValue = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -63874,14 +68430,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Flag.verify = function verify(message) { + Flag.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) switch (message.type) { default: return "type: enum value expected"; @@ -63895,7 +68455,7 @@ case 7: break; } - if (message.appliesTo != null && message.hasOwnProperty("appliesTo")) { + if (message.appliesTo != null && Object.hasOwnProperty.call(message, "appliesTo")) { if (!Array.isArray(message.appliesTo)) return "appliesTo: array expected"; for (var i = 0; i < message.appliesTo.length; ++i) @@ -63945,6 +68505,7 @@ case 272: case 408: case 557: + case 684: case 26: case 27: case 28: @@ -63953,47 +68514,50 @@ case 200: case 201: case 202: + case 549: + case 550: + case 551: break; } } - if (message.allowedStringValues != null && message.hasOwnProperty("allowedStringValues")) { + if (message.allowedStringValues != null && Object.hasOwnProperty.call(message, "allowedStringValues")) { if (!Array.isArray(message.allowedStringValues)) return "allowedStringValues: array expected"; for (var i = 0; i < message.allowedStringValues.length; ++i) if (!$util.isString(message.allowedStringValues[i])) return "allowedStringValues: string[] expected"; } - if (message.minValue != null && message.hasOwnProperty("minValue")) { - var error = $root.google.protobuf.Int64Value.verify(message.minValue); + if (message.minValue != null && Object.hasOwnProperty.call(message, "minValue")) { + var error = $root.google.protobuf.Int64Value.verify(message.minValue, long + 1); if (error) return "minValue." + error; } - if (message.maxValue != null && message.hasOwnProperty("maxValue")) { - var error = $root.google.protobuf.Int64Value.verify(message.maxValue); + if (message.maxValue != null && Object.hasOwnProperty.call(message, "maxValue")) { + var error = $root.google.protobuf.Int64Value.verify(message.maxValue, long + 1); if (error) return "maxValue." + error; } - if (message.requiresRestart != null && message.hasOwnProperty("requiresRestart")) { - var error = $root.google.protobuf.BoolValue.verify(message.requiresRestart); + if (message.requiresRestart != null && Object.hasOwnProperty.call(message, "requiresRestart")) { + var error = $root.google.protobuf.BoolValue.verify(message.requiresRestart, long + 1); if (error) return "requiresRestart." + error; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.inBeta != null && message.hasOwnProperty("inBeta")) { - var error = $root.google.protobuf.BoolValue.verify(message.inBeta); + if (message.inBeta != null && Object.hasOwnProperty.call(message, "inBeta")) { + var error = $root.google.protobuf.BoolValue.verify(message.inBeta, long + 1); if (error) return "inBeta." + error; } - if (message.allowedIntValues != null && message.hasOwnProperty("allowedIntValues")) { + if (message.allowedIntValues != null && Object.hasOwnProperty.call(message, "allowedIntValues")) { if (!Array.isArray(message.allowedIntValues)) return "allowedIntValues: array expected"; for (var i = 0; i < message.allowedIntValues.length; ++i) if (!$util.isInteger(message.allowedIntValues[i]) && !(message.allowedIntValues[i] && $util.isInteger(message.allowedIntValues[i].low) && $util.isInteger(message.allowedIntValues[i].high))) return "allowedIntValues: integer|Long[] expected"; } - if (message.flagScope != null && message.hasOwnProperty("flagScope")) + if (message.flagScope != null && Object.hasOwnProperty.call(message, "flagScope")) switch (message.flagScope) { default: return "flagScope: enum value expected"; @@ -64002,17 +68566,17 @@ case 2: break; } - if (message.recommendedStringValue != null && message.hasOwnProperty("recommendedStringValue")) { + if (message.recommendedStringValue != null && Object.hasOwnProperty.call(message, "recommendedStringValue")) { properties.recommendedValue = 1; if (!$util.isString(message.recommendedStringValue)) return "recommendedStringValue: string expected"; } - if (message.recommendedIntValue != null && message.hasOwnProperty("recommendedIntValue")) { + if (message.recommendedIntValue != null && Object.hasOwnProperty.call(message, "recommendedIntValue")) { if (properties.recommendedValue === 1) return "recommendedValue: multiple values"; properties.recommendedValue = 1; { - var error = $root.google.protobuf.Int64Value.verify(message.recommendedIntValue); + var error = $root.google.protobuf.Int64Value.verify(message.recommendedIntValue, long + 1); if (error) return "recommendedIntValue." + error; } @@ -64028,9 +68592,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.Flag} Flag */ - Flag.fromObject = function fromObject(object) { + Flag.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.Flag) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.Flag: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.Flag(); if (object.name != null) message.name = String(object.name); @@ -64257,6 +68827,10 @@ case 557: message.appliesTo[i] = 557; break; + case "POSTGRES_19": + case 684: + message.appliesTo[i] = 684; + break; case "SQLSERVER_2019_STANDARD": case 26: message.appliesTo[i] = 26; @@ -64289,6 +68863,18 @@ case 202: message.appliesTo[i] = 202; break; + case "SQLSERVER_2025_STANDARD": + case 549: + message.appliesTo[i] = 549; + break; + case "SQLSERVER_2025_ENTERPRISE": + case 550: + message.appliesTo[i] = 550; + break; + case "SQLSERVER_2025_EXPRESS": + case 551: + message.appliesTo[i] = 551; + break; } } if (object.allowedStringValues) { @@ -64299,26 +68885,26 @@ message.allowedStringValues[i] = String(object.allowedStringValues[i]); } if (object.minValue != null) { - if (typeof object.minValue !== "object") + if (!$util.isObject(object.minValue)) throw TypeError(".google.cloud.sql.v1.Flag.minValue: object expected"); - message.minValue = $root.google.protobuf.Int64Value.fromObject(object.minValue); + message.minValue = $root.google.protobuf.Int64Value.fromObject(object.minValue, long + 1); } if (object.maxValue != null) { - if (typeof object.maxValue !== "object") + if (!$util.isObject(object.maxValue)) throw TypeError(".google.cloud.sql.v1.Flag.maxValue: object expected"); - message.maxValue = $root.google.protobuf.Int64Value.fromObject(object.maxValue); + message.maxValue = $root.google.protobuf.Int64Value.fromObject(object.maxValue, long + 1); } if (object.requiresRestart != null) { - if (typeof object.requiresRestart !== "object") + if (!$util.isObject(object.requiresRestart)) throw TypeError(".google.cloud.sql.v1.Flag.requiresRestart: object expected"); - message.requiresRestart = $root.google.protobuf.BoolValue.fromObject(object.requiresRestart); + message.requiresRestart = $root.google.protobuf.BoolValue.fromObject(object.requiresRestart, long + 1); } if (object.kind != null) message.kind = String(object.kind); if (object.inBeta != null) { - if (typeof object.inBeta !== "object") + if (!$util.isObject(object.inBeta)) throw TypeError(".google.cloud.sql.v1.Flag.inBeta: object expected"); - message.inBeta = $root.google.protobuf.BoolValue.fromObject(object.inBeta); + message.inBeta = $root.google.protobuf.BoolValue.fromObject(object.inBeta, long + 1); } if (object.allowedIntValues) { if (!Array.isArray(object.allowedIntValues)) @@ -64326,7 +68912,7 @@ message.allowedIntValues = []; for (var i = 0; i < object.allowedIntValues.length; ++i) if ($util.Long) - (message.allowedIntValues[i] = $util.Long.fromValue(object.allowedIntValues[i])).unsigned = false; + message.allowedIntValues[i] = $util.Long.fromValue(object.allowedIntValues[i], false); else if (typeof object.allowedIntValues[i] === "string") message.allowedIntValues[i] = parseInt(object.allowedIntValues[i], 10); else if (typeof object.allowedIntValues[i] === "number") @@ -64357,9 +68943,9 @@ if (object.recommendedStringValue != null) message.recommendedStringValue = String(object.recommendedStringValue); if (object.recommendedIntValue != null) { - if (typeof object.recommendedIntValue !== "object") + if (!$util.isObject(object.recommendedIntValue)) throw TypeError(".google.cloud.sql.v1.Flag.recommendedIntValue: object expected"); - message.recommendedIntValue = $root.google.protobuf.Int64Value.fromObject(object.recommendedIntValue); + message.recommendedIntValue = $root.google.protobuf.Int64Value.fromObject(object.recommendedIntValue, long + 1); } return message; }; @@ -64373,9 +68959,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Flag.toObject = function toObject(message, options) { + Flag.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.appliesTo = []; @@ -64392,9 +68982,9 @@ object.inBeta = null; object.flagScope = options.enums === String ? "SQL_FLAG_SCOPE_UNSPECIFIED" : 0; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = options.enums === String ? $root.google.cloud.sql.v1.SqlFlagType[message.type] === undefined ? message.type : $root.google.cloud.sql.v1.SqlFlagType[message.type] : message.type; if (message.appliesTo && message.appliesTo.length) { object.appliesTo = []; @@ -64406,33 +68996,35 @@ for (var j = 0; j < message.allowedStringValues.length; ++j) object.allowedStringValues[j] = message.allowedStringValues[j]; } - if (message.minValue != null && message.hasOwnProperty("minValue")) - object.minValue = $root.google.protobuf.Int64Value.toObject(message.minValue, options); - if (message.maxValue != null && message.hasOwnProperty("maxValue")) - object.maxValue = $root.google.protobuf.Int64Value.toObject(message.maxValue, options); - if (message.requiresRestart != null && message.hasOwnProperty("requiresRestart")) - object.requiresRestart = $root.google.protobuf.BoolValue.toObject(message.requiresRestart, options); - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.minValue != null && Object.hasOwnProperty.call(message, "minValue")) + object.minValue = $root.google.protobuf.Int64Value.toObject(message.minValue, options, q + 1); + if (message.maxValue != null && Object.hasOwnProperty.call(message, "maxValue")) + object.maxValue = $root.google.protobuf.Int64Value.toObject(message.maxValue, options, q + 1); + if (message.requiresRestart != null && Object.hasOwnProperty.call(message, "requiresRestart")) + object.requiresRestart = $root.google.protobuf.BoolValue.toObject(message.requiresRestart, options, q + 1); + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.inBeta != null && message.hasOwnProperty("inBeta")) - object.inBeta = $root.google.protobuf.BoolValue.toObject(message.inBeta, options); + if (message.inBeta != null && Object.hasOwnProperty.call(message, "inBeta")) + object.inBeta = $root.google.protobuf.BoolValue.toObject(message.inBeta, options, q + 1); if (message.allowedIntValues && message.allowedIntValues.length) { object.allowedIntValues = []; for (var j = 0; j < message.allowedIntValues.length; ++j) - if (typeof message.allowedIntValues[j] === "number") + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.allowedIntValues[j] = typeof message.allowedIntValues[j] === "number" ? BigInt(message.allowedIntValues[j]) : $util.Long.fromBits(message.allowedIntValues[j].low >>> 0, message.allowedIntValues[j].high >>> 0, false).toBigInt(); + else if (typeof message.allowedIntValues[j] === "number") object.allowedIntValues[j] = options.longs === String ? String(message.allowedIntValues[j]) : message.allowedIntValues[j]; else object.allowedIntValues[j] = options.longs === String ? $util.Long.prototype.toString.call(message.allowedIntValues[j]) : options.longs === Number ? new $util.LongBits(message.allowedIntValues[j].low >>> 0, message.allowedIntValues[j].high >>> 0).toNumber() : message.allowedIntValues[j]; } - if (message.flagScope != null && message.hasOwnProperty("flagScope")) + if (message.flagScope != null && Object.hasOwnProperty.call(message, "flagScope")) object.flagScope = options.enums === String ? $root.google.cloud.sql.v1.SqlFlagScope[message.flagScope] === undefined ? message.flagScope : $root.google.cloud.sql.v1.SqlFlagScope[message.flagScope] : message.flagScope; - if (message.recommendedStringValue != null && message.hasOwnProperty("recommendedStringValue")) { + if (message.recommendedStringValue != null && Object.hasOwnProperty.call(message, "recommendedStringValue")) { object.recommendedStringValue = message.recommendedStringValue; if (options.oneofs) object.recommendedValue = "recommendedStringValue"; } - if (message.recommendedIntValue != null && message.hasOwnProperty("recommendedIntValue")) { - object.recommendedIntValue = $root.google.protobuf.Int64Value.toObject(message.recommendedIntValue, options); + if (message.recommendedIntValue != null && Object.hasOwnProperty.call(message, "recommendedIntValue")) { + object.recommendedIntValue = $root.google.protobuf.Int64Value.toObject(message.recommendedIntValue, options, q + 1); if (options.oneofs) object.recommendedValue = "recommendedIntValue"; } @@ -64632,7 +69224,7 @@ * @variation 1 */ Object.defineProperty(SqlOperationsService.prototype.get = function get(request, callback) { - return this.rpcCall(get, $root.google.cloud.sql.v1.SqlOperationsGetRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, get, $root.google.cloud.sql.v1.SqlOperationsGetRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Get" }); /** @@ -64665,7 +69257,7 @@ * @variation 1 */ Object.defineProperty(SqlOperationsService.prototype.list = function list(request, callback) { - return this.rpcCall(list, $root.google.cloud.sql.v1.SqlOperationsListRequest, $root.google.cloud.sql.v1.OperationsListResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, list, $root.google.cloud.sql.v1.SqlOperationsListRequest, $root.google.cloud.sql.v1.OperationsListResponse, request, callback); }, "name", { value: "List" }); /** @@ -64698,7 +69290,7 @@ * @variation 1 */ Object.defineProperty(SqlOperationsService.prototype.cancel = function cancel(request, callback) { - return this.rpcCall(cancel, $root.google.cloud.sql.v1.SqlOperationsCancelRequest, $root.google.protobuf.Empty, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, cancel, $root.google.cloud.sql.v1.SqlOperationsCancelRequest, $root.google.protobuf.Empty, request, callback); }, "name", { value: "Cancel" }); /** @@ -64735,7 +69327,7 @@ function SqlOperationsGetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -64776,9 +69368,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlOperationsGetRequest.encode = function encode(message, writer) { + SqlOperationsGetRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.operation); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -64796,7 +69392,7 @@ * @returns {$protobuf.Writer} Writer */ SqlOperationsGetRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -64810,9 +69406,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlOperationsGetRequest.decode = function decode(reader, length, error) { + SqlOperationsGetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlOperationsGetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -64828,7 +69428,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -64859,13 +69459,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlOperationsGetRequest.verify = function verify(message) { + SqlOperationsGetRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.operation != null && message.hasOwnProperty("operation")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) if (!$util.isString(message.operation)) return "operation: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -64879,9 +69483,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlOperationsGetRequest} SqlOperationsGetRequest */ - SqlOperationsGetRequest.fromObject = function fromObject(object) { + SqlOperationsGetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlOperationsGetRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlOperationsGetRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlOperationsGetRequest(); if (object.operation != null) message.operation = String(object.operation); @@ -64899,17 +69509,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlOperationsGetRequest.toObject = function toObject(message, options) { + SqlOperationsGetRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.operation = ""; object.project = ""; } - if (message.operation != null && message.hasOwnProperty("operation")) + if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) object.operation = message.operation; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -64966,7 +69580,7 @@ function SqlOperationsListRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -65023,9 +69637,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlOperationsListRequest.encode = function encode(message, writer) { + SqlOperationsListRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) @@ -65047,7 +69665,7 @@ * @returns {$protobuf.Writer} Writer */ SqlOperationsListRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -65061,9 +69679,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlOperationsListRequest.decode = function decode(reader, length, error) { + SqlOperationsListRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlOperationsListRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -65087,7 +69709,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -65118,19 +69740,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlOperationsListRequest.verify = function verify(message) { + SqlOperationsListRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.maxResults != null && message.hasOwnProperty("maxResults")) + if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) if (!$util.isInteger(message.maxResults)) return "maxResults: integer expected"; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) if (!$util.isString(message.pageToken)) return "pageToken: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -65144,9 +69770,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlOperationsListRequest} SqlOperationsListRequest */ - SqlOperationsListRequest.fromObject = function fromObject(object) { + SqlOperationsListRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlOperationsListRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlOperationsListRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlOperationsListRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -65168,9 +69800,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlOperationsListRequest.toObject = function toObject(message, options) { + SqlOperationsListRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; @@ -65178,13 +69814,13 @@ object.pageToken = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.maxResults != null && message.hasOwnProperty("maxResults")) + if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) object.maxResults = message.maxResults; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) object.pageToken = message.pageToken; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -65241,7 +69877,7 @@ this.items = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -65290,14 +69926,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - OperationsListResponse.encode = function encode(message, writer) { + OperationsListResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.items != null && message.items.length) for (var i = 0; i < message.items.length; ++i) - $root.google.cloud.sql.v1.Operation.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.Operation.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.nextPageToken); return writer; @@ -65313,7 +69953,7 @@ * @returns {$protobuf.Writer} Writer */ OperationsListResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -65327,9 +69967,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OperationsListResponse.decode = function decode(reader, length, error) { + OperationsListResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.OperationsListResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -65343,7 +69987,7 @@ case 2: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.sql.v1.Operation.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.sql.v1.Operation.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { @@ -65351,7 +69995,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -65382,22 +70026,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OperationsListResponse.verify = function verify(message) { + OperationsListResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.items != null && message.hasOwnProperty("items")) { + if (message.items != null && Object.hasOwnProperty.call(message, "items")) { if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.sql.v1.Operation.verify(message.items[i]); + var error = $root.google.cloud.sql.v1.Operation.verify(message.items[i], long + 1); if (error) return "items." + error; } } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) if (!$util.isString(message.nextPageToken)) return "nextPageToken: string expected"; return null; @@ -65411,9 +70059,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.OperationsListResponse} OperationsListResponse */ - OperationsListResponse.fromObject = function fromObject(object) { + OperationsListResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.OperationsListResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.OperationsListResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.OperationsListResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -65422,9 +70076,9 @@ throw TypeError(".google.cloud.sql.v1.OperationsListResponse.items: array expected"); message.items = []; for (var i = 0; i < object.items.length; ++i) { - if (typeof object.items[i] !== "object") + if (!$util.isObject(object.items[i])) throw TypeError(".google.cloud.sql.v1.OperationsListResponse.items: object expected"); - message.items[i] = $root.google.cloud.sql.v1.Operation.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.sql.v1.Operation.fromObject(object.items[i], long + 1); } } if (object.nextPageToken != null) @@ -65441,9 +70095,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - OperationsListResponse.toObject = function toObject(message, options) { + OperationsListResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.items = []; @@ -65451,14 +70109,14 @@ object.kind = ""; object.nextPageToken = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.items && message.items.length) { object.items = []; for (var j = 0; j < message.items.length; ++j) - object.items[j] = $root.google.cloud.sql.v1.Operation.toObject(message.items[j], options); + object.items[j] = $root.google.cloud.sql.v1.Operation.toObject(message.items[j], options, q + 1); } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) object.nextPageToken = message.nextPageToken; return object; }; @@ -65513,7 +70171,7 @@ function SqlOperationsCancelRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -65554,9 +70212,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlOperationsCancelRequest.encode = function encode(message, writer) { + SqlOperationsCancelRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.operation); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -65574,7 +70236,7 @@ * @returns {$protobuf.Writer} Writer */ SqlOperationsCancelRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -65588,9 +70250,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlOperationsCancelRequest.decode = function decode(reader, length, error) { + SqlOperationsCancelRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlOperationsCancelRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -65606,7 +70272,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -65637,13 +70303,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlOperationsCancelRequest.verify = function verify(message) { + SqlOperationsCancelRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.operation != null && message.hasOwnProperty("operation")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) if (!$util.isString(message.operation)) return "operation: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -65657,9 +70327,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlOperationsCancelRequest} SqlOperationsCancelRequest */ - SqlOperationsCancelRequest.fromObject = function fromObject(object) { + SqlOperationsCancelRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlOperationsCancelRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlOperationsCancelRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlOperationsCancelRequest(); if (object.operation != null) message.operation = String(object.operation); @@ -65677,17 +70353,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlOperationsCancelRequest.toObject = function toObject(message, options) { + SqlOperationsCancelRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.operation = ""; object.project = ""; } - if (message.operation != null && message.hasOwnProperty("operation")) + if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) object.operation = message.operation; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -65808,7 +70488,7 @@ * @variation 1 */ Object.defineProperty(SqlSslCertsService.prototype["delete"] = function delete_(request, callback) { - return this.rpcCall(delete_, $root.google.cloud.sql.v1.SqlSslCertsDeleteRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, delete_, $root.google.cloud.sql.v1.SqlSslCertsDeleteRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Delete" }); /** @@ -65841,7 +70521,7 @@ * @variation 1 */ Object.defineProperty(SqlSslCertsService.prototype.get = function get(request, callback) { - return this.rpcCall(get, $root.google.cloud.sql.v1.SqlSslCertsGetRequest, $root.google.cloud.sql.v1.SslCert, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, get, $root.google.cloud.sql.v1.SqlSslCertsGetRequest, $root.google.cloud.sql.v1.SslCert, request, callback); }, "name", { value: "Get" }); /** @@ -65874,7 +70554,7 @@ * @variation 1 */ Object.defineProperty(SqlSslCertsService.prototype.insert = function insert(request, callback) { - return this.rpcCall(insert, $root.google.cloud.sql.v1.SqlSslCertsInsertRequest, $root.google.cloud.sql.v1.SslCertsInsertResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, insert, $root.google.cloud.sql.v1.SqlSslCertsInsertRequest, $root.google.cloud.sql.v1.SslCertsInsertResponse, request, callback); }, "name", { value: "Insert" }); /** @@ -65907,7 +70587,7 @@ * @variation 1 */ Object.defineProperty(SqlSslCertsService.prototype.list = function list(request, callback) { - return this.rpcCall(list, $root.google.cloud.sql.v1.SqlSslCertsListRequest, $root.google.cloud.sql.v1.SslCertsListResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, list, $root.google.cloud.sql.v1.SqlSslCertsListRequest, $root.google.cloud.sql.v1.SslCertsListResponse, request, callback); }, "name", { value: "List" }); /** @@ -65945,7 +70625,7 @@ function SqlSslCertsDeleteRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -65994,9 +70674,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlSslCertsDeleteRequest.encode = function encode(message, writer) { + SqlSslCertsDeleteRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -66016,7 +70700,7 @@ * @returns {$protobuf.Writer} Writer */ SqlSslCertsDeleteRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -66030,9 +70714,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlSslCertsDeleteRequest.decode = function decode(reader, length, error) { + SqlSslCertsDeleteRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlSslCertsDeleteRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -66052,7 +70740,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -66083,16 +70771,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlSslCertsDeleteRequest.verify = function verify(message) { + SqlSslCertsDeleteRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.sha1Fingerprint != null && message.hasOwnProperty("sha1Fingerprint")) + if (message.sha1Fingerprint != null && Object.hasOwnProperty.call(message, "sha1Fingerprint")) if (!$util.isString(message.sha1Fingerprint)) return "sha1Fingerprint: string expected"; return null; @@ -66106,9 +70798,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlSslCertsDeleteRequest} SqlSslCertsDeleteRequest */ - SqlSslCertsDeleteRequest.fromObject = function fromObject(object) { + SqlSslCertsDeleteRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlSslCertsDeleteRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlSslCertsDeleteRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlSslCertsDeleteRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -66128,20 +70826,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlSslCertsDeleteRequest.toObject = function toObject(message, options) { + SqlSslCertsDeleteRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.sha1Fingerprint = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.sha1Fingerprint != null && message.hasOwnProperty("sha1Fingerprint")) + if (message.sha1Fingerprint != null && Object.hasOwnProperty.call(message, "sha1Fingerprint")) object.sha1Fingerprint = message.sha1Fingerprint; return object; }; @@ -66197,7 +70899,7 @@ function SqlSslCertsGetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -66246,9 +70948,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlSslCertsGetRequest.encode = function encode(message, writer) { + SqlSslCertsGetRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -66268,7 +70974,7 @@ * @returns {$protobuf.Writer} Writer */ SqlSslCertsGetRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -66282,9 +70988,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlSslCertsGetRequest.decode = function decode(reader, length, error) { + SqlSslCertsGetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlSslCertsGetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -66304,7 +71014,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -66335,16 +71045,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlSslCertsGetRequest.verify = function verify(message) { + SqlSslCertsGetRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.sha1Fingerprint != null && message.hasOwnProperty("sha1Fingerprint")) + if (message.sha1Fingerprint != null && Object.hasOwnProperty.call(message, "sha1Fingerprint")) if (!$util.isString(message.sha1Fingerprint)) return "sha1Fingerprint: string expected"; return null; @@ -66358,9 +71072,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlSslCertsGetRequest} SqlSslCertsGetRequest */ - SqlSslCertsGetRequest.fromObject = function fromObject(object) { + SqlSslCertsGetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlSslCertsGetRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlSslCertsGetRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlSslCertsGetRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -66380,20 +71100,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlSslCertsGetRequest.toObject = function toObject(message, options) { + SqlSslCertsGetRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.sha1Fingerprint = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.sha1Fingerprint != null && message.hasOwnProperty("sha1Fingerprint")) + if (message.sha1Fingerprint != null && Object.hasOwnProperty.call(message, "sha1Fingerprint")) object.sha1Fingerprint = message.sha1Fingerprint; return object; }; @@ -66449,7 +71173,7 @@ function SqlSslCertsInsertRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -66498,15 +71222,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlSslCertsInsertRequest.encode = function encode(message, writer) { + SqlSslCertsInsertRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.SslCertsInsertRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.SslCertsInsertRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -66520,7 +71248,7 @@ * @returns {$protobuf.Writer} Writer */ SqlSslCertsInsertRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -66534,9 +71262,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlSslCertsInsertRequest.decode = function decode(reader, length, error) { + SqlSslCertsInsertRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlSslCertsInsertRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -66552,11 +71284,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.SslCertsInsertRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.SslCertsInsertRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -66587,17 +71319,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlSslCertsInsertRequest.verify = function verify(message) { + SqlSslCertsInsertRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.SslCertsInsertRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.SslCertsInsertRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -66612,18 +71348,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlSslCertsInsertRequest} SqlSslCertsInsertRequest */ - SqlSslCertsInsertRequest.fromObject = function fromObject(object) { + SqlSslCertsInsertRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlSslCertsInsertRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlSslCertsInsertRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlSslCertsInsertRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlSslCertsInsertRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.SslCertsInsertRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.SslCertsInsertRequest.fromObject(object.body, long + 1); } return message; }; @@ -66637,21 +71379,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlSslCertsInsertRequest.toObject = function toObject(message, options) { + SqlSslCertsInsertRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.SslCertsInsertRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.SslCertsInsertRequest.toObject(message.body, options, q + 1); return object; }; @@ -66705,7 +71451,7 @@ function SqlSslCertsListRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -66746,9 +71492,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlSslCertsListRequest.encode = function encode(message, writer) { + SqlSslCertsListRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -66766,7 +71516,7 @@ * @returns {$protobuf.Writer} Writer */ SqlSslCertsListRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -66780,9 +71530,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlSslCertsListRequest.decode = function decode(reader, length, error) { + SqlSslCertsListRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlSslCertsListRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -66798,7 +71552,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -66829,13 +71583,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlSslCertsListRequest.verify = function verify(message) { + SqlSslCertsListRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -66849,9 +71607,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlSslCertsListRequest} SqlSslCertsListRequest */ - SqlSslCertsListRequest.fromObject = function fromObject(object) { + SqlSslCertsListRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlSslCertsListRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlSslCertsListRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlSslCertsListRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -66869,17 +71633,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlSslCertsListRequest.toObject = function toObject(message, options) { + SqlSslCertsListRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -66933,7 +71701,7 @@ function SslCertsInsertRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -66966,9 +71734,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SslCertsInsertRequest.encode = function encode(message, writer) { + SslCertsInsertRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.commonName != null && Object.hasOwnProperty.call(message, "commonName")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.commonName); return writer; @@ -66984,7 +71756,7 @@ * @returns {$protobuf.Writer} Writer */ SslCertsInsertRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -66998,9 +71770,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SslCertsInsertRequest.decode = function decode(reader, length, error) { + SslCertsInsertRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SslCertsInsertRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -67012,7 +71788,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -67043,10 +71819,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SslCertsInsertRequest.verify = function verify(message) { + SslCertsInsertRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.commonName != null && message.hasOwnProperty("commonName")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.commonName != null && Object.hasOwnProperty.call(message, "commonName")) if (!$util.isString(message.commonName)) return "commonName: string expected"; return null; @@ -67060,9 +71840,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SslCertsInsertRequest} SslCertsInsertRequest */ - SslCertsInsertRequest.fromObject = function fromObject(object) { + SslCertsInsertRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SslCertsInsertRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SslCertsInsertRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SslCertsInsertRequest(); if (object.commonName != null) message.commonName = String(object.commonName); @@ -67078,13 +71864,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SslCertsInsertRequest.toObject = function toObject(message, options) { + SslCertsInsertRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.commonName = ""; - if (message.commonName != null && message.hasOwnProperty("commonName")) + if (message.commonName != null && Object.hasOwnProperty.call(message, "commonName")) object.commonName = message.commonName; return object; }; @@ -67141,7 +71931,7 @@ function SslCertsInsertResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -67198,17 +71988,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SslCertsInsertResponse.encode = function encode(message, writer) { + SslCertsInsertResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) - $root.google.cloud.sql.v1.Operation.encode(message.operation, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.Operation.encode(message.operation, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) - $root.google.cloud.sql.v1.SslCert.encode(message.serverCaCert, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1.SslCert.encode(message.serverCaCert, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.clientCert != null && Object.hasOwnProperty.call(message, "clientCert")) - $root.google.cloud.sql.v1.SslCertDetail.encode(message.clientCert, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1.SslCertDetail.encode(message.clientCert, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); return writer; }; @@ -67222,7 +72016,7 @@ * @returns {$protobuf.Writer} Writer */ SslCertsInsertResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -67236,9 +72030,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SslCertsInsertResponse.decode = function decode(reader, length, error) { + SslCertsInsertResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SslCertsInsertResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -67250,19 +72048,19 @@ break; } case 2: { - message.operation = $root.google.cloud.sql.v1.Operation.decode(reader, reader.uint32()); + message.operation = $root.google.cloud.sql.v1.Operation.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { - message.serverCaCert = $root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32()); + message.serverCaCert = $root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { - message.clientCert = $root.google.cloud.sql.v1.SslCertDetail.decode(reader, reader.uint32()); + message.clientCert = $root.google.cloud.sql.v1.SslCertDetail.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -67293,24 +72091,28 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SslCertsInsertResponse.verify = function verify(message) { + SslCertsInsertResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.operation != null && message.hasOwnProperty("operation")) { - var error = $root.google.cloud.sql.v1.Operation.verify(message.operation); + if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) { + var error = $root.google.cloud.sql.v1.Operation.verify(message.operation, long + 1); if (error) return "operation." + error; } - if (message.serverCaCert != null && message.hasOwnProperty("serverCaCert")) { - var error = $root.google.cloud.sql.v1.SslCert.verify(message.serverCaCert); + if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) { + var error = $root.google.cloud.sql.v1.SslCert.verify(message.serverCaCert, long + 1); if (error) return "serverCaCert." + error; } - if (message.clientCert != null && message.hasOwnProperty("clientCert")) { - var error = $root.google.cloud.sql.v1.SslCertDetail.verify(message.clientCert); + if (message.clientCert != null && Object.hasOwnProperty.call(message, "clientCert")) { + var error = $root.google.cloud.sql.v1.SslCertDetail.verify(message.clientCert, long + 1); if (error) return "clientCert." + error; } @@ -67325,26 +72127,32 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SslCertsInsertResponse} SslCertsInsertResponse */ - SslCertsInsertResponse.fromObject = function fromObject(object) { + SslCertsInsertResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SslCertsInsertResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SslCertsInsertResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SslCertsInsertResponse(); if (object.kind != null) message.kind = String(object.kind); if (object.operation != null) { - if (typeof object.operation !== "object") + if (!$util.isObject(object.operation)) throw TypeError(".google.cloud.sql.v1.SslCertsInsertResponse.operation: object expected"); - message.operation = $root.google.cloud.sql.v1.Operation.fromObject(object.operation); + message.operation = $root.google.cloud.sql.v1.Operation.fromObject(object.operation, long + 1); } if (object.serverCaCert != null) { - if (typeof object.serverCaCert !== "object") + if (!$util.isObject(object.serverCaCert)) throw TypeError(".google.cloud.sql.v1.SslCertsInsertResponse.serverCaCert: object expected"); - message.serverCaCert = $root.google.cloud.sql.v1.SslCert.fromObject(object.serverCaCert); + message.serverCaCert = $root.google.cloud.sql.v1.SslCert.fromObject(object.serverCaCert, long + 1); } if (object.clientCert != null) { - if (typeof object.clientCert !== "object") + if (!$util.isObject(object.clientCert)) throw TypeError(".google.cloud.sql.v1.SslCertsInsertResponse.clientCert: object expected"); - message.clientCert = $root.google.cloud.sql.v1.SslCertDetail.fromObject(object.clientCert); + message.clientCert = $root.google.cloud.sql.v1.SslCertDetail.fromObject(object.clientCert, long + 1); } return message; }; @@ -67358,9 +72166,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SslCertsInsertResponse.toObject = function toObject(message, options) { + SslCertsInsertResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -67368,14 +72180,14 @@ object.serverCaCert = null; object.clientCert = null; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.operation != null && message.hasOwnProperty("operation")) - object.operation = $root.google.cloud.sql.v1.Operation.toObject(message.operation, options); - if (message.serverCaCert != null && message.hasOwnProperty("serverCaCert")) - object.serverCaCert = $root.google.cloud.sql.v1.SslCert.toObject(message.serverCaCert, options); - if (message.clientCert != null && message.hasOwnProperty("clientCert")) - object.clientCert = $root.google.cloud.sql.v1.SslCertDetail.toObject(message.clientCert, options); + if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) + object.operation = $root.google.cloud.sql.v1.Operation.toObject(message.operation, options, q + 1); + if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) + object.serverCaCert = $root.google.cloud.sql.v1.SslCert.toObject(message.serverCaCert, options, q + 1); + if (message.clientCert != null && Object.hasOwnProperty.call(message, "clientCert")) + object.clientCert = $root.google.cloud.sql.v1.SslCertDetail.toObject(message.clientCert, options, q + 1); return object; }; @@ -67430,7 +72242,7 @@ this.items = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -67471,14 +72283,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SslCertsListResponse.encode = function encode(message, writer) { + SslCertsListResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.items != null && message.items.length) for (var i = 0; i < message.items.length; ++i) - $root.google.cloud.sql.v1.SslCert.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.SslCert.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -67492,7 +72308,7 @@ * @returns {$protobuf.Writer} Writer */ SslCertsListResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -67506,9 +72322,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SslCertsListResponse.decode = function decode(reader, length, error) { + SslCertsListResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SslCertsListResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -67522,11 +72342,11 @@ case 2: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.sql.v1.SslCert.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -67557,17 +72377,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SslCertsListResponse.verify = function verify(message) { + SslCertsListResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.items != null && message.hasOwnProperty("items")) { + if (message.items != null && Object.hasOwnProperty.call(message, "items")) { if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.sql.v1.SslCert.verify(message.items[i]); + var error = $root.google.cloud.sql.v1.SslCert.verify(message.items[i], long + 1); if (error) return "items." + error; } @@ -67583,9 +72407,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SslCertsListResponse} SslCertsListResponse */ - SslCertsListResponse.fromObject = function fromObject(object) { + SslCertsListResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SslCertsListResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SslCertsListResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SslCertsListResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -67594,9 +72424,9 @@ throw TypeError(".google.cloud.sql.v1.SslCertsListResponse.items: array expected"); message.items = []; for (var i = 0; i < object.items.length; ++i) { - if (typeof object.items[i] !== "object") + if (!$util.isObject(object.items[i])) throw TypeError(".google.cloud.sql.v1.SslCertsListResponse.items: object expected"); - message.items[i] = $root.google.cloud.sql.v1.SslCert.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.sql.v1.SslCert.fromObject(object.items[i], long + 1); } } return message; @@ -67611,20 +72441,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SslCertsListResponse.toObject = function toObject(message, options) { + SslCertsListResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.items = []; if (options.defaults) object.kind = ""; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.items && message.items.length) { object.items = []; for (var j = 0; j < message.items.length; ++j) - object.items[j] = $root.google.cloud.sql.v1.SslCert.toObject(message.items[j], options); + object.items[j] = $root.google.cloud.sql.v1.SslCert.toObject(message.items[j], options, q + 1); } return object; }; @@ -67710,7 +72544,7 @@ * @variation 1 */ Object.defineProperty(SqlTiersService.prototype.list = function list(request, callback) { - return this.rpcCall(list, $root.google.cloud.sql.v1.SqlTiersListRequest, $root.google.cloud.sql.v1.TiersListResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, list, $root.google.cloud.sql.v1.SqlTiersListRequest, $root.google.cloud.sql.v1.TiersListResponse, request, callback); }, "name", { value: "List" }); /** @@ -67746,7 +72580,7 @@ function SqlTiersListRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -67779,9 +72613,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlTiersListRequest.encode = function encode(message, writer) { + SqlTiersListRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.project); return writer; @@ -67797,7 +72635,7 @@ * @returns {$protobuf.Writer} Writer */ SqlTiersListRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -67811,9 +72649,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlTiersListRequest.decode = function decode(reader, length, error) { + SqlTiersListRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlTiersListRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -67825,7 +72667,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -67856,10 +72698,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlTiersListRequest.verify = function verify(message) { + SqlTiersListRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -67873,9 +72719,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlTiersListRequest} SqlTiersListRequest */ - SqlTiersListRequest.fromObject = function fromObject(object) { + SqlTiersListRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlTiersListRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlTiersListRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlTiersListRequest(); if (object.project != null) message.project = String(object.project); @@ -67891,13 +72743,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlTiersListRequest.toObject = function toObject(message, options) { + SqlTiersListRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.project = ""; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -67953,7 +72809,7 @@ this.items = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -67994,14 +72850,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - TiersListResponse.encode = function encode(message, writer) { + TiersListResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.items != null && message.items.length) for (var i = 0; i < message.items.length; ++i) - $root.google.cloud.sql.v1.Tier.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.Tier.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -68015,7 +72875,7 @@ * @returns {$protobuf.Writer} Writer */ TiersListResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -68029,9 +72889,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - TiersListResponse.decode = function decode(reader, length, error) { + TiersListResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.TiersListResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -68045,11 +72909,11 @@ case 2: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.sql.v1.Tier.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.sql.v1.Tier.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -68080,17 +72944,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - TiersListResponse.verify = function verify(message) { + TiersListResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.items != null && message.hasOwnProperty("items")) { + if (message.items != null && Object.hasOwnProperty.call(message, "items")) { if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.sql.v1.Tier.verify(message.items[i]); + var error = $root.google.cloud.sql.v1.Tier.verify(message.items[i], long + 1); if (error) return "items." + error; } @@ -68106,9 +72974,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.TiersListResponse} TiersListResponse */ - TiersListResponse.fromObject = function fromObject(object) { + TiersListResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.TiersListResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.TiersListResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.TiersListResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -68117,9 +72991,9 @@ throw TypeError(".google.cloud.sql.v1.TiersListResponse.items: array expected"); message.items = []; for (var i = 0; i < object.items.length; ++i) { - if (typeof object.items[i] !== "object") + if (!$util.isObject(object.items[i])) throw TypeError(".google.cloud.sql.v1.TiersListResponse.items: object expected"); - message.items[i] = $root.google.cloud.sql.v1.Tier.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.sql.v1.Tier.fromObject(object.items[i], long + 1); } } return message; @@ -68134,20 +73008,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - TiersListResponse.toObject = function toObject(message, options) { + TiersListResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.items = []; if (options.defaults) object.kind = ""; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.items && message.items.length) { object.items = []; for (var j = 0; j < message.items.length; ++j) - object.items[j] = $root.google.cloud.sql.v1.Tier.toObject(message.items[j], options); + object.items[j] = $root.google.cloud.sql.v1.Tier.toObject(message.items[j], options, q + 1); } return object; }; @@ -68206,7 +73084,7 @@ this.region = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -68271,9 +73149,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Tier.encode = function encode(message, writer) { + Tier.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.tier != null && Object.hasOwnProperty.call(message, "tier")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.tier); if (message.RAM != null && Object.hasOwnProperty.call(message, "RAM")) @@ -68298,7 +73180,7 @@ * @returns {$protobuf.Writer} Writer */ Tier.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -68312,9 +73194,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Tier.decode = function decode(reader, length, error) { + Tier.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.Tier(); while (reader.pos < end) { var tag = reader.uint32(); @@ -68344,7 +73230,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -68375,22 +73261,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Tier.verify = function verify(message) { + Tier.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.tier != null && message.hasOwnProperty("tier")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.tier != null && Object.hasOwnProperty.call(message, "tier")) if (!$util.isString(message.tier)) return "tier: string expected"; - if (message.RAM != null && message.hasOwnProperty("RAM")) + if (message.RAM != null && Object.hasOwnProperty.call(message, "RAM")) if (!$util.isInteger(message.RAM) && !(message.RAM && $util.isInteger(message.RAM.low) && $util.isInteger(message.RAM.high))) return "RAM: integer|Long expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.Disk_Quota != null && message.hasOwnProperty("Disk_Quota")) + if (message.Disk_Quota != null && Object.hasOwnProperty.call(message, "Disk_Quota")) if (!$util.isInteger(message.Disk_Quota) && !(message.Disk_Quota && $util.isInteger(message.Disk_Quota.low) && $util.isInteger(message.Disk_Quota.high))) return "Disk_Quota: integer|Long expected"; - if (message.region != null && message.hasOwnProperty("region")) { + if (message.region != null && Object.hasOwnProperty.call(message, "region")) { if (!Array.isArray(message.region)) return "region: array expected"; for (var i = 0; i < message.region.length; ++i) @@ -68408,15 +73298,21 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.Tier} Tier */ - Tier.fromObject = function fromObject(object) { + Tier.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.Tier) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.Tier: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.Tier(); if (object.tier != null) message.tier = String(object.tier); if (object.RAM != null) if ($util.Long) - (message.RAM = $util.Long.fromValue(object.RAM)).unsigned = false; + message.RAM = $util.Long.fromValue(object.RAM, false); else if (typeof object.RAM === "string") message.RAM = parseInt(object.RAM, 10); else if (typeof object.RAM === "number") @@ -68427,7 +73323,7 @@ message.kind = String(object.kind); if (object.Disk_Quota != null) if ($util.Long) - (message.Disk_Quota = $util.Long.fromValue(object.Disk_Quota)).unsigned = false; + message.Disk_Quota = $util.Long.fromValue(object.Disk_Quota, false); else if (typeof object.Disk_Quota === "string") message.Disk_Quota = parseInt(object.Disk_Quota, 10); else if (typeof object.Disk_Quota === "number") @@ -68453,9 +73349,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Tier.toObject = function toObject(message, options) { + Tier.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.region = []; @@ -68463,27 +73363,31 @@ object.tier = ""; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.RAM = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.RAM = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.RAM = options.longs === String ? "0" : 0; + object.RAM = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.kind = ""; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.Disk_Quota = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.Disk_Quota = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.Disk_Quota = options.longs === String ? "0" : 0; + object.Disk_Quota = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; } - if (message.tier != null && message.hasOwnProperty("tier")) + if (message.tier != null && Object.hasOwnProperty.call(message, "tier")) object.tier = message.tier; - if (message.RAM != null && message.hasOwnProperty("RAM")) - if (typeof message.RAM === "number") + if (message.RAM != null && Object.hasOwnProperty.call(message, "RAM")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.RAM = typeof message.RAM === "number" ? BigInt(message.RAM) : $util.Long.fromBits(message.RAM.low >>> 0, message.RAM.high >>> 0, false).toBigInt(); + else if (typeof message.RAM === "number") object.RAM = options.longs === String ? String(message.RAM) : message.RAM; else object.RAM = options.longs === String ? $util.Long.prototype.toString.call(message.RAM) : options.longs === Number ? new $util.LongBits(message.RAM.low >>> 0, message.RAM.high >>> 0).toNumber() : message.RAM; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.Disk_Quota != null && message.hasOwnProperty("Disk_Quota")) - if (typeof message.Disk_Quota === "number") + if (message.Disk_Quota != null && Object.hasOwnProperty.call(message, "Disk_Quota")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.Disk_Quota = typeof message.Disk_Quota === "number" ? BigInt(message.Disk_Quota) : $util.Long.fromBits(message.Disk_Quota.low >>> 0, message.Disk_Quota.high >>> 0, false).toBigInt(); + else if (typeof message.Disk_Quota === "number") object.Disk_Quota = options.longs === String ? String(message.Disk_Quota) : message.Disk_Quota; else object.Disk_Quota = options.longs === String ? $util.Long.prototype.toString.call(message.Disk_Quota) : options.longs === Number ? new $util.LongBits(message.Disk_Quota.low >>> 0, message.Disk_Quota.high >>> 0).toNumber() : message.Disk_Quota; @@ -68576,7 +73480,7 @@ * @variation 1 */ Object.defineProperty(SqlUsersService.prototype["delete"] = function delete_(request, callback) { - return this.rpcCall(delete_, $root.google.cloud.sql.v1.SqlUsersDeleteRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, delete_, $root.google.cloud.sql.v1.SqlUsersDeleteRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Delete" }); /** @@ -68609,7 +73513,7 @@ * @variation 1 */ Object.defineProperty(SqlUsersService.prototype.get = function get(request, callback) { - return this.rpcCall(get, $root.google.cloud.sql.v1.SqlUsersGetRequest, $root.google.cloud.sql.v1.User, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, get, $root.google.cloud.sql.v1.SqlUsersGetRequest, $root.google.cloud.sql.v1.User, request, callback); }, "name", { value: "Get" }); /** @@ -68642,7 +73546,7 @@ * @variation 1 */ Object.defineProperty(SqlUsersService.prototype.insert = function insert(request, callback) { - return this.rpcCall(insert, $root.google.cloud.sql.v1.SqlUsersInsertRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, insert, $root.google.cloud.sql.v1.SqlUsersInsertRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Insert" }); /** @@ -68675,7 +73579,7 @@ * @variation 1 */ Object.defineProperty(SqlUsersService.prototype.list = function list(request, callback) { - return this.rpcCall(list, $root.google.cloud.sql.v1.SqlUsersListRequest, $root.google.cloud.sql.v1.UsersListResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, list, $root.google.cloud.sql.v1.SqlUsersListRequest, $root.google.cloud.sql.v1.UsersListResponse, request, callback); }, "name", { value: "List" }); /** @@ -68708,7 +73612,7 @@ * @variation 1 */ Object.defineProperty(SqlUsersService.prototype.update = function update(request, callback) { - return this.rpcCall(update, $root.google.cloud.sql.v1.SqlUsersUpdateRequest, $root.google.cloud.sql.v1.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, update, $root.google.cloud.sql.v1.SqlUsersUpdateRequest, $root.google.cloud.sql.v1.Operation, request, callback); }, "name", { value: "Update" }); /** @@ -68747,7 +73651,7 @@ function SqlUsersDeleteRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -68804,9 +73708,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlUsersDeleteRequest.encode = function encode(message, writer) { + SqlUsersDeleteRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.host != null && Object.hasOwnProperty.call(message, "host")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.host); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) @@ -68828,7 +73736,7 @@ * @returns {$protobuf.Writer} Writer */ SqlUsersDeleteRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -68842,9 +73750,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlUsersDeleteRequest.decode = function decode(reader, length, error) { + SqlUsersDeleteRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlUsersDeleteRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -68868,7 +73780,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -68899,19 +73811,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlUsersDeleteRequest.verify = function verify(message) { + SqlUsersDeleteRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.host != null && message.hasOwnProperty("host")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.host != null && Object.hasOwnProperty.call(message, "host")) if (!$util.isString(message.host)) return "host: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -68925,9 +73841,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlUsersDeleteRequest} SqlUsersDeleteRequest */ - SqlUsersDeleteRequest.fromObject = function fromObject(object) { + SqlUsersDeleteRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlUsersDeleteRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlUsersDeleteRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlUsersDeleteRequest(); if (object.host != null) message.host = String(object.host); @@ -68949,9 +73871,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlUsersDeleteRequest.toObject = function toObject(message, options) { + SqlUsersDeleteRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.host = ""; @@ -68959,13 +73885,13 @@ object.name = ""; object.project = ""; } - if (message.host != null && message.hasOwnProperty("host")) + if (message.host != null && Object.hasOwnProperty.call(message, "host")) object.host = message.host; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -69022,7 +73948,7 @@ function SqlUsersGetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -69079,9 +74005,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlUsersGetRequest.encode = function encode(message, writer) { + SqlUsersGetRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.name != null && Object.hasOwnProperty.call(message, "name")) @@ -69103,7 +74033,7 @@ * @returns {$protobuf.Writer} Writer */ SqlUsersGetRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -69117,9 +74047,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlUsersGetRequest.decode = function decode(reader, length, error) { + SqlUsersGetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlUsersGetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -69143,7 +74077,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -69174,19 +74108,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlUsersGetRequest.verify = function verify(message) { + SqlUsersGetRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.host != null && message.hasOwnProperty("host")) + if (message.host != null && Object.hasOwnProperty.call(message, "host")) if (!$util.isString(message.host)) return "host: string expected"; return null; @@ -69200,9 +74138,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlUsersGetRequest} SqlUsersGetRequest */ - SqlUsersGetRequest.fromObject = function fromObject(object) { + SqlUsersGetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlUsersGetRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlUsersGetRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlUsersGetRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -69224,9 +74168,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlUsersGetRequest.toObject = function toObject(message, options) { + SqlUsersGetRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; @@ -69234,13 +74182,13 @@ object.project = ""; object.host = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.host != null && message.hasOwnProperty("host")) + if (message.host != null && Object.hasOwnProperty.call(message, "host")) object.host = message.host; return object; }; @@ -69296,7 +74244,7 @@ function SqlUsersInsertRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -69345,15 +74293,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlUsersInsertRequest.encode = function encode(message, writer) { + SqlUsersInsertRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.User.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.User.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -69367,7 +74319,7 @@ * @returns {$protobuf.Writer} Writer */ SqlUsersInsertRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -69381,9 +74333,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlUsersInsertRequest.decode = function decode(reader, length, error) { + SqlUsersInsertRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlUsersInsertRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -69399,11 +74355,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.User.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.User.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -69434,17 +74390,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlUsersInsertRequest.verify = function verify(message) { + SqlUsersInsertRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.User.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.User.verify(message.body, long + 1); if (error) return "body." + error; } @@ -69459,18 +74419,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlUsersInsertRequest} SqlUsersInsertRequest */ - SqlUsersInsertRequest.fromObject = function fromObject(object) { + SqlUsersInsertRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlUsersInsertRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlUsersInsertRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlUsersInsertRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlUsersInsertRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.User.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.User.fromObject(object.body, long + 1); } return message; }; @@ -69484,21 +74450,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlUsersInsertRequest.toObject = function toObject(message, options) { + SqlUsersInsertRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.User.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.User.toObject(message.body, options, q + 1); return object; }; @@ -69552,7 +74522,7 @@ function SqlUsersListRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -69593,9 +74563,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlUsersListRequest.encode = function encode(message, writer) { + SqlUsersListRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -69613,7 +74587,7 @@ * @returns {$protobuf.Writer} Writer */ SqlUsersListRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -69627,9 +74601,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlUsersListRequest.decode = function decode(reader, length, error) { + SqlUsersListRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlUsersListRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -69645,7 +74623,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -69676,13 +74654,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlUsersListRequest.verify = function verify(message) { + SqlUsersListRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -69696,9 +74678,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlUsersListRequest} SqlUsersListRequest */ - SqlUsersListRequest.fromObject = function fromObject(object) { + SqlUsersListRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlUsersListRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlUsersListRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlUsersListRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -69716,17 +74704,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlUsersListRequest.toObject = function toObject(message, options) { + SqlUsersListRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -69787,7 +74779,7 @@ this.databaseRoles = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -69877,9 +74869,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlUsersUpdateRequest.encode = function encode(message, writer) { + SqlUsersUpdateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.host != null && Object.hasOwnProperty.call(message, "host")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.host); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) @@ -69894,7 +74890,7 @@ if (message.revokeExistingRoles != null && Object.hasOwnProperty.call(message, "revokeExistingRoles")) writer.uint32(/* id 6, wireType 0 =*/48).bool(message.revokeExistingRoles); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1.User.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1.User.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -69908,7 +74904,7 @@ * @returns {$protobuf.Writer} Writer */ SqlUsersUpdateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -69922,9 +74918,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlUsersUpdateRequest.decode = function decode(reader, length, error) { + SqlUsersUpdateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlUsersUpdateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -69958,11 +74958,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1.User.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1.User.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -69993,36 +74993,40 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlUsersUpdateRequest.verify = function verify(message) { + SqlUsersUpdateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.host != null && message.hasOwnProperty("host")) + if (message.host != null && Object.hasOwnProperty.call(message, "host")) if (!$util.isString(message.host)) return "host: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.databaseRoles != null && message.hasOwnProperty("databaseRoles")) { + if (message.databaseRoles != null && Object.hasOwnProperty.call(message, "databaseRoles")) { if (!Array.isArray(message.databaseRoles)) return "databaseRoles: array expected"; for (var i = 0; i < message.databaseRoles.length; ++i) if (!$util.isString(message.databaseRoles[i])) return "databaseRoles: string[] expected"; } - if (message.revokeExistingRoles != null && message.hasOwnProperty("revokeExistingRoles")) { + if (message.revokeExistingRoles != null && Object.hasOwnProperty.call(message, "revokeExistingRoles")) { properties._revokeExistingRoles = 1; if (typeof message.revokeExistingRoles !== "boolean") return "revokeExistingRoles: boolean expected"; } - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.User.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1.User.verify(message.body, long + 1); if (error) return "body." + error; } @@ -70037,9 +75041,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlUsersUpdateRequest} SqlUsersUpdateRequest */ - SqlUsersUpdateRequest.fromObject = function fromObject(object) { + SqlUsersUpdateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlUsersUpdateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlUsersUpdateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlUsersUpdateRequest(); if (object.host != null) message.host = String(object.host); @@ -70059,9 +75069,9 @@ if (object.revokeExistingRoles != null) message.revokeExistingRoles = Boolean(object.revokeExistingRoles); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1.SqlUsersUpdateRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1.User.fromObject(object.body); + message.body = $root.google.cloud.sql.v1.User.fromObject(object.body, long + 1); } return message; }; @@ -70075,9 +75085,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlUsersUpdateRequest.toObject = function toObject(message, options) { + SqlUsersUpdateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.databaseRoles = []; @@ -70088,26 +75102,26 @@ object.project = ""; object.body = null; } - if (message.host != null && message.hasOwnProperty("host")) + if (message.host != null && Object.hasOwnProperty.call(message, "host")) object.host = message.host; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; if (message.databaseRoles && message.databaseRoles.length) { object.databaseRoles = []; for (var j = 0; j < message.databaseRoles.length; ++j) object.databaseRoles[j] = message.databaseRoles[j]; } - if (message.revokeExistingRoles != null && message.hasOwnProperty("revokeExistingRoles")) { + if (message.revokeExistingRoles != null && Object.hasOwnProperty.call(message, "revokeExistingRoles")) { object.revokeExistingRoles = message.revokeExistingRoles; if (options.oneofs) object._revokeExistingRoles = "revokeExistingRoles"; } - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1.User.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1.User.toObject(message.body, options, q + 1); return object; }; @@ -70164,7 +75178,7 @@ function UserPasswordValidationPolicy(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -70229,17 +75243,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UserPasswordValidationPolicy.encode = function encode(message, writer) { + UserPasswordValidationPolicy.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.allowedFailedAttempts != null && Object.hasOwnProperty.call(message, "allowedFailedAttempts")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.allowedFailedAttempts); if (message.passwordExpirationDuration != null && Object.hasOwnProperty.call(message, "passwordExpirationDuration")) - $root.google.protobuf.Duration.encode(message.passwordExpirationDuration, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.passwordExpirationDuration, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.enableFailedAttemptsCheck != null && Object.hasOwnProperty.call(message, "enableFailedAttemptsCheck")) writer.uint32(/* id 3, wireType 0 =*/24).bool(message.enableFailedAttemptsCheck); if (message.status != null && Object.hasOwnProperty.call(message, "status")) - $root.google.cloud.sql.v1.PasswordStatus.encode(message.status, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1.PasswordStatus.encode(message.status, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.enablePasswordVerification != null && Object.hasOwnProperty.call(message, "enablePasswordVerification")) writer.uint32(/* id 5, wireType 0 =*/40).bool(message.enablePasswordVerification); return writer; @@ -70255,7 +75273,7 @@ * @returns {$protobuf.Writer} Writer */ UserPasswordValidationPolicy.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -70269,9 +75287,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UserPasswordValidationPolicy.decode = function decode(reader, length, error) { + UserPasswordValidationPolicy.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.UserPasswordValidationPolicy(); while (reader.pos < end) { var tag = reader.uint32(); @@ -70283,7 +75305,7 @@ break; } case 2: { - message.passwordExpirationDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.passwordExpirationDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -70291,7 +75313,7 @@ break; } case 4: { - message.status = $root.google.cloud.sql.v1.PasswordStatus.decode(reader, reader.uint32()); + message.status = $root.google.cloud.sql.v1.PasswordStatus.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -70299,7 +75321,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -70330,26 +75352,30 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UserPasswordValidationPolicy.verify = function verify(message) { + UserPasswordValidationPolicy.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.allowedFailedAttempts != null && message.hasOwnProperty("allowedFailedAttempts")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.allowedFailedAttempts != null && Object.hasOwnProperty.call(message, "allowedFailedAttempts")) if (!$util.isInteger(message.allowedFailedAttempts)) return "allowedFailedAttempts: integer expected"; - if (message.passwordExpirationDuration != null && message.hasOwnProperty("passwordExpirationDuration")) { - var error = $root.google.protobuf.Duration.verify(message.passwordExpirationDuration); + if (message.passwordExpirationDuration != null && Object.hasOwnProperty.call(message, "passwordExpirationDuration")) { + var error = $root.google.protobuf.Duration.verify(message.passwordExpirationDuration, long + 1); if (error) return "passwordExpirationDuration." + error; } - if (message.enableFailedAttemptsCheck != null && message.hasOwnProperty("enableFailedAttemptsCheck")) + if (message.enableFailedAttemptsCheck != null && Object.hasOwnProperty.call(message, "enableFailedAttemptsCheck")) if (typeof message.enableFailedAttemptsCheck !== "boolean") return "enableFailedAttemptsCheck: boolean expected"; - if (message.status != null && message.hasOwnProperty("status")) { - var error = $root.google.cloud.sql.v1.PasswordStatus.verify(message.status); + if (message.status != null && Object.hasOwnProperty.call(message, "status")) { + var error = $root.google.cloud.sql.v1.PasswordStatus.verify(message.status, long + 1); if (error) return "status." + error; } - if (message.enablePasswordVerification != null && message.hasOwnProperty("enablePasswordVerification")) + if (message.enablePasswordVerification != null && Object.hasOwnProperty.call(message, "enablePasswordVerification")) if (typeof message.enablePasswordVerification !== "boolean") return "enablePasswordVerification: boolean expected"; return null; @@ -70363,23 +75389,29 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.UserPasswordValidationPolicy} UserPasswordValidationPolicy */ - UserPasswordValidationPolicy.fromObject = function fromObject(object) { + UserPasswordValidationPolicy.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.UserPasswordValidationPolicy) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.UserPasswordValidationPolicy: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.UserPasswordValidationPolicy(); if (object.allowedFailedAttempts != null) message.allowedFailedAttempts = object.allowedFailedAttempts | 0; if (object.passwordExpirationDuration != null) { - if (typeof object.passwordExpirationDuration !== "object") + if (!$util.isObject(object.passwordExpirationDuration)) throw TypeError(".google.cloud.sql.v1.UserPasswordValidationPolicy.passwordExpirationDuration: object expected"); - message.passwordExpirationDuration = $root.google.protobuf.Duration.fromObject(object.passwordExpirationDuration); + message.passwordExpirationDuration = $root.google.protobuf.Duration.fromObject(object.passwordExpirationDuration, long + 1); } if (object.enableFailedAttemptsCheck != null) message.enableFailedAttemptsCheck = Boolean(object.enableFailedAttemptsCheck); if (object.status != null) { - if (typeof object.status !== "object") + if (!$util.isObject(object.status)) throw TypeError(".google.cloud.sql.v1.UserPasswordValidationPolicy.status: object expected"); - message.status = $root.google.cloud.sql.v1.PasswordStatus.fromObject(object.status); + message.status = $root.google.cloud.sql.v1.PasswordStatus.fromObject(object.status, long + 1); } if (object.enablePasswordVerification != null) message.enablePasswordVerification = Boolean(object.enablePasswordVerification); @@ -70395,9 +75427,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - UserPasswordValidationPolicy.toObject = function toObject(message, options) { + UserPasswordValidationPolicy.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.allowedFailedAttempts = 0; @@ -70406,15 +75442,15 @@ object.status = null; object.enablePasswordVerification = false; } - if (message.allowedFailedAttempts != null && message.hasOwnProperty("allowedFailedAttempts")) + if (message.allowedFailedAttempts != null && Object.hasOwnProperty.call(message, "allowedFailedAttempts")) object.allowedFailedAttempts = message.allowedFailedAttempts; - if (message.passwordExpirationDuration != null && message.hasOwnProperty("passwordExpirationDuration")) - object.passwordExpirationDuration = $root.google.protobuf.Duration.toObject(message.passwordExpirationDuration, options); - if (message.enableFailedAttemptsCheck != null && message.hasOwnProperty("enableFailedAttemptsCheck")) + if (message.passwordExpirationDuration != null && Object.hasOwnProperty.call(message, "passwordExpirationDuration")) + object.passwordExpirationDuration = $root.google.protobuf.Duration.toObject(message.passwordExpirationDuration, options, q + 1); + if (message.enableFailedAttemptsCheck != null && Object.hasOwnProperty.call(message, "enableFailedAttemptsCheck")) object.enableFailedAttemptsCheck = message.enableFailedAttemptsCheck; - if (message.status != null && message.hasOwnProperty("status")) - object.status = $root.google.cloud.sql.v1.PasswordStatus.toObject(message.status, options); - if (message.enablePasswordVerification != null && message.hasOwnProperty("enablePasswordVerification")) + if (message.status != null && Object.hasOwnProperty.call(message, "status")) + object.status = $root.google.cloud.sql.v1.PasswordStatus.toObject(message.status, options, q + 1); + if (message.enablePasswordVerification != null && Object.hasOwnProperty.call(message, "enablePasswordVerification")) object.enablePasswordVerification = message.enablePasswordVerification; return object; }; @@ -70469,7 +75505,7 @@ function PasswordStatus(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -70510,13 +75546,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PasswordStatus.encode = function encode(message, writer) { + PasswordStatus.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.locked != null && Object.hasOwnProperty.call(message, "locked")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.locked); if (message.passwordExpirationTime != null && Object.hasOwnProperty.call(message, "passwordExpirationTime")) - $root.google.protobuf.Timestamp.encode(message.passwordExpirationTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.passwordExpirationTime, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -70530,7 +75570,7 @@ * @returns {$protobuf.Writer} Writer */ PasswordStatus.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -70544,9 +75584,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PasswordStatus.decode = function decode(reader, length, error) { + PasswordStatus.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.PasswordStatus(); while (reader.pos < end) { var tag = reader.uint32(); @@ -70558,11 +75602,11 @@ break; } case 2: { - message.passwordExpirationTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.passwordExpirationTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -70593,14 +75637,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PasswordStatus.verify = function verify(message) { + PasswordStatus.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.locked != null && message.hasOwnProperty("locked")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.locked != null && Object.hasOwnProperty.call(message, "locked")) if (typeof message.locked !== "boolean") return "locked: boolean expected"; - if (message.passwordExpirationTime != null && message.hasOwnProperty("passwordExpirationTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.passwordExpirationTime); + if (message.passwordExpirationTime != null && Object.hasOwnProperty.call(message, "passwordExpirationTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.passwordExpirationTime, long + 1); if (error) return "passwordExpirationTime." + error; } @@ -70615,16 +75663,22 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.PasswordStatus} PasswordStatus */ - PasswordStatus.fromObject = function fromObject(object) { + PasswordStatus.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.PasswordStatus) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.PasswordStatus: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.PasswordStatus(); if (object.locked != null) message.locked = Boolean(object.locked); if (object.passwordExpirationTime != null) { - if (typeof object.passwordExpirationTime !== "object") + if (!$util.isObject(object.passwordExpirationTime)) throw TypeError(".google.cloud.sql.v1.PasswordStatus.passwordExpirationTime: object expected"); - message.passwordExpirationTime = $root.google.protobuf.Timestamp.fromObject(object.passwordExpirationTime); + message.passwordExpirationTime = $root.google.protobuf.Timestamp.fromObject(object.passwordExpirationTime, long + 1); } return message; }; @@ -70638,18 +75692,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PasswordStatus.toObject = function toObject(message, options) { + PasswordStatus.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.locked = false; object.passwordExpirationTime = null; } - if (message.locked != null && message.hasOwnProperty("locked")) + if (message.locked != null && Object.hasOwnProperty.call(message, "locked")) object.locked = message.locked; - if (message.passwordExpirationTime != null && message.hasOwnProperty("passwordExpirationTime")) - object.passwordExpirationTime = $root.google.protobuf.Timestamp.toObject(message.passwordExpirationTime, options); + if (message.passwordExpirationTime != null && Object.hasOwnProperty.call(message, "passwordExpirationTime")) + object.passwordExpirationTime = $root.google.protobuf.Timestamp.toObject(message.passwordExpirationTime, options, q + 1); return object; }; @@ -70716,7 +75774,7 @@ this.databaseRoles = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -70879,9 +75937,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - User.encode = function encode(message, writer) { + User.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.password != null && Object.hasOwnProperty.call(message, "password")) @@ -70899,11 +75961,11 @@ if (message.type != null && Object.hasOwnProperty.call(message, "type")) writer.uint32(/* id 8, wireType 0 =*/64).int32(message.type); if (message.sqlserverUserDetails != null && Object.hasOwnProperty.call(message, "sqlserverUserDetails")) - $root.google.cloud.sql.v1.SqlServerUserDetails.encode(message.sqlserverUserDetails, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.cloud.sql.v1.SqlServerUserDetails.encode(message.sqlserverUserDetails, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); if (message.iamEmail != null && Object.hasOwnProperty.call(message, "iamEmail")) writer.uint32(/* id 11, wireType 2 =*/90).string(message.iamEmail); if (message.passwordPolicy != null && Object.hasOwnProperty.call(message, "passwordPolicy")) - $root.google.cloud.sql.v1.UserPasswordValidationPolicy.encode(message.passwordPolicy, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim(); + $root.google.cloud.sql.v1.UserPasswordValidationPolicy.encode(message.passwordPolicy, writer.uint32(/* id 12, wireType 2 =*/98).fork(), q + 1).ldelim(); if (message.dualPasswordType != null && Object.hasOwnProperty.call(message, "dualPasswordType")) writer.uint32(/* id 13, wireType 0 =*/104).int32(message.dualPasswordType); if (message.iamStatus != null && Object.hasOwnProperty.call(message, "iamStatus")) @@ -70924,7 +75986,7 @@ * @returns {$protobuf.Writer} Writer */ User.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -70938,9 +76000,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - User.decode = function decode(reader, length, error) { + User.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.User(); while (reader.pos < end) { var tag = reader.uint32(); @@ -70980,7 +76046,7 @@ break; } case 9: { - message.sqlserverUserDetails = $root.google.cloud.sql.v1.SqlServerUserDetails.decode(reader, reader.uint32()); + message.sqlserverUserDetails = $root.google.cloud.sql.v1.SqlServerUserDetails.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { @@ -70988,7 +76054,7 @@ break; } case 12: { - message.passwordPolicy = $root.google.cloud.sql.v1.UserPasswordValidationPolicy.decode(reader, reader.uint32()); + message.passwordPolicy = $root.google.cloud.sql.v1.UserPasswordValidationPolicy.decode(reader, reader.uint32(), undefined, long + 1); break; } case 13: { @@ -71006,7 +76072,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -71037,32 +76103,36 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - User.verify = function verify(message) { + User.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.password != null && message.hasOwnProperty("password")) + if (message.password != null && Object.hasOwnProperty.call(message, "password")) if (!$util.isString(message.password)) return "password: string expected"; - if (message.etag != null && message.hasOwnProperty("etag")) + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) if (!$util.isString(message.etag)) return "etag: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.host != null && message.hasOwnProperty("host")) + if (message.host != null && Object.hasOwnProperty.call(message, "host")) if (!$util.isString(message.host)) return "host: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) switch (message.type) { default: return "type: enum value expected"; @@ -71075,23 +76145,23 @@ case 7: break; } - if (message.sqlserverUserDetails != null && message.hasOwnProperty("sqlserverUserDetails")) { + if (message.sqlserverUserDetails != null && Object.hasOwnProperty.call(message, "sqlserverUserDetails")) { properties.userDetails = 1; { - var error = $root.google.cloud.sql.v1.SqlServerUserDetails.verify(message.sqlserverUserDetails); + var error = $root.google.cloud.sql.v1.SqlServerUserDetails.verify(message.sqlserverUserDetails, long + 1); if (error) return "sqlserverUserDetails." + error; } } - if (message.iamEmail != null && message.hasOwnProperty("iamEmail")) + if (message.iamEmail != null && Object.hasOwnProperty.call(message, "iamEmail")) if (!$util.isString(message.iamEmail)) return "iamEmail: string expected"; - if (message.passwordPolicy != null && message.hasOwnProperty("passwordPolicy")) { - var error = $root.google.cloud.sql.v1.UserPasswordValidationPolicy.verify(message.passwordPolicy); + if (message.passwordPolicy != null && Object.hasOwnProperty.call(message, "passwordPolicy")) { + var error = $root.google.cloud.sql.v1.UserPasswordValidationPolicy.verify(message.passwordPolicy, long + 1); if (error) return "passwordPolicy." + error; } - if (message.dualPasswordType != null && message.hasOwnProperty("dualPasswordType")) { + if (message.dualPasswordType != null && Object.hasOwnProperty.call(message, "dualPasswordType")) { properties._dualPasswordType = 1; switch (message.dualPasswordType) { default: @@ -71103,7 +76173,7 @@ break; } } - if (message.iamStatus != null && message.hasOwnProperty("iamStatus")) { + if (message.iamStatus != null && Object.hasOwnProperty.call(message, "iamStatus")) { properties._iamStatus = 1; switch (message.iamStatus) { default: @@ -71114,7 +76184,7 @@ break; } } - if (message.databaseRoles != null && message.hasOwnProperty("databaseRoles")) { + if (message.databaseRoles != null && Object.hasOwnProperty.call(message, "databaseRoles")) { if (!Array.isArray(message.databaseRoles)) return "databaseRoles: array expected"; for (var i = 0; i < message.databaseRoles.length; ++i) @@ -71132,9 +76202,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.User} User */ - User.fromObject = function fromObject(object) { + User.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.User) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.User: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.User(); if (object.kind != null) message.kind = String(object.kind); @@ -71187,16 +76263,16 @@ break; } if (object.sqlserverUserDetails != null) { - if (typeof object.sqlserverUserDetails !== "object") + if (!$util.isObject(object.sqlserverUserDetails)) throw TypeError(".google.cloud.sql.v1.User.sqlserverUserDetails: object expected"); - message.sqlserverUserDetails = $root.google.cloud.sql.v1.SqlServerUserDetails.fromObject(object.sqlserverUserDetails); + message.sqlserverUserDetails = $root.google.cloud.sql.v1.SqlServerUserDetails.fromObject(object.sqlserverUserDetails, long + 1); } if (object.iamEmail != null) message.iamEmail = String(object.iamEmail); if (object.passwordPolicy != null) { - if (typeof object.passwordPolicy !== "object") + if (!$util.isObject(object.passwordPolicy)) throw TypeError(".google.cloud.sql.v1.User.passwordPolicy: object expected"); - message.passwordPolicy = $root.google.cloud.sql.v1.UserPasswordValidationPolicy.fromObject(object.passwordPolicy); + message.passwordPolicy = $root.google.cloud.sql.v1.UserPasswordValidationPolicy.fromObject(object.passwordPolicy, long + 1); } switch (object.dualPasswordType) { default: @@ -71261,9 +76337,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - User.toObject = function toObject(message, options) { + User.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.databaseRoles = []; @@ -71279,37 +76359,37 @@ object.iamEmail = ""; object.passwordPolicy = null; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.password != null && message.hasOwnProperty("password")) + if (message.password != null && Object.hasOwnProperty.call(message, "password")) object.password = message.password; - if (message.etag != null && message.hasOwnProperty("etag")) + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) object.etag = message.etag; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.host != null && message.hasOwnProperty("host")) + if (message.host != null && Object.hasOwnProperty.call(message, "host")) object.host = message.host; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = options.enums === String ? $root.google.cloud.sql.v1.User.SqlUserType[message.type] === undefined ? message.type : $root.google.cloud.sql.v1.User.SqlUserType[message.type] : message.type; - if (message.sqlserverUserDetails != null && message.hasOwnProperty("sqlserverUserDetails")) { - object.sqlserverUserDetails = $root.google.cloud.sql.v1.SqlServerUserDetails.toObject(message.sqlserverUserDetails, options); + if (message.sqlserverUserDetails != null && Object.hasOwnProperty.call(message, "sqlserverUserDetails")) { + object.sqlserverUserDetails = $root.google.cloud.sql.v1.SqlServerUserDetails.toObject(message.sqlserverUserDetails, options, q + 1); if (options.oneofs) object.userDetails = "sqlserverUserDetails"; } - if (message.iamEmail != null && message.hasOwnProperty("iamEmail")) + if (message.iamEmail != null && Object.hasOwnProperty.call(message, "iamEmail")) object.iamEmail = message.iamEmail; - if (message.passwordPolicy != null && message.hasOwnProperty("passwordPolicy")) - object.passwordPolicy = $root.google.cloud.sql.v1.UserPasswordValidationPolicy.toObject(message.passwordPolicy, options); - if (message.dualPasswordType != null && message.hasOwnProperty("dualPasswordType")) { + if (message.passwordPolicy != null && Object.hasOwnProperty.call(message, "passwordPolicy")) + object.passwordPolicy = $root.google.cloud.sql.v1.UserPasswordValidationPolicy.toObject(message.passwordPolicy, options, q + 1); + if (message.dualPasswordType != null && Object.hasOwnProperty.call(message, "dualPasswordType")) { object.dualPasswordType = options.enums === String ? $root.google.cloud.sql.v1.User.DualPasswordType[message.dualPasswordType] === undefined ? message.dualPasswordType : $root.google.cloud.sql.v1.User.DualPasswordType[message.dualPasswordType] : message.dualPasswordType; if (options.oneofs) object._dualPasswordType = "dualPasswordType"; } - if (message.iamStatus != null && message.hasOwnProperty("iamStatus")) { + if (message.iamStatus != null && Object.hasOwnProperty.call(message, "iamStatus")) { object.iamStatus = options.enums === String ? $root.google.cloud.sql.v1.User.IamStatus[message.iamStatus] === undefined ? message.iamStatus : $root.google.cloud.sql.v1.User.IamStatus[message.iamStatus] : message.iamStatus; if (options.oneofs) object._iamStatus = "iamStatus"; @@ -71431,7 +76511,7 @@ this.serverRoles = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -71472,9 +76552,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlServerUserDetails.encode = function encode(message, writer) { + SqlServerUserDetails.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.disabled != null && Object.hasOwnProperty.call(message, "disabled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.disabled); if (message.serverRoles != null && message.serverRoles.length) @@ -71493,7 +76577,7 @@ * @returns {$protobuf.Writer} Writer */ SqlServerUserDetails.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -71507,9 +76591,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlServerUserDetails.decode = function decode(reader, length, error) { + SqlServerUserDetails.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.SqlServerUserDetails(); while (reader.pos < end) { var tag = reader.uint32(); @@ -71527,7 +76615,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -71558,13 +76646,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlServerUserDetails.verify = function verify(message) { + SqlServerUserDetails.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.disabled != null && message.hasOwnProperty("disabled")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.disabled != null && Object.hasOwnProperty.call(message, "disabled")) if (typeof message.disabled !== "boolean") return "disabled: boolean expected"; - if (message.serverRoles != null && message.hasOwnProperty("serverRoles")) { + if (message.serverRoles != null && Object.hasOwnProperty.call(message, "serverRoles")) { if (!Array.isArray(message.serverRoles)) return "serverRoles: array expected"; for (var i = 0; i < message.serverRoles.length; ++i) @@ -71582,9 +76674,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.SqlServerUserDetails} SqlServerUserDetails */ - SqlServerUserDetails.fromObject = function fromObject(object) { + SqlServerUserDetails.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.SqlServerUserDetails) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.SqlServerUserDetails: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.SqlServerUserDetails(); if (object.disabled != null) message.disabled = Boolean(object.disabled); @@ -71607,15 +76705,19 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlServerUserDetails.toObject = function toObject(message, options) { + SqlServerUserDetails.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.serverRoles = []; if (options.defaults) object.disabled = false; - if (message.disabled != null && message.hasOwnProperty("disabled")) + if (message.disabled != null && Object.hasOwnProperty.call(message, "disabled")) object.disabled = message.disabled; if (message.serverRoles && message.serverRoles.length) { object.serverRoles = []; @@ -71677,7 +76779,7 @@ this.items = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -71726,14 +76828,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UsersListResponse.encode = function encode(message, writer) { + UsersListResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.items != null && message.items.length) for (var i = 0; i < message.items.length; ++i) - $root.google.cloud.sql.v1.User.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1.User.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.nextPageToken); return writer; @@ -71749,7 +76855,7 @@ * @returns {$protobuf.Writer} Writer */ UsersListResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -71763,9 +76869,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UsersListResponse.decode = function decode(reader, length, error) { + UsersListResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1.UsersListResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -71779,7 +76889,7 @@ case 2: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.sql.v1.User.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.sql.v1.User.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { @@ -71787,7 +76897,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -71818,22 +76928,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UsersListResponse.verify = function verify(message) { + UsersListResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.items != null && message.hasOwnProperty("items")) { + if (message.items != null && Object.hasOwnProperty.call(message, "items")) { if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.sql.v1.User.verify(message.items[i]); + var error = $root.google.cloud.sql.v1.User.verify(message.items[i], long + 1); if (error) return "items." + error; } } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) if (!$util.isString(message.nextPageToken)) return "nextPageToken: string expected"; return null; @@ -71847,9 +76961,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1.UsersListResponse} UsersListResponse */ - UsersListResponse.fromObject = function fromObject(object) { + UsersListResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1.UsersListResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1.UsersListResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1.UsersListResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -71858,9 +76978,9 @@ throw TypeError(".google.cloud.sql.v1.UsersListResponse.items: array expected"); message.items = []; for (var i = 0; i < object.items.length; ++i) { - if (typeof object.items[i] !== "object") + if (!$util.isObject(object.items[i])) throw TypeError(".google.cloud.sql.v1.UsersListResponse.items: object expected"); - message.items[i] = $root.google.cloud.sql.v1.User.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.sql.v1.User.fromObject(object.items[i], long + 1); } } if (object.nextPageToken != null) @@ -71877,9 +76997,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - UsersListResponse.toObject = function toObject(message, options) { + UsersListResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.items = []; @@ -71887,14 +77011,14 @@ object.kind = ""; object.nextPageToken = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.items && message.items.length) { object.items = []; for (var j = 0; j < message.items.length; ++j) - object.items[j] = $root.google.cloud.sql.v1.User.toObject(message.items[j], options); + object.items[j] = $root.google.cloud.sql.v1.User.toObject(message.items[j], options, q + 1); } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) object.nextPageToken = message.nextPageToken; return object; }; @@ -71992,7 +77116,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupRunsService.prototype["delete"] = function delete_(request, callback) { - return this.rpcCall(delete_, $root.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, delete_, $root.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Delete" }); /** @@ -72025,7 +77149,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupRunsService.prototype.get = function get(request, callback) { - return this.rpcCall(get, $root.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest, $root.google.cloud.sql.v1beta4.BackupRun, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, get, $root.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest, $root.google.cloud.sql.v1beta4.BackupRun, request, callback); }, "name", { value: "Get" }); /** @@ -72058,7 +77182,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupRunsService.prototype.insert = function insert(request, callback) { - return this.rpcCall(insert, $root.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, insert, $root.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Insert" }); /** @@ -72091,7 +77215,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupRunsService.prototype.list = function list(request, callback) { - return this.rpcCall(list, $root.google.cloud.sql.v1beta4.SqlBackupRunsListRequest, $root.google.cloud.sql.v1beta4.BackupRunsListResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, list, $root.google.cloud.sql.v1beta4.SqlBackupRunsListRequest, $root.google.cloud.sql.v1beta4.BackupRunsListResponse, request, callback); }, "name", { value: "List" }); /** @@ -72159,7 +77283,7 @@ * @variation 1 */ Object.defineProperty(SqlDatabasesService.prototype["delete"] = function delete_(request, callback) { - return this.rpcCall(delete_, $root.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, delete_, $root.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Delete" }); /** @@ -72192,7 +77316,7 @@ * @variation 1 */ Object.defineProperty(SqlDatabasesService.prototype.get = function get(request, callback) { - return this.rpcCall(get, $root.google.cloud.sql.v1beta4.SqlDatabasesGetRequest, $root.google.cloud.sql.v1beta4.Database, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, get, $root.google.cloud.sql.v1beta4.SqlDatabasesGetRequest, $root.google.cloud.sql.v1beta4.Database, request, callback); }, "name", { value: "Get" }); /** @@ -72225,7 +77349,7 @@ * @variation 1 */ Object.defineProperty(SqlDatabasesService.prototype.insert = function insert(request, callback) { - return this.rpcCall(insert, $root.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, insert, $root.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Insert" }); /** @@ -72258,7 +77382,7 @@ * @variation 1 */ Object.defineProperty(SqlDatabasesService.prototype.list = function list(request, callback) { - return this.rpcCall(list, $root.google.cloud.sql.v1beta4.SqlDatabasesListRequest, $root.google.cloud.sql.v1beta4.DatabasesListResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, list, $root.google.cloud.sql.v1beta4.SqlDatabasesListRequest, $root.google.cloud.sql.v1beta4.DatabasesListResponse, request, callback); }, "name", { value: "List" }); /** @@ -72291,7 +77415,7 @@ * @variation 1 */ Object.defineProperty(SqlDatabasesService.prototype.patch = function patch(request, callback) { - return this.rpcCall(patch, $root.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, patch, $root.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Patch" }); /** @@ -72324,7 +77448,7 @@ * @variation 1 */ Object.defineProperty(SqlDatabasesService.prototype.update = function update(request, callback) { - return this.rpcCall(update, $root.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, update, $root.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Update" }); /** @@ -72392,7 +77516,7 @@ * @variation 1 */ Object.defineProperty(SqlFlagsService.prototype.list = function list(request, callback) { - return this.rpcCall(list, $root.google.cloud.sql.v1beta4.SqlFlagsListRequest, $root.google.cloud.sql.v1beta4.FlagsListResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, list, $root.google.cloud.sql.v1beta4.SqlFlagsListRequest, $root.google.cloud.sql.v1beta4.FlagsListResponse, request, callback); }, "name", { value: "List" }); /** @@ -72460,7 +77584,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.addServerCa = function addServerCa(request, callback) { - return this.rpcCall(addServerCa, $root.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, addServerCa, $root.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "AddServerCa" }); /** @@ -72493,7 +77617,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.addServerCertificate = function addServerCertificate(request, callback) { - return this.rpcCall(addServerCertificate, $root.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, addServerCertificate, $root.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "AddServerCertificate" }); /** @@ -72526,7 +77650,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.addEntraIdCertificate = function addEntraIdCertificate(request, callback) { - return this.rpcCall(addEntraIdCertificate, $root.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, addEntraIdCertificate, $root.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "AddEntraIdCertificate" }); /** @@ -72559,7 +77683,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.clone = function clone(request, callback) { - return this.rpcCall(clone, $root.google.cloud.sql.v1beta4.SqlInstancesCloneRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, clone, $root.google.cloud.sql.v1beta4.SqlInstancesCloneRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Clone" }); /** @@ -72592,7 +77716,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype["delete"] = function delete_(request, callback) { - return this.rpcCall(delete_, $root.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, delete_, $root.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Delete" }); /** @@ -72625,7 +77749,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.demoteMaster = function demoteMaster(request, callback) { - return this.rpcCall(demoteMaster, $root.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, demoteMaster, $root.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "DemoteMaster" }); /** @@ -72658,7 +77782,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.demote = function demote(request, callback) { - return this.rpcCall(demote, $root.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, demote, $root.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Demote" }); /** @@ -72691,7 +77815,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype["export"] = function export_(request, callback) { - return this.rpcCall(export_, $root.google.cloud.sql.v1beta4.SqlInstancesExportRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, export_, $root.google.cloud.sql.v1beta4.SqlInstancesExportRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Export" }); /** @@ -72724,7 +77848,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.failover = function failover(request, callback) { - return this.rpcCall(failover, $root.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, failover, $root.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Failover" }); /** @@ -72757,7 +77881,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.reencrypt = function reencrypt(request, callback) { - return this.rpcCall(reencrypt, $root.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, reencrypt, $root.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Reencrypt" }); /** @@ -72790,7 +77914,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.get = function get(request, callback) { - return this.rpcCall(get, $root.google.cloud.sql.v1beta4.SqlInstancesGetRequest, $root.google.cloud.sql.v1beta4.DatabaseInstance, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, get, $root.google.cloud.sql.v1beta4.SqlInstancesGetRequest, $root.google.cloud.sql.v1beta4.DatabaseInstance, request, callback); }, "name", { value: "Get" }); /** @@ -72823,7 +77947,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype["import"] = function import_(request, callback) { - return this.rpcCall(import_, $root.google.cloud.sql.v1beta4.SqlInstancesImportRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, import_, $root.google.cloud.sql.v1beta4.SqlInstancesImportRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Import" }); /** @@ -72856,7 +77980,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.insert = function insert(request, callback) { - return this.rpcCall(insert, $root.google.cloud.sql.v1beta4.SqlInstancesInsertRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, insert, $root.google.cloud.sql.v1beta4.SqlInstancesInsertRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Insert" }); /** @@ -72889,7 +78013,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.list = function list(request, callback) { - return this.rpcCall(list, $root.google.cloud.sql.v1beta4.SqlInstancesListRequest, $root.google.cloud.sql.v1beta4.InstancesListResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, list, $root.google.cloud.sql.v1beta4.SqlInstancesListRequest, $root.google.cloud.sql.v1beta4.InstancesListResponse, request, callback); }, "name", { value: "List" }); /** @@ -72922,7 +78046,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.listServerCas = function listServerCas(request, callback) { - return this.rpcCall(listServerCas, $root.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest, $root.google.cloud.sql.v1beta4.InstancesListServerCasResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, listServerCas, $root.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest, $root.google.cloud.sql.v1beta4.InstancesListServerCasResponse, request, callback); }, "name", { value: "ListServerCas" }); /** @@ -72955,7 +78079,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.listServerCertificates = function listServerCertificates(request, callback) { - return this.rpcCall(listServerCertificates, $root.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest, $root.google.cloud.sql.v1beta4.InstancesListServerCertificatesResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, listServerCertificates, $root.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest, $root.google.cloud.sql.v1beta4.InstancesListServerCertificatesResponse, request, callback); }, "name", { value: "ListServerCertificates" }); /** @@ -72988,7 +78112,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.listEntraIdCertificates = function listEntraIdCertificates(request, callback) { - return this.rpcCall(listEntraIdCertificates, $root.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest, $root.google.cloud.sql.v1beta4.InstancesListEntraIdCertificatesResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, listEntraIdCertificates, $root.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest, $root.google.cloud.sql.v1beta4.InstancesListEntraIdCertificatesResponse, request, callback); }, "name", { value: "ListEntraIdCertificates" }); /** @@ -73021,7 +78145,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.patch = function patch(request, callback) { - return this.rpcCall(patch, $root.google.cloud.sql.v1beta4.SqlInstancesPatchRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, patch, $root.google.cloud.sql.v1beta4.SqlInstancesPatchRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Patch" }); /** @@ -73054,7 +78178,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.promoteReplica = function promoteReplica(request, callback) { - return this.rpcCall(promoteReplica, $root.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, promoteReplica, $root.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "PromoteReplica" }); /** @@ -73087,7 +78211,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.switchover = function switchover(request, callback) { - return this.rpcCall(switchover, $root.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, switchover, $root.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Switchover" }); /** @@ -73120,7 +78244,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.resetSslConfig = function resetSslConfig(request, callback) { - return this.rpcCall(resetSslConfig, $root.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, resetSslConfig, $root.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "ResetSslConfig" }); /** @@ -73153,7 +78277,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.restart = function restart(request, callback) { - return this.rpcCall(restart, $root.google.cloud.sql.v1beta4.SqlInstancesRestartRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, restart, $root.google.cloud.sql.v1beta4.SqlInstancesRestartRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Restart" }); /** @@ -73186,7 +78310,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.restoreBackup = function restoreBackup(request, callback) { - return this.rpcCall(restoreBackup, $root.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, restoreBackup, $root.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "RestoreBackup" }); /** @@ -73219,7 +78343,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.rotateServerCa = function rotateServerCa(request, callback) { - return this.rpcCall(rotateServerCa, $root.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, rotateServerCa, $root.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "RotateServerCa" }); /** @@ -73252,7 +78376,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.rotateServerCertificate = function rotateServerCertificate(request, callback) { - return this.rpcCall(rotateServerCertificate, $root.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, rotateServerCertificate, $root.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "RotateServerCertificate" }); /** @@ -73285,7 +78409,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.rotateEntraIdCertificate = function rotateEntraIdCertificate(request, callback) { - return this.rpcCall(rotateEntraIdCertificate, $root.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, rotateEntraIdCertificate, $root.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "RotateEntraIdCertificate" }); /** @@ -73318,7 +78442,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.startReplica = function startReplica(request, callback) { - return this.rpcCall(startReplica, $root.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, startReplica, $root.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "StartReplica" }); /** @@ -73351,7 +78475,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.stopReplica = function stopReplica(request, callback) { - return this.rpcCall(stopReplica, $root.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, stopReplica, $root.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "StopReplica" }); /** @@ -73384,7 +78508,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.truncateLog = function truncateLog(request, callback) { - return this.rpcCall(truncateLog, $root.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, truncateLog, $root.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "TruncateLog" }); /** @@ -73417,7 +78541,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.update = function update(request, callback) { - return this.rpcCall(update, $root.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, update, $root.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Update" }); /** @@ -73450,7 +78574,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.createEphemeral = function createEphemeral(request, callback) { - return this.rpcCall(createEphemeral, $root.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest, $root.google.cloud.sql.v1beta4.SslCert, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, createEphemeral, $root.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest, $root.google.cloud.sql.v1beta4.SslCert, request, callback); }, "name", { value: "CreateEphemeral" }); /** @@ -73483,7 +78607,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.rescheduleMaintenance = function rescheduleMaintenance(request, callback) { - return this.rpcCall(rescheduleMaintenance, $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, rescheduleMaintenance, $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "RescheduleMaintenance" }); /** @@ -73516,7 +78640,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.verifyExternalSyncSettings = function verifyExternalSyncSettings(request, callback) { - return this.rpcCall(verifyExternalSyncSettings, $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest, $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, verifyExternalSyncSettings, $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest, $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsResponse, request, callback); }, "name", { value: "VerifyExternalSyncSettings" }); /** @@ -73549,7 +78673,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.startExternalSync = function startExternalSync(request, callback) { - return this.rpcCall(startExternalSync, $root.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, startExternalSync, $root.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "StartExternalSync" }); /** @@ -73582,7 +78706,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.performDiskShrink = function performDiskShrink(request, callback) { - return this.rpcCall(performDiskShrink, $root.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, performDiskShrink, $root.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "PerformDiskShrink" }); /** @@ -73615,7 +78739,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.getDiskShrinkConfig = function getDiskShrinkConfig(request, callback) { - return this.rpcCall(getDiskShrinkConfig, $root.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest, $root.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, getDiskShrinkConfig, $root.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest, $root.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigResponse, request, callback); }, "name", { value: "GetDiskShrinkConfig" }); /** @@ -73648,7 +78772,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.resetReplicaSize = function resetReplicaSize(request, callback) { - return this.rpcCall(resetReplicaSize, $root.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, resetReplicaSize, $root.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "ResetReplicaSize" }); /** @@ -73681,7 +78805,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.getLatestRecoveryTime = function getLatestRecoveryTime(request, callback) { - return this.rpcCall(getLatestRecoveryTime, $root.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest, $root.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, getLatestRecoveryTime, $root.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest, $root.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeResponse, request, callback); }, "name", { value: "GetLatestRecoveryTime" }); /** @@ -73714,7 +78838,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.executeSql = function executeSql(request, callback) { - return this.rpcCall(executeSql, $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest, $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, executeSql, $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest, $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse, request, callback); }, "name", { value: "ExecuteSql" }); /** @@ -73747,7 +78871,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.acquireSsrsLease = function acquireSsrsLease(request, callback) { - return this.rpcCall(acquireSsrsLease, $root.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest, $root.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, acquireSsrsLease, $root.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest, $root.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseResponse, request, callback); }, "name", { value: "AcquireSsrsLease" }); /** @@ -73780,7 +78904,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.releaseSsrsLease = function releaseSsrsLease(request, callback) { - return this.rpcCall(releaseSsrsLease, $root.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest, $root.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, releaseSsrsLease, $root.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest, $root.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseResponse, request, callback); }, "name", { value: "ReleaseSsrsLease" }); /** @@ -73813,7 +78937,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.preCheckMajorVersionUpgrade = function preCheckMajorVersionUpgrade(request, callback) { - return this.rpcCall(preCheckMajorVersionUpgrade, $root.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, preCheckMajorVersionUpgrade, $root.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "PreCheckMajorVersionUpgrade" }); /** @@ -73846,7 +78970,7 @@ * @variation 1 */ Object.defineProperty(SqlInstancesService.prototype.pointInTimeRestore = function pointInTimeRestore(request, callback) { - return this.rpcCall(pointInTimeRestore, $root.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, pointInTimeRestore, $root.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "PointInTimeRestore" }); /** @@ -73914,7 +79038,7 @@ * @variation 1 */ Object.defineProperty(SqlOperationsService.prototype.get = function get(request, callback) { - return this.rpcCall(get, $root.google.cloud.sql.v1beta4.SqlOperationsGetRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, get, $root.google.cloud.sql.v1beta4.SqlOperationsGetRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Get" }); /** @@ -73947,7 +79071,7 @@ * @variation 1 */ Object.defineProperty(SqlOperationsService.prototype.list = function list(request, callback) { - return this.rpcCall(list, $root.google.cloud.sql.v1beta4.SqlOperationsListRequest, $root.google.cloud.sql.v1beta4.OperationsListResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, list, $root.google.cloud.sql.v1beta4.SqlOperationsListRequest, $root.google.cloud.sql.v1beta4.OperationsListResponse, request, callback); }, "name", { value: "List" }); /** @@ -73980,7 +79104,7 @@ * @variation 1 */ Object.defineProperty(SqlOperationsService.prototype.cancel = function cancel(request, callback) { - return this.rpcCall(cancel, $root.google.cloud.sql.v1beta4.SqlOperationsCancelRequest, $root.google.protobuf.Empty, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, cancel, $root.google.cloud.sql.v1beta4.SqlOperationsCancelRequest, $root.google.protobuf.Empty, request, callback); }, "name", { value: "Cancel" }); /** @@ -74048,7 +79172,7 @@ * @variation 1 */ Object.defineProperty(SqlSslCertsService.prototype["delete"] = function delete_(request, callback) { - return this.rpcCall(delete_, $root.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, delete_, $root.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Delete" }); /** @@ -74081,7 +79205,7 @@ * @variation 1 */ Object.defineProperty(SqlSslCertsService.prototype.get = function get(request, callback) { - return this.rpcCall(get, $root.google.cloud.sql.v1beta4.SqlSslCertsGetRequest, $root.google.cloud.sql.v1beta4.SslCert, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, get, $root.google.cloud.sql.v1beta4.SqlSslCertsGetRequest, $root.google.cloud.sql.v1beta4.SslCert, request, callback); }, "name", { value: "Get" }); /** @@ -74114,7 +79238,7 @@ * @variation 1 */ Object.defineProperty(SqlSslCertsService.prototype.insert = function insert(request, callback) { - return this.rpcCall(insert, $root.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest, $root.google.cloud.sql.v1beta4.SslCertsInsertResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, insert, $root.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest, $root.google.cloud.sql.v1beta4.SslCertsInsertResponse, request, callback); }, "name", { value: "Insert" }); /** @@ -74147,7 +79271,7 @@ * @variation 1 */ Object.defineProperty(SqlSslCertsService.prototype.list = function list(request, callback) { - return this.rpcCall(list, $root.google.cloud.sql.v1beta4.SqlSslCertsListRequest, $root.google.cloud.sql.v1beta4.SslCertsListResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, list, $root.google.cloud.sql.v1beta4.SqlSslCertsListRequest, $root.google.cloud.sql.v1beta4.SslCertsListResponse, request, callback); }, "name", { value: "List" }); /** @@ -74215,7 +79339,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupsService.prototype.createBackup = function createBackup(request, callback) { - return this.rpcCall(createBackup, $root.google.cloud.sql.v1beta4.CreateBackupRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, createBackup, $root.google.cloud.sql.v1beta4.CreateBackupRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "CreateBackup" }); /** @@ -74248,7 +79372,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupsService.prototype.getBackup = function getBackup(request, callback) { - return this.rpcCall(getBackup, $root.google.cloud.sql.v1beta4.GetBackupRequest, $root.google.cloud.sql.v1beta4.Backup, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, getBackup, $root.google.cloud.sql.v1beta4.GetBackupRequest, $root.google.cloud.sql.v1beta4.Backup, request, callback); }, "name", { value: "GetBackup" }); /** @@ -74281,7 +79405,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupsService.prototype.listBackups = function listBackups(request, callback) { - return this.rpcCall(listBackups, $root.google.cloud.sql.v1beta4.ListBackupsRequest, $root.google.cloud.sql.v1beta4.ListBackupsResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, listBackups, $root.google.cloud.sql.v1beta4.ListBackupsRequest, $root.google.cloud.sql.v1beta4.ListBackupsResponse, request, callback); }, "name", { value: "ListBackups" }); /** @@ -74314,7 +79438,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupsService.prototype.updateBackup = function updateBackup(request, callback) { - return this.rpcCall(updateBackup, $root.google.cloud.sql.v1beta4.UpdateBackupRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, updateBackup, $root.google.cloud.sql.v1beta4.UpdateBackupRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "UpdateBackup" }); /** @@ -74347,7 +79471,7 @@ * @variation 1 */ Object.defineProperty(SqlBackupsService.prototype.deleteBackup = function deleteBackup(request, callback) { - return this.rpcCall(deleteBackup, $root.google.cloud.sql.v1beta4.DeleteBackupRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, deleteBackup, $root.google.cloud.sql.v1beta4.DeleteBackupRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "DeleteBackup" }); /** @@ -74384,7 +79508,7 @@ function CreateBackupRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -74425,13 +79549,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CreateBackupRequest.encode = function encode(message, writer) { + CreateBackupRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) - $root.google.cloud.sql.v1beta4.Backup.encode(message.backup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.Backup.encode(message.backup, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -74445,7 +79573,7 @@ * @returns {$protobuf.Writer} Writer */ CreateBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -74459,9 +79587,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CreateBackupRequest.decode = function decode(reader, length, error) { + CreateBackupRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.CreateBackupRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -74473,11 +79605,11 @@ break; } case 2: { - message.backup = $root.google.cloud.sql.v1beta4.Backup.decode(reader, reader.uint32()); + message.backup = $root.google.cloud.sql.v1beta4.Backup.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -74508,14 +79640,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CreateBackupRequest.verify = function verify(message) { + CreateBackupRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.parent != null && message.hasOwnProperty("parent")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) if (!$util.isString(message.parent)) return "parent: string expected"; - if (message.backup != null && message.hasOwnProperty("backup")) { - var error = $root.google.cloud.sql.v1beta4.Backup.verify(message.backup); + if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) { + var error = $root.google.cloud.sql.v1beta4.Backup.verify(message.backup, long + 1); if (error) return "backup." + error; } @@ -74530,16 +79666,22 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.CreateBackupRequest} CreateBackupRequest */ - CreateBackupRequest.fromObject = function fromObject(object) { + CreateBackupRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.CreateBackupRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.CreateBackupRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.CreateBackupRequest(); if (object.parent != null) message.parent = String(object.parent); if (object.backup != null) { - if (typeof object.backup !== "object") + if (!$util.isObject(object.backup)) throw TypeError(".google.cloud.sql.v1beta4.CreateBackupRequest.backup: object expected"); - message.backup = $root.google.cloud.sql.v1beta4.Backup.fromObject(object.backup); + message.backup = $root.google.cloud.sql.v1beta4.Backup.fromObject(object.backup, long + 1); } return message; }; @@ -74553,18 +79695,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CreateBackupRequest.toObject = function toObject(message, options) { + CreateBackupRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.parent = ""; object.backup = null; } - if (message.parent != null && message.hasOwnProperty("parent")) + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) object.parent = message.parent; - if (message.backup != null && message.hasOwnProperty("backup")) - object.backup = $root.google.cloud.sql.v1beta4.Backup.toObject(message.backup, options); + if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) + object.backup = $root.google.cloud.sql.v1beta4.Backup.toObject(message.backup, options, q + 1); return object; }; @@ -74617,7 +79763,7 @@ function GetBackupRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -74650,9 +79796,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetBackupRequest.encode = function encode(message, writer) { + GetBackupRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); return writer; @@ -74668,7 +79818,7 @@ * @returns {$protobuf.Writer} Writer */ GetBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -74682,9 +79832,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetBackupRequest.decode = function decode(reader, length, error) { + GetBackupRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.GetBackupRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -74696,7 +79850,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -74727,10 +79881,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetBackupRequest.verify = function verify(message) { + GetBackupRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; return null; @@ -74744,9 +79902,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.GetBackupRequest} GetBackupRequest */ - GetBackupRequest.fromObject = function fromObject(object) { + GetBackupRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.GetBackupRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.GetBackupRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.GetBackupRequest(); if (object.name != null) message.name = String(object.name); @@ -74762,13 +79926,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetBackupRequest.toObject = function toObject(message, options) { + GetBackupRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.name = ""; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; return object; }; @@ -74825,7 +79993,7 @@ function ListBackupsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -74882,9 +80050,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ListBackupsRequest.encode = function encode(message, writer) { + ListBackupsRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); if (message.pageSize != null && Object.hasOwnProperty.call(message, "pageSize")) @@ -74906,7 +80078,7 @@ * @returns {$protobuf.Writer} Writer */ ListBackupsRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -74920,9 +80092,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListBackupsRequest.decode = function decode(reader, length, error) { + ListBackupsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ListBackupsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -74946,7 +80122,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -74977,19 +80153,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListBackupsRequest.verify = function verify(message) { + ListBackupsRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.parent != null && message.hasOwnProperty("parent")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) if (!$util.isString(message.parent)) return "parent: string expected"; - if (message.pageSize != null && message.hasOwnProperty("pageSize")) + if (message.pageSize != null && Object.hasOwnProperty.call(message, "pageSize")) if (!$util.isInteger(message.pageSize)) return "pageSize: integer expected"; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) if (!$util.isString(message.pageToken)) return "pageToken: string expected"; - if (message.filter != null && message.hasOwnProperty("filter")) + if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) if (!$util.isString(message.filter)) return "filter: string expected"; return null; @@ -75003,9 +80183,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ListBackupsRequest} ListBackupsRequest */ - ListBackupsRequest.fromObject = function fromObject(object) { + ListBackupsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ListBackupsRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ListBackupsRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ListBackupsRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -75027,9 +80213,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ListBackupsRequest.toObject = function toObject(message, options) { + ListBackupsRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.parent = ""; @@ -75037,13 +80227,13 @@ object.pageToken = ""; object.filter = ""; } - if (message.parent != null && message.hasOwnProperty("parent")) + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) object.parent = message.parent; - if (message.pageSize != null && message.hasOwnProperty("pageSize")) + if (message.pageSize != null && Object.hasOwnProperty.call(message, "pageSize")) object.pageSize = message.pageSize; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) object.pageToken = message.pageToken; - if (message.filter != null && message.hasOwnProperty("filter")) + if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) object.filter = message.filter; return object; }; @@ -75101,7 +80291,7 @@ this.warnings = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -75150,17 +80340,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ListBackupsResponse.encode = function encode(message, writer) { + ListBackupsResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.backups != null && message.backups.length) for (var i = 0; i < message.backups.length; ++i) - $root.google.cloud.sql.v1beta4.Backup.encode(message.backups[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.Backup.encode(message.backups[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.nextPageToken); if (message.warnings != null && message.warnings.length) for (var i = 0; i < message.warnings.length; ++i) - $root.google.cloud.sql.v1beta4.ApiWarning.encode(message.warnings[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ApiWarning.encode(message.warnings[i], writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -75174,7 +80368,7 @@ * @returns {$protobuf.Writer} Writer */ ListBackupsResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -75188,9 +80382,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListBackupsResponse.decode = function decode(reader, length, error) { + ListBackupsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ListBackupsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -75200,7 +80398,7 @@ case 1: { if (!(message.backups && message.backups.length)) message.backups = []; - message.backups.push($root.google.cloud.sql.v1beta4.Backup.decode(reader, reader.uint32())); + message.backups.push($root.google.cloud.sql.v1beta4.Backup.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -75210,11 +80408,11 @@ case 3: { if (!(message.warnings && message.warnings.length)) message.warnings = []; - message.warnings.push($root.google.cloud.sql.v1beta4.ApiWarning.decode(reader, reader.uint32())); + message.warnings.push($root.google.cloud.sql.v1beta4.ApiWarning.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -75245,26 +80443,30 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListBackupsResponse.verify = function verify(message) { + ListBackupsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.backups != null && message.hasOwnProperty("backups")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.backups != null && Object.hasOwnProperty.call(message, "backups")) { if (!Array.isArray(message.backups)) return "backups: array expected"; for (var i = 0; i < message.backups.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.Backup.verify(message.backups[i]); + var error = $root.google.cloud.sql.v1beta4.Backup.verify(message.backups[i], long + 1); if (error) return "backups." + error; } } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) if (!$util.isString(message.nextPageToken)) return "nextPageToken: string expected"; - if (message.warnings != null && message.hasOwnProperty("warnings")) { + if (message.warnings != null && Object.hasOwnProperty.call(message, "warnings")) { if (!Array.isArray(message.warnings)) return "warnings: array expected"; for (var i = 0; i < message.warnings.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.ApiWarning.verify(message.warnings[i]); + var error = $root.google.cloud.sql.v1beta4.ApiWarning.verify(message.warnings[i], long + 1); if (error) return "warnings." + error; } @@ -75280,18 +80482,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ListBackupsResponse} ListBackupsResponse */ - ListBackupsResponse.fromObject = function fromObject(object) { + ListBackupsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ListBackupsResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ListBackupsResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ListBackupsResponse(); if (object.backups) { if (!Array.isArray(object.backups)) throw TypeError(".google.cloud.sql.v1beta4.ListBackupsResponse.backups: array expected"); message.backups = []; for (var i = 0; i < object.backups.length; ++i) { - if (typeof object.backups[i] !== "object") + if (!$util.isObject(object.backups[i])) throw TypeError(".google.cloud.sql.v1beta4.ListBackupsResponse.backups: object expected"); - message.backups[i] = $root.google.cloud.sql.v1beta4.Backup.fromObject(object.backups[i]); + message.backups[i] = $root.google.cloud.sql.v1beta4.Backup.fromObject(object.backups[i], long + 1); } } if (object.nextPageToken != null) @@ -75301,9 +80509,9 @@ throw TypeError(".google.cloud.sql.v1beta4.ListBackupsResponse.warnings: array expected"); message.warnings = []; for (var i = 0; i < object.warnings.length; ++i) { - if (typeof object.warnings[i] !== "object") + if (!$util.isObject(object.warnings[i])) throw TypeError(".google.cloud.sql.v1beta4.ListBackupsResponse.warnings: object expected"); - message.warnings[i] = $root.google.cloud.sql.v1beta4.ApiWarning.fromObject(object.warnings[i]); + message.warnings[i] = $root.google.cloud.sql.v1beta4.ApiWarning.fromObject(object.warnings[i], long + 1); } } return message; @@ -75318,9 +80526,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ListBackupsResponse.toObject = function toObject(message, options) { + ListBackupsResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.backups = []; @@ -75331,14 +80543,14 @@ if (message.backups && message.backups.length) { object.backups = []; for (var j = 0; j < message.backups.length; ++j) - object.backups[j] = $root.google.cloud.sql.v1beta4.Backup.toObject(message.backups[j], options); + object.backups[j] = $root.google.cloud.sql.v1beta4.Backup.toObject(message.backups[j], options, q + 1); } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) object.nextPageToken = message.nextPageToken; if (message.warnings && message.warnings.length) { object.warnings = []; for (var j = 0; j < message.warnings.length; ++j) - object.warnings[j] = $root.google.cloud.sql.v1beta4.ApiWarning.toObject(message.warnings[j], options); + object.warnings[j] = $root.google.cloud.sql.v1beta4.ApiWarning.toObject(message.warnings[j], options, q + 1); } return object; }; @@ -75393,7 +80605,7 @@ function UpdateBackupRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -75434,13 +80646,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UpdateBackupRequest.encode = function encode(message, writer) { + UpdateBackupRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) - $root.google.cloud.sql.v1beta4.Backup.encode(message.backup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.Backup.encode(message.backup, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.updateMask != null && Object.hasOwnProperty.call(message, "updateMask")) - $root.google.protobuf.FieldMask.encode(message.updateMask, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.FieldMask.encode(message.updateMask, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -75454,7 +80670,7 @@ * @returns {$protobuf.Writer} Writer */ UpdateBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -75468,9 +80684,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UpdateBackupRequest.decode = function decode(reader, length, error) { + UpdateBackupRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.UpdateBackupRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -75478,15 +80698,15 @@ break; switch (tag >>> 3) { case 1: { - message.backup = $root.google.cloud.sql.v1beta4.Backup.decode(reader, reader.uint32()); + message.backup = $root.google.cloud.sql.v1beta4.Backup.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.updateMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32()); + message.updateMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -75517,16 +80737,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UpdateBackupRequest.verify = function verify(message) { + UpdateBackupRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.backup != null && message.hasOwnProperty("backup")) { - var error = $root.google.cloud.sql.v1beta4.Backup.verify(message.backup); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) { + var error = $root.google.cloud.sql.v1beta4.Backup.verify(message.backup, long + 1); if (error) return "backup." + error; } - if (message.updateMask != null && message.hasOwnProperty("updateMask")) { - var error = $root.google.protobuf.FieldMask.verify(message.updateMask); + if (message.updateMask != null && Object.hasOwnProperty.call(message, "updateMask")) { + var error = $root.google.protobuf.FieldMask.verify(message.updateMask, long + 1); if (error) return "updateMask." + error; } @@ -75541,19 +80765,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.UpdateBackupRequest} UpdateBackupRequest */ - UpdateBackupRequest.fromObject = function fromObject(object) { + UpdateBackupRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.UpdateBackupRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.UpdateBackupRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.UpdateBackupRequest(); if (object.backup != null) { - if (typeof object.backup !== "object") + if (!$util.isObject(object.backup)) throw TypeError(".google.cloud.sql.v1beta4.UpdateBackupRequest.backup: object expected"); - message.backup = $root.google.cloud.sql.v1beta4.Backup.fromObject(object.backup); + message.backup = $root.google.cloud.sql.v1beta4.Backup.fromObject(object.backup, long + 1); } if (object.updateMask != null) { - if (typeof object.updateMask !== "object") + if (!$util.isObject(object.updateMask)) throw TypeError(".google.cloud.sql.v1beta4.UpdateBackupRequest.updateMask: object expected"); - message.updateMask = $root.google.protobuf.FieldMask.fromObject(object.updateMask); + message.updateMask = $root.google.protobuf.FieldMask.fromObject(object.updateMask, long + 1); } return message; }; @@ -75567,18 +80797,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - UpdateBackupRequest.toObject = function toObject(message, options) { + UpdateBackupRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.backup = null; object.updateMask = null; } - if (message.backup != null && message.hasOwnProperty("backup")) - object.backup = $root.google.cloud.sql.v1beta4.Backup.toObject(message.backup, options); - if (message.updateMask != null && message.hasOwnProperty("updateMask")) - object.updateMask = $root.google.protobuf.FieldMask.toObject(message.updateMask, options); + if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) + object.backup = $root.google.cloud.sql.v1beta4.Backup.toObject(message.backup, options, q + 1); + if (message.updateMask != null && Object.hasOwnProperty.call(message, "updateMask")) + object.updateMask = $root.google.protobuf.FieldMask.toObject(message.updateMask, options, q + 1); return object; }; @@ -75631,7 +80865,7 @@ function DeleteBackupRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -75664,9 +80898,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DeleteBackupRequest.encode = function encode(message, writer) { + DeleteBackupRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); return writer; @@ -75682,7 +80920,7 @@ * @returns {$protobuf.Writer} Writer */ DeleteBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -75696,9 +80934,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteBackupRequest.decode = function decode(reader, length, error) { + DeleteBackupRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DeleteBackupRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -75710,7 +80952,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -75741,10 +80983,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeleteBackupRequest.verify = function verify(message) { + DeleteBackupRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; return null; @@ -75758,9 +81004,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.DeleteBackupRequest} DeleteBackupRequest */ - DeleteBackupRequest.fromObject = function fromObject(object) { + DeleteBackupRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.DeleteBackupRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DeleteBackupRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.DeleteBackupRequest(); if (object.name != null) message.name = String(object.name); @@ -75776,13 +81028,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DeleteBackupRequest.toObject = function toObject(message, options) { + DeleteBackupRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.name = ""; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; return object; }; @@ -75838,7 +81094,7 @@ function SqlBackupRunsDeleteRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -75887,9 +81143,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlBackupRunsDeleteRequest.encode = function encode(message, writer) { + SqlBackupRunsDeleteRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.id != null && Object.hasOwnProperty.call(message, "id")) writer.uint32(/* id 1, wireType 0 =*/8).int64(message.id); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) @@ -75909,7 +81169,7 @@ * @returns {$protobuf.Writer} Writer */ SqlBackupRunsDeleteRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -75923,9 +81183,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlBackupRunsDeleteRequest.decode = function decode(reader, length, error) { + SqlBackupRunsDeleteRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -75945,7 +81209,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -75976,16 +81240,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlBackupRunsDeleteRequest.verify = function verify(message) { + SqlBackupRunsDeleteRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.id != null && message.hasOwnProperty("id")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.id != null && Object.hasOwnProperty.call(message, "id")) if (!$util.isInteger(message.id) && !(message.id && $util.isInteger(message.id.low) && $util.isInteger(message.id.high))) return "id: integer|Long expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -75999,13 +81267,19 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest} SqlBackupRunsDeleteRequest */ - SqlBackupRunsDeleteRequest.fromObject = function fromObject(object) { + SqlBackupRunsDeleteRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest(); if (object.id != null) if ($util.Long) - (message.id = $util.Long.fromValue(object.id)).unsigned = false; + message.id = $util.Long.fromValue(object.id, false); else if (typeof object.id === "string") message.id = parseInt(object.id, 10); else if (typeof object.id === "number") @@ -76028,27 +81302,33 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlBackupRunsDeleteRequest.toObject = function toObject(message, options) { + SqlBackupRunsDeleteRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { if ($util.Long) { var long = new $util.Long(0, 0, false); - object.id = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.id = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.id = options.longs === String ? "0" : 0; + object.id = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.instance = ""; object.project = ""; } - if (message.id != null && message.hasOwnProperty("id")) - if (typeof message.id === "number") + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.id = typeof message.id === "number" ? BigInt(message.id) : $util.Long.fromBits(message.id.low >>> 0, message.id.high >>> 0, false).toBigInt(); + else if (typeof message.id === "number") object.id = options.longs === String ? String(message.id) : message.id; else object.id = options.longs === String ? $util.Long.prototype.toString.call(message.id) : options.longs === Number ? new $util.LongBits(message.id.low >>> 0, message.id.high >>> 0).toNumber() : message.id; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -76104,7 +81384,7 @@ function SqlBackupRunsGetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -76153,9 +81433,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlBackupRunsGetRequest.encode = function encode(message, writer) { + SqlBackupRunsGetRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.id != null && Object.hasOwnProperty.call(message, "id")) writer.uint32(/* id 1, wireType 0 =*/8).int64(message.id); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) @@ -76175,7 +81459,7 @@ * @returns {$protobuf.Writer} Writer */ SqlBackupRunsGetRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -76189,9 +81473,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlBackupRunsGetRequest.decode = function decode(reader, length, error) { + SqlBackupRunsGetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -76211,7 +81499,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -76242,16 +81530,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlBackupRunsGetRequest.verify = function verify(message) { + SqlBackupRunsGetRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.id != null && message.hasOwnProperty("id")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.id != null && Object.hasOwnProperty.call(message, "id")) if (!$util.isInteger(message.id) && !(message.id && $util.isInteger(message.id.low) && $util.isInteger(message.id.high))) return "id: integer|Long expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -76265,13 +81557,19 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlBackupRunsGetRequest} SqlBackupRunsGetRequest */ - SqlBackupRunsGetRequest.fromObject = function fromObject(object) { + SqlBackupRunsGetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlBackupRunsGetRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest(); if (object.id != null) if ($util.Long) - (message.id = $util.Long.fromValue(object.id)).unsigned = false; + message.id = $util.Long.fromValue(object.id, false); else if (typeof object.id === "string") message.id = parseInt(object.id, 10); else if (typeof object.id === "number") @@ -76294,27 +81592,33 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlBackupRunsGetRequest.toObject = function toObject(message, options) { + SqlBackupRunsGetRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { if ($util.Long) { var long = new $util.Long(0, 0, false); - object.id = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.id = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.id = options.longs === String ? "0" : 0; + object.id = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.instance = ""; object.project = ""; } - if (message.id != null && message.hasOwnProperty("id")) - if (typeof message.id === "number") + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.id = typeof message.id === "number" ? BigInt(message.id) : $util.Long.fromBits(message.id.low >>> 0, message.id.high >>> 0, false).toBigInt(); + else if (typeof message.id === "number") object.id = options.longs === String ? String(message.id) : message.id; else object.id = options.longs === String ? $util.Long.prototype.toString.call(message.id) : options.longs === Number ? new $util.LongBits(message.id.low >>> 0, message.id.high >>> 0).toNumber() : message.id; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -76370,7 +81674,7 @@ function SqlBackupRunsInsertRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -76419,15 +81723,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlBackupRunsInsertRequest.encode = function encode(message, writer) { + SqlBackupRunsInsertRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.BackupRun.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.BackupRun.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -76441,7 +81749,7 @@ * @returns {$protobuf.Writer} Writer */ SqlBackupRunsInsertRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -76455,9 +81763,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlBackupRunsInsertRequest.decode = function decode(reader, length, error) { + SqlBackupRunsInsertRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -76473,11 +81785,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.BackupRun.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.BackupRun.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -76508,17 +81820,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlBackupRunsInsertRequest.verify = function verify(message) { + SqlBackupRunsInsertRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.BackupRun.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.BackupRun.verify(message.body, long + 1); if (error) return "body." + error; } @@ -76533,18 +81849,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest} SqlBackupRunsInsertRequest */ - SqlBackupRunsInsertRequest.fromObject = function fromObject(object) { + SqlBackupRunsInsertRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.BackupRun.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.BackupRun.fromObject(object.body, long + 1); } return message; }; @@ -76558,21 +81880,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlBackupRunsInsertRequest.toObject = function toObject(message, options) { + SqlBackupRunsInsertRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.BackupRun.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.BackupRun.toObject(message.body, options, q + 1); return object; }; @@ -76628,7 +81954,7 @@ function SqlBackupRunsListRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -76685,9 +82011,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlBackupRunsListRequest.encode = function encode(message, writer) { + SqlBackupRunsListRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) @@ -76709,7 +82039,7 @@ * @returns {$protobuf.Writer} Writer */ SqlBackupRunsListRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -76723,9 +82053,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlBackupRunsListRequest.decode = function decode(reader, length, error) { + SqlBackupRunsListRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlBackupRunsListRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -76749,7 +82083,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -76780,19 +82114,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlBackupRunsListRequest.verify = function verify(message) { + SqlBackupRunsListRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.maxResults != null && message.hasOwnProperty("maxResults")) + if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) if (!$util.isInteger(message.maxResults)) return "maxResults: integer expected"; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) if (!$util.isString(message.pageToken)) return "pageToken: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -76806,9 +82144,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlBackupRunsListRequest} SqlBackupRunsListRequest */ - SqlBackupRunsListRequest.fromObject = function fromObject(object) { + SqlBackupRunsListRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlBackupRunsListRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlBackupRunsListRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlBackupRunsListRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -76830,9 +82174,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlBackupRunsListRequest.toObject = function toObject(message, options) { + SqlBackupRunsListRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; @@ -76840,13 +82188,13 @@ object.pageToken = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.maxResults != null && message.hasOwnProperty("maxResults")) + if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) object.maxResults = message.maxResults; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) object.pageToken = message.pageToken; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -76902,7 +82250,7 @@ function SqlDatabasesDeleteRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -76951,9 +82299,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlDatabasesDeleteRequest.encode = function encode(message, writer) { + SqlDatabasesDeleteRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.database != null && Object.hasOwnProperty.call(message, "database")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.database); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) @@ -76973,7 +82325,7 @@ * @returns {$protobuf.Writer} Writer */ SqlDatabasesDeleteRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -76987,9 +82339,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlDatabasesDeleteRequest.decode = function decode(reader, length, error) { + SqlDatabasesDeleteRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -77009,7 +82365,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -77040,16 +82396,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlDatabasesDeleteRequest.verify = function verify(message) { + SqlDatabasesDeleteRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.database != null && message.hasOwnProperty("database")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.database != null && Object.hasOwnProperty.call(message, "database")) if (!$util.isString(message.database)) return "database: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -77063,9 +82423,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest} SqlDatabasesDeleteRequest */ - SqlDatabasesDeleteRequest.fromObject = function fromObject(object) { + SqlDatabasesDeleteRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest(); if (object.database != null) message.database = String(object.database); @@ -77085,20 +82451,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlDatabasesDeleteRequest.toObject = function toObject(message, options) { + SqlDatabasesDeleteRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.database = ""; object.instance = ""; object.project = ""; } - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) object.database = message.database; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -77154,7 +82524,7 @@ function SqlDatabasesGetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -77203,9 +82573,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlDatabasesGetRequest.encode = function encode(message, writer) { + SqlDatabasesGetRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.database != null && Object.hasOwnProperty.call(message, "database")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.database); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) @@ -77225,7 +82599,7 @@ * @returns {$protobuf.Writer} Writer */ SqlDatabasesGetRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -77239,9 +82613,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlDatabasesGetRequest.decode = function decode(reader, length, error) { + SqlDatabasesGetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlDatabasesGetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -77261,7 +82639,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -77292,16 +82670,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlDatabasesGetRequest.verify = function verify(message) { + SqlDatabasesGetRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.database != null && message.hasOwnProperty("database")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.database != null && Object.hasOwnProperty.call(message, "database")) if (!$util.isString(message.database)) return "database: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -77315,9 +82697,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlDatabasesGetRequest} SqlDatabasesGetRequest */ - SqlDatabasesGetRequest.fromObject = function fromObject(object) { + SqlDatabasesGetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlDatabasesGetRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlDatabasesGetRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlDatabasesGetRequest(); if (object.database != null) message.database = String(object.database); @@ -77337,20 +82725,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlDatabasesGetRequest.toObject = function toObject(message, options) { + SqlDatabasesGetRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.database = ""; object.instance = ""; object.project = ""; } - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) object.database = message.database; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -77406,7 +82798,7 @@ function SqlDatabasesInsertRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -77455,15 +82847,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlDatabasesInsertRequest.encode = function encode(message, writer) { + SqlDatabasesInsertRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.Database.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.Database.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -77477,7 +82873,7 @@ * @returns {$protobuf.Writer} Writer */ SqlDatabasesInsertRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -77491,9 +82887,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlDatabasesInsertRequest.decode = function decode(reader, length, error) { + SqlDatabasesInsertRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -77509,11 +82909,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.Database.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.Database.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -77544,17 +82944,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlDatabasesInsertRequest.verify = function verify(message) { + SqlDatabasesInsertRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.Database.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.Database.verify(message.body, long + 1); if (error) return "body." + error; } @@ -77569,18 +82973,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlDatabasesInsertRequest} SqlDatabasesInsertRequest */ - SqlDatabasesInsertRequest.fromObject = function fromObject(object) { + SqlDatabasesInsertRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlDatabasesInsertRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlDatabasesInsertRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.Database.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.Database.fromObject(object.body, long + 1); } return message; }; @@ -77594,21 +83004,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlDatabasesInsertRequest.toObject = function toObject(message, options) { + SqlDatabasesInsertRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.Database.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.Database.toObject(message.body, options, q + 1); return object; }; @@ -77662,7 +83076,7 @@ function SqlDatabasesListRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -77703,9 +83117,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlDatabasesListRequest.encode = function encode(message, writer) { + SqlDatabasesListRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -77723,7 +83141,7 @@ * @returns {$protobuf.Writer} Writer */ SqlDatabasesListRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -77737,9 +83155,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlDatabasesListRequest.decode = function decode(reader, length, error) { + SqlDatabasesListRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlDatabasesListRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -77755,7 +83177,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -77786,13 +83208,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlDatabasesListRequest.verify = function verify(message) { + SqlDatabasesListRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -77806,9 +83232,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlDatabasesListRequest} SqlDatabasesListRequest */ - SqlDatabasesListRequest.fromObject = function fromObject(object) { + SqlDatabasesListRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlDatabasesListRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlDatabasesListRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlDatabasesListRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -77826,17 +83258,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlDatabasesListRequest.toObject = function toObject(message, options) { + SqlDatabasesListRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -77893,7 +83329,7 @@ function SqlDatabasesUpdateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -77950,9 +83386,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlDatabasesUpdateRequest.encode = function encode(message, writer) { + SqlDatabasesUpdateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.database != null && Object.hasOwnProperty.call(message, "database")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.database); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) @@ -77960,7 +83400,7 @@ if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.Database.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.Database.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -77974,7 +83414,7 @@ * @returns {$protobuf.Writer} Writer */ SqlDatabasesUpdateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -77988,9 +83428,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlDatabasesUpdateRequest.decode = function decode(reader, length, error) { + SqlDatabasesUpdateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -78010,11 +83454,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.Database.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.Database.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -78045,20 +83489,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlDatabasesUpdateRequest.verify = function verify(message) { + SqlDatabasesUpdateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.database != null && message.hasOwnProperty("database")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.database != null && Object.hasOwnProperty.call(message, "database")) if (!$util.isString(message.database)) return "database: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.Database.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.Database.verify(message.body, long + 1); if (error) return "body." + error; } @@ -78073,9 +83521,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest} SqlDatabasesUpdateRequest */ - SqlDatabasesUpdateRequest.fromObject = function fromObject(object) { + SqlDatabasesUpdateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest(); if (object.database != null) message.database = String(object.database); @@ -78084,9 +83538,9 @@ if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.Database.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.Database.fromObject(object.body, long + 1); } return message; }; @@ -78100,9 +83554,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlDatabasesUpdateRequest.toObject = function toObject(message, options) { + SqlDatabasesUpdateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.database = ""; @@ -78110,14 +83568,14 @@ object.project = ""; object.body = null; } - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) object.database = message.database; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.Database.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.Database.toObject(message.body, options, q + 1); return object; }; @@ -78171,7 +83629,7 @@ function SqlFlagsListRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -78221,9 +83679,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlFlagsListRequest.encode = function encode(message, writer) { + SqlFlagsListRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.databaseVersion); if (message.flagScope != null && Object.hasOwnProperty.call(message, "flagScope")) @@ -78241,7 +83703,7 @@ * @returns {$protobuf.Writer} Writer */ SqlFlagsListRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -78255,9 +83717,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlFlagsListRequest.decode = function decode(reader, length, error) { + SqlFlagsListRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlFlagsListRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -78273,7 +83739,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -78304,14 +83770,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlFlagsListRequest.verify = function verify(message) { + SqlFlagsListRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) if (!$util.isString(message.databaseVersion)) return "databaseVersion: string expected"; - if (message.flagScope != null && message.hasOwnProperty("flagScope")) { + if (message.flagScope != null && Object.hasOwnProperty.call(message, "flagScope")) { properties._flagScope = 1; switch (message.flagScope) { default: @@ -78333,9 +83803,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlFlagsListRequest} SqlFlagsListRequest */ - SqlFlagsListRequest.fromObject = function fromObject(object) { + SqlFlagsListRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlFlagsListRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlFlagsListRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlFlagsListRequest(); if (object.databaseVersion != null) message.databaseVersion = String(object.databaseVersion); @@ -78371,15 +83847,19 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlFlagsListRequest.toObject = function toObject(message, options) { + SqlFlagsListRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.databaseVersion = ""; - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) object.databaseVersion = message.databaseVersion; - if (message.flagScope != null && message.hasOwnProperty("flagScope")) { + if (message.flagScope != null && Object.hasOwnProperty.call(message, "flagScope")) { object.flagScope = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlFlagScope[message.flagScope] === undefined ? message.flagScope : $root.google.cloud.sql.v1beta4.SqlFlagScope[message.flagScope] : message.flagScope; if (options.oneofs) object._flagScope = "flagScope"; @@ -78437,7 +83917,7 @@ function SqlInstancesAddServerCaRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -78478,9 +83958,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesAddServerCaRequest.encode = function encode(message, writer) { + SqlInstancesAddServerCaRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -78498,7 +83982,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesAddServerCaRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -78512,9 +83996,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesAddServerCaRequest.decode = function decode(reader, length, error) { + SqlInstancesAddServerCaRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -78530,7 +84018,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -78561,13 +84049,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesAddServerCaRequest.verify = function verify(message) { + SqlInstancesAddServerCaRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -78581,9 +84073,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest} SqlInstancesAddServerCaRequest */ - SqlInstancesAddServerCaRequest.fromObject = function fromObject(object) { + SqlInstancesAddServerCaRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -78601,17 +84099,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesAddServerCaRequest.toObject = function toObject(message, options) { + SqlInstancesAddServerCaRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -78666,7 +84168,7 @@ function SqlInstancesAddServerCertificateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -78707,9 +84209,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesAddServerCertificateRequest.encode = function encode(message, writer) { + SqlInstancesAddServerCertificateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -78727,7 +84233,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesAddServerCertificateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -78741,9 +84247,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesAddServerCertificateRequest.decode = function decode(reader, length, error) { + SqlInstancesAddServerCertificateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -78759,7 +84269,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -78790,13 +84300,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesAddServerCertificateRequest.verify = function verify(message) { + SqlInstancesAddServerCertificateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -78810,9 +84324,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest} SqlInstancesAddServerCertificateRequest */ - SqlInstancesAddServerCertificateRequest.fromObject = function fromObject(object) { + SqlInstancesAddServerCertificateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -78830,17 +84350,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesAddServerCertificateRequest.toObject = function toObject(message, options) { + SqlInstancesAddServerCertificateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -78895,7 +84419,7 @@ function SqlInstancesAddEntraIdCertificateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -78936,9 +84460,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesAddEntraIdCertificateRequest.encode = function encode(message, writer) { + SqlInstancesAddEntraIdCertificateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -78956,7 +84484,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesAddEntraIdCertificateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -78970,9 +84498,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesAddEntraIdCertificateRequest.decode = function decode(reader, length, error) { + SqlInstancesAddEntraIdCertificateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -78988,7 +84520,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -79019,13 +84551,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesAddEntraIdCertificateRequest.verify = function verify(message) { + SqlInstancesAddEntraIdCertificateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -79039,9 +84575,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest} SqlInstancesAddEntraIdCertificateRequest */ - SqlInstancesAddEntraIdCertificateRequest.fromObject = function fromObject(object) { + SqlInstancesAddEntraIdCertificateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -79059,17 +84601,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesAddEntraIdCertificateRequest.toObject = function toObject(message, options) { + SqlInstancesAddEntraIdCertificateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -79125,7 +84671,7 @@ function SqlInstancesCloneRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -79174,15 +84720,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesCloneRequest.encode = function encode(message, writer) { + SqlInstancesCloneRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.InstancesCloneRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.InstancesCloneRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -79196,7 +84746,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesCloneRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -79210,9 +84760,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesCloneRequest.decode = function decode(reader, length, error) { + SqlInstancesCloneRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesCloneRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -79228,11 +84782,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.InstancesCloneRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.InstancesCloneRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -79263,17 +84817,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesCloneRequest.verify = function verify(message) { + SqlInstancesCloneRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.InstancesCloneRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.InstancesCloneRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -79288,18 +84846,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesCloneRequest} SqlInstancesCloneRequest */ - SqlInstancesCloneRequest.fromObject = function fromObject(object) { + SqlInstancesCloneRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesCloneRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesCloneRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesCloneRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesCloneRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.InstancesCloneRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.InstancesCloneRequest.fromObject(object.body, long + 1); } return message; }; @@ -79313,21 +84877,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesCloneRequest.toObject = function toObject(message, options) { + SqlInstancesCloneRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.InstancesCloneRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.InstancesCloneRequest.toObject(message.body, options, q + 1); return object; }; @@ -79385,7 +84953,7 @@ function SqlInstancesDeleteRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -79478,9 +85046,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesDeleteRequest.encode = function encode(message, writer) { + SqlInstancesDeleteRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -79490,7 +85062,7 @@ if (message.finalBackupDescription != null && Object.hasOwnProperty.call(message, "finalBackupDescription")) writer.uint32(/* id 5, wireType 2 =*/42).string(message.finalBackupDescription); if (message.finalBackupExpiryTime != null && Object.hasOwnProperty.call(message, "finalBackupExpiryTime")) - $root.google.protobuf.Timestamp.encode(message.finalBackupExpiryTime, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.finalBackupExpiryTime, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.enableFinalBackup != null && Object.hasOwnProperty.call(message, "enableFinalBackup")) writer.uint32(/* id 7, wireType 0 =*/56).bool(message.enableFinalBackup); return writer; @@ -79506,7 +85078,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesDeleteRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -79520,9 +85092,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesDeleteRequest.decode = function decode(reader, length, error) { + SqlInstancesDeleteRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -79546,7 +85122,7 @@ break; } case 6: { - message.finalBackupExpiryTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.finalBackupExpiryTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -79554,7 +85130,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -79585,37 +85161,41 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesDeleteRequest.verify = function verify(message) { + SqlInstancesDeleteRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.enableFinalBackup != null && message.hasOwnProperty("enableFinalBackup")) { + if (message.enableFinalBackup != null && Object.hasOwnProperty.call(message, "enableFinalBackup")) { properties._enableFinalBackup = 1; if (typeof message.enableFinalBackup !== "boolean") return "enableFinalBackup: boolean expected"; } - if (message.finalBackupTtlDays != null && message.hasOwnProperty("finalBackupTtlDays")) { + if (message.finalBackupTtlDays != null && Object.hasOwnProperty.call(message, "finalBackupTtlDays")) { properties.expiration = 1; if (!$util.isInteger(message.finalBackupTtlDays) && !(message.finalBackupTtlDays && $util.isInteger(message.finalBackupTtlDays.low) && $util.isInteger(message.finalBackupTtlDays.high))) return "finalBackupTtlDays: integer|Long expected"; } - if (message.finalBackupExpiryTime != null && message.hasOwnProperty("finalBackupExpiryTime")) { + if (message.finalBackupExpiryTime != null && Object.hasOwnProperty.call(message, "finalBackupExpiryTime")) { if (properties.expiration === 1) return "expiration: multiple values"; properties.expiration = 1; { - var error = $root.google.protobuf.Timestamp.verify(message.finalBackupExpiryTime); + var error = $root.google.protobuf.Timestamp.verify(message.finalBackupExpiryTime, long + 1); if (error) return "finalBackupExpiryTime." + error; } } - if (message.finalBackupDescription != null && message.hasOwnProperty("finalBackupDescription")) + if (message.finalBackupDescription != null && Object.hasOwnProperty.call(message, "finalBackupDescription")) if (!$util.isString(message.finalBackupDescription)) return "finalBackupDescription: string expected"; return null; @@ -79629,9 +85209,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesDeleteRequest} SqlInstancesDeleteRequest */ - SqlInstancesDeleteRequest.fromObject = function fromObject(object) { + SqlInstancesDeleteRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesDeleteRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -79641,7 +85227,7 @@ message.enableFinalBackup = Boolean(object.enableFinalBackup); if (object.finalBackupTtlDays != null) if ($util.Long) - (message.finalBackupTtlDays = $util.Long.fromValue(object.finalBackupTtlDays)).unsigned = false; + message.finalBackupTtlDays = $util.Long.fromValue(object.finalBackupTtlDays, false); else if (typeof object.finalBackupTtlDays === "string") message.finalBackupTtlDays = parseInt(object.finalBackupTtlDays, 10); else if (typeof object.finalBackupTtlDays === "number") @@ -79649,9 +85235,9 @@ else if (typeof object.finalBackupTtlDays === "object") message.finalBackupTtlDays = new $util.LongBits(object.finalBackupTtlDays.low >>> 0, object.finalBackupTtlDays.high >>> 0).toNumber(); if (object.finalBackupExpiryTime != null) { - if (typeof object.finalBackupExpiryTime !== "object") + if (!$util.isObject(object.finalBackupExpiryTime)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesDeleteRequest.finalBackupExpiryTime: object expected"); - message.finalBackupExpiryTime = $root.google.protobuf.Timestamp.fromObject(object.finalBackupExpiryTime); + message.finalBackupExpiryTime = $root.google.protobuf.Timestamp.fromObject(object.finalBackupExpiryTime, long + 1); } if (object.finalBackupDescription != null) message.finalBackupDescription = String(object.finalBackupDescription); @@ -79667,35 +85253,41 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesDeleteRequest.toObject = function toObject(message, options) { + SqlInstancesDeleteRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.finalBackupDescription = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.finalBackupTtlDays != null && message.hasOwnProperty("finalBackupTtlDays")) { - if (typeof message.finalBackupTtlDays === "number") + if (message.finalBackupTtlDays != null && Object.hasOwnProperty.call(message, "finalBackupTtlDays")) { + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.finalBackupTtlDays = typeof message.finalBackupTtlDays === "number" ? BigInt(message.finalBackupTtlDays) : $util.Long.fromBits(message.finalBackupTtlDays.low >>> 0, message.finalBackupTtlDays.high >>> 0, false).toBigInt(); + else if (typeof message.finalBackupTtlDays === "number") object.finalBackupTtlDays = options.longs === String ? String(message.finalBackupTtlDays) : message.finalBackupTtlDays; else object.finalBackupTtlDays = options.longs === String ? $util.Long.prototype.toString.call(message.finalBackupTtlDays) : options.longs === Number ? new $util.LongBits(message.finalBackupTtlDays.low >>> 0, message.finalBackupTtlDays.high >>> 0).toNumber() : message.finalBackupTtlDays; if (options.oneofs) object.expiration = "finalBackupTtlDays"; } - if (message.finalBackupDescription != null && message.hasOwnProperty("finalBackupDescription")) + if (message.finalBackupDescription != null && Object.hasOwnProperty.call(message, "finalBackupDescription")) object.finalBackupDescription = message.finalBackupDescription; - if (message.finalBackupExpiryTime != null && message.hasOwnProperty("finalBackupExpiryTime")) { - object.finalBackupExpiryTime = $root.google.protobuf.Timestamp.toObject(message.finalBackupExpiryTime, options); + if (message.finalBackupExpiryTime != null && Object.hasOwnProperty.call(message, "finalBackupExpiryTime")) { + object.finalBackupExpiryTime = $root.google.protobuf.Timestamp.toObject(message.finalBackupExpiryTime, options, q + 1); if (options.oneofs) object.expiration = "finalBackupExpiryTime"; } - if (message.enableFinalBackup != null && message.hasOwnProperty("enableFinalBackup")) { + if (message.enableFinalBackup != null && Object.hasOwnProperty.call(message, "enableFinalBackup")) { object.enableFinalBackup = message.enableFinalBackup; if (options.oneofs) object._enableFinalBackup = "enableFinalBackup"; @@ -79754,7 +85346,7 @@ function SqlInstancesDemoteMasterRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -79803,15 +85395,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesDemoteMasterRequest.encode = function encode(message, writer) { + SqlInstancesDemoteMasterRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.InstancesDemoteMasterRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.InstancesDemoteMasterRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -79825,7 +85421,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesDemoteMasterRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -79839,9 +85435,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesDemoteMasterRequest.decode = function decode(reader, length, error) { + SqlInstancesDemoteMasterRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -79857,11 +85457,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.InstancesDemoteMasterRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.InstancesDemoteMasterRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -79892,17 +85492,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesDemoteMasterRequest.verify = function verify(message) { + SqlInstancesDemoteMasterRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.InstancesDemoteMasterRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.InstancesDemoteMasterRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -79917,18 +85521,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest} SqlInstancesDemoteMasterRequest */ - SqlInstancesDemoteMasterRequest.fromObject = function fromObject(object) { + SqlInstancesDemoteMasterRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.InstancesDemoteMasterRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.InstancesDemoteMasterRequest.fromObject(object.body, long + 1); } return message; }; @@ -79942,21 +85552,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesDemoteMasterRequest.toObject = function toObject(message, options) { + SqlInstancesDemoteMasterRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.InstancesDemoteMasterRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.InstancesDemoteMasterRequest.toObject(message.body, options, q + 1); return object; }; @@ -80011,7 +85625,7 @@ function SqlInstancesDemoteRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -80060,15 +85674,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesDemoteRequest.encode = function encode(message, writer) { + SqlInstancesDemoteRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.InstancesDemoteRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.InstancesDemoteRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -80082,7 +85700,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesDemoteRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -80096,9 +85714,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesDemoteRequest.decode = function decode(reader, length, error) { + SqlInstancesDemoteRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -80114,11 +85736,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.InstancesDemoteRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.InstancesDemoteRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -80149,17 +85771,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesDemoteRequest.verify = function verify(message) { + SqlInstancesDemoteRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.InstancesDemoteRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.InstancesDemoteRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -80174,18 +85800,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesDemoteRequest} SqlInstancesDemoteRequest */ - SqlInstancesDemoteRequest.fromObject = function fromObject(object) { + SqlInstancesDemoteRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesDemoteRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesDemoteRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.InstancesDemoteRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.InstancesDemoteRequest.fromObject(object.body, long + 1); } return message; }; @@ -80199,21 +85831,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesDemoteRequest.toObject = function toObject(message, options) { + SqlInstancesDemoteRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.InstancesDemoteRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.InstancesDemoteRequest.toObject(message.body, options, q + 1); return object; }; @@ -80268,7 +85904,7 @@ function SqlInstancesExportRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -80317,15 +85953,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesExportRequest.encode = function encode(message, writer) { + SqlInstancesExportRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.InstancesExportRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.InstancesExportRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -80339,7 +85979,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesExportRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -80353,9 +85993,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesExportRequest.decode = function decode(reader, length, error) { + SqlInstancesExportRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesExportRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -80371,11 +86015,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.InstancesExportRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.InstancesExportRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -80406,17 +86050,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesExportRequest.verify = function verify(message) { + SqlInstancesExportRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.InstancesExportRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.InstancesExportRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -80431,18 +86079,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesExportRequest} SqlInstancesExportRequest */ - SqlInstancesExportRequest.fromObject = function fromObject(object) { + SqlInstancesExportRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesExportRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesExportRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesExportRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesExportRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.InstancesExportRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.InstancesExportRequest.fromObject(object.body, long + 1); } return message; }; @@ -80456,21 +86110,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesExportRequest.toObject = function toObject(message, options) { + SqlInstancesExportRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.InstancesExportRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.InstancesExportRequest.toObject(message.body, options, q + 1); return object; }; @@ -80525,7 +86183,7 @@ function SqlInstancesFailoverRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -80574,15 +86232,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesFailoverRequest.encode = function encode(message, writer) { + SqlInstancesFailoverRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.InstancesFailoverRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.InstancesFailoverRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -80596,7 +86258,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesFailoverRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -80610,9 +86272,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesFailoverRequest.decode = function decode(reader, length, error) { + SqlInstancesFailoverRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -80628,11 +86294,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.InstancesFailoverRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.InstancesFailoverRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -80663,17 +86329,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesFailoverRequest.verify = function verify(message) { + SqlInstancesFailoverRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.InstancesFailoverRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.InstancesFailoverRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -80688,18 +86358,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesFailoverRequest} SqlInstancesFailoverRequest */ - SqlInstancesFailoverRequest.fromObject = function fromObject(object) { + SqlInstancesFailoverRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesFailoverRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesFailoverRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.InstancesFailoverRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.InstancesFailoverRequest.fromObject(object.body, long + 1); } return message; }; @@ -80713,21 +86389,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesFailoverRequest.toObject = function toObject(message, options) { + SqlInstancesFailoverRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.InstancesFailoverRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.InstancesFailoverRequest.toObject(message.body, options, q + 1); return object; }; @@ -80781,7 +86461,7 @@ function SqlInstancesGetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -80822,9 +86502,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesGetRequest.encode = function encode(message, writer) { + SqlInstancesGetRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -80842,7 +86526,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesGetRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -80856,9 +86540,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesGetRequest.decode = function decode(reader, length, error) { + SqlInstancesGetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesGetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -80874,7 +86562,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -80905,13 +86593,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesGetRequest.verify = function verify(message) { + SqlInstancesGetRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -80925,9 +86617,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesGetRequest} SqlInstancesGetRequest */ - SqlInstancesGetRequest.fromObject = function fromObject(object) { + SqlInstancesGetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesGetRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesGetRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesGetRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -80945,17 +86643,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesGetRequest.toObject = function toObject(message, options) { + SqlInstancesGetRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -81011,7 +86713,7 @@ function SqlInstancesImportRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -81060,15 +86762,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesImportRequest.encode = function encode(message, writer) { + SqlInstancesImportRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.InstancesImportRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.InstancesImportRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -81082,7 +86788,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesImportRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -81096,9 +86802,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesImportRequest.decode = function decode(reader, length, error) { + SqlInstancesImportRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesImportRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -81114,11 +86824,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.InstancesImportRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.InstancesImportRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -81149,17 +86859,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesImportRequest.verify = function verify(message) { + SqlInstancesImportRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.InstancesImportRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.InstancesImportRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -81174,18 +86888,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesImportRequest} SqlInstancesImportRequest */ - SqlInstancesImportRequest.fromObject = function fromObject(object) { + SqlInstancesImportRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesImportRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesImportRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesImportRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesImportRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.InstancesImportRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.InstancesImportRequest.fromObject(object.body, long + 1); } return message; }; @@ -81199,21 +86919,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesImportRequest.toObject = function toObject(message, options) { + SqlInstancesImportRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.InstancesImportRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.InstancesImportRequest.toObject(message.body, options, q + 1); return object; }; @@ -81267,7 +86991,7 @@ function SqlInstancesInsertRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -81308,13 +87032,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesInsertRequest.encode = function encode(message, writer) { + SqlInstancesInsertRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.DatabaseInstance.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DatabaseInstance.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -81328,7 +87056,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesInsertRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -81342,9 +87070,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesInsertRequest.decode = function decode(reader, length, error) { + SqlInstancesInsertRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesInsertRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -81356,11 +87088,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -81391,14 +87123,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesInsertRequest.verify = function verify(message) { + SqlInstancesInsertRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.body, long + 1); if (error) return "body." + error; } @@ -81413,16 +87149,22 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesInsertRequest} SqlInstancesInsertRequest */ - SqlInstancesInsertRequest.fromObject = function fromObject(object) { + SqlInstancesInsertRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesInsertRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesInsertRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesInsertRequest(); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesInsertRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.fromObject(object.body, long + 1); } return message; }; @@ -81436,18 +87178,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesInsertRequest.toObject = function toObject(message, options) { + SqlInstancesInsertRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.project = ""; object.body = null; } - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.toObject(message.body, options, q + 1); return object; }; @@ -81503,7 +87249,7 @@ function SqlInstancesListRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -81560,9 +87306,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesListRequest.encode = function encode(message, writer) { + SqlInstancesListRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.filter); if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) @@ -81584,7 +87334,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesListRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -81598,9 +87348,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesListRequest.decode = function decode(reader, length, error) { + SqlInstancesListRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesListRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -81624,7 +87378,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -81655,19 +87409,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesListRequest.verify = function verify(message) { + SqlInstancesListRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.filter != null && message.hasOwnProperty("filter")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) if (!$util.isString(message.filter)) return "filter: string expected"; - if (message.maxResults != null && message.hasOwnProperty("maxResults")) + if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) if (!$util.isInteger(message.maxResults)) return "maxResults: integer expected"; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) if (!$util.isString(message.pageToken)) return "pageToken: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -81681,9 +87439,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesListRequest} SqlInstancesListRequest */ - SqlInstancesListRequest.fromObject = function fromObject(object) { + SqlInstancesListRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesListRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesListRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesListRequest(); if (object.filter != null) message.filter = String(object.filter); @@ -81705,9 +87469,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesListRequest.toObject = function toObject(message, options) { + SqlInstancesListRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.filter = ""; @@ -81715,13 +87483,13 @@ object.pageToken = ""; object.project = ""; } - if (message.filter != null && message.hasOwnProperty("filter")) + if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) object.filter = message.filter; - if (message.maxResults != null && message.hasOwnProperty("maxResults")) + if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) object.maxResults = message.maxResults; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) object.pageToken = message.pageToken; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -81776,7 +87544,7 @@ function SqlInstancesListServerCasRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -81817,9 +87585,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesListServerCasRequest.encode = function encode(message, writer) { + SqlInstancesListServerCasRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -81837,7 +87609,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesListServerCasRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -81851,9 +87623,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesListServerCasRequest.decode = function decode(reader, length, error) { + SqlInstancesListServerCasRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -81869,7 +87645,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -81900,13 +87676,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesListServerCasRequest.verify = function verify(message) { + SqlInstancesListServerCasRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -81920,9 +87700,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest} SqlInstancesListServerCasRequest */ - SqlInstancesListServerCasRequest.fromObject = function fromObject(object) { + SqlInstancesListServerCasRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -81940,17 +87726,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesListServerCasRequest.toObject = function toObject(message, options) { + SqlInstancesListServerCasRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -82005,7 +87795,7 @@ function SqlInstancesListServerCertificatesRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -82046,9 +87836,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesListServerCertificatesRequest.encode = function encode(message, writer) { + SqlInstancesListServerCertificatesRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -82066,7 +87860,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesListServerCertificatesRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -82080,9 +87874,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesListServerCertificatesRequest.decode = function decode(reader, length, error) { + SqlInstancesListServerCertificatesRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -82098,7 +87896,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -82129,13 +87927,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesListServerCertificatesRequest.verify = function verify(message) { + SqlInstancesListServerCertificatesRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -82149,9 +87951,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest} SqlInstancesListServerCertificatesRequest */ - SqlInstancesListServerCertificatesRequest.fromObject = function fromObject(object) { + SqlInstancesListServerCertificatesRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -82169,17 +87977,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesListServerCertificatesRequest.toObject = function toObject(message, options) { + SqlInstancesListServerCertificatesRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -82234,7 +88046,7 @@ function SqlInstancesListEntraIdCertificatesRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -82275,9 +88087,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesListEntraIdCertificatesRequest.encode = function encode(message, writer) { + SqlInstancesListEntraIdCertificatesRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -82295,7 +88111,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesListEntraIdCertificatesRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -82309,9 +88125,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesListEntraIdCertificatesRequest.decode = function decode(reader, length, error) { + SqlInstancesListEntraIdCertificatesRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -82327,7 +88147,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -82358,13 +88178,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesListEntraIdCertificatesRequest.verify = function verify(message) { + SqlInstancesListEntraIdCertificatesRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -82378,9 +88202,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest} SqlInstancesListEntraIdCertificatesRequest */ - SqlInstancesListEntraIdCertificatesRequest.fromObject = function fromObject(object) { + SqlInstancesListEntraIdCertificatesRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -82398,17 +88228,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesListEntraIdCertificatesRequest.toObject = function toObject(message, options) { + SqlInstancesListEntraIdCertificatesRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -82450,6 +88284,8 @@ * @interface ISqlInstancesPatchRequest * @property {string|null} [instance] SqlInstancesPatchRequest instance * @property {string|null} [project] SqlInstancesPatchRequest project + * @property {boolean|null} [reconcilePscNetworking] SqlInstancesPatchRequest reconcilePscNetworking + * @property {boolean|null} [reconcilePscNetworkingForce] SqlInstancesPatchRequest reconcilePscNetworkingForce * @property {google.cloud.sql.v1beta4.IDatabaseInstance|null} [body] SqlInstancesPatchRequest body */ @@ -82464,7 +88300,7 @@ function SqlInstancesPatchRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -82484,6 +88320,22 @@ */ SqlInstancesPatchRequest.prototype.project = ""; + /** + * SqlInstancesPatchRequest reconcilePscNetworking. + * @member {boolean|null|undefined} reconcilePscNetworking + * @memberof google.cloud.sql.v1beta4.SqlInstancesPatchRequest + * @instance + */ + SqlInstancesPatchRequest.prototype.reconcilePscNetworking = null; + + /** + * SqlInstancesPatchRequest reconcilePscNetworkingForce. + * @member {boolean|null|undefined} reconcilePscNetworkingForce + * @memberof google.cloud.sql.v1beta4.SqlInstancesPatchRequest + * @instance + */ + SqlInstancesPatchRequest.prototype.reconcilePscNetworkingForce = null; + /** * SqlInstancesPatchRequest body. * @member {google.cloud.sql.v1beta4.IDatabaseInstance|null|undefined} body @@ -82492,6 +88344,21 @@ */ SqlInstancesPatchRequest.prototype.body = null; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(SqlInstancesPatchRequest.prototype, "_reconcilePscNetworking", { + get: $util.oneOfGetter($oneOfFields = ["reconcilePscNetworking"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(SqlInstancesPatchRequest.prototype, "_reconcilePscNetworkingForce", { + get: $util.oneOfGetter($oneOfFields = ["reconcilePscNetworkingForce"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new SqlInstancesPatchRequest instance using the specified properties. * @function create @@ -82513,15 +88380,23 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesPatchRequest.encode = function encode(message, writer) { + SqlInstancesPatchRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); + if (message.reconcilePscNetworking != null && Object.hasOwnProperty.call(message, "reconcilePscNetworking")) + writer.uint32(/* id 4, wireType 0 =*/32).bool(message.reconcilePscNetworking); + if (message.reconcilePscNetworkingForce != null && Object.hasOwnProperty.call(message, "reconcilePscNetworkingForce")) + writer.uint32(/* id 5, wireType 0 =*/40).bool(message.reconcilePscNetworkingForce); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.DatabaseInstance.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DatabaseInstance.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -82535,7 +88410,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesPatchRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -82549,9 +88424,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesPatchRequest.decode = function decode(reader, length, error) { + SqlInstancesPatchRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesPatchRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -82566,12 +88445,20 @@ message.project = reader.string(); break; } + case 4: { + message.reconcilePscNetworking = reader.bool(); + break; + } + case 5: { + message.reconcilePscNetworkingForce = reader.bool(); + break; + } case 100: { - message.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -82602,17 +88489,32 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesPatchRequest.verify = function verify(message) { + SqlInstancesPatchRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + var properties = {}; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.body); + if (message.reconcilePscNetworking != null && Object.hasOwnProperty.call(message, "reconcilePscNetworking")) { + properties._reconcilePscNetworking = 1; + if (typeof message.reconcilePscNetworking !== "boolean") + return "reconcilePscNetworking: boolean expected"; + } + if (message.reconcilePscNetworkingForce != null && Object.hasOwnProperty.call(message, "reconcilePscNetworkingForce")) { + properties._reconcilePscNetworkingForce = 1; + if (typeof message.reconcilePscNetworkingForce !== "boolean") + return "reconcilePscNetworkingForce: boolean expected"; + } + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.body, long + 1); if (error) return "body." + error; } @@ -82627,18 +88529,28 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesPatchRequest} SqlInstancesPatchRequest */ - SqlInstancesPatchRequest.fromObject = function fromObject(object) { + SqlInstancesPatchRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesPatchRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesPatchRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesPatchRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); + if (object.reconcilePscNetworking != null) + message.reconcilePscNetworking = Boolean(object.reconcilePscNetworking); + if (object.reconcilePscNetworkingForce != null) + message.reconcilePscNetworkingForce = Boolean(object.reconcilePscNetworkingForce); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesPatchRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.fromObject(object.body, long + 1); } return message; }; @@ -82652,21 +88564,35 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesPatchRequest.toObject = function toObject(message, options) { + SqlInstancesPatchRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.toObject(message.body, options); + if (message.reconcilePscNetworking != null && Object.hasOwnProperty.call(message, "reconcilePscNetworking")) { + object.reconcilePscNetworking = message.reconcilePscNetworking; + if (options.oneofs) + object._reconcilePscNetworking = "reconcilePscNetworking"; + } + if (message.reconcilePscNetworkingForce != null && Object.hasOwnProperty.call(message, "reconcilePscNetworkingForce")) { + object.reconcilePscNetworkingForce = message.reconcilePscNetworkingForce; + if (options.oneofs) + object._reconcilePscNetworkingForce = "reconcilePscNetworkingForce"; + } + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.toObject(message.body, options, q + 1); return object; }; @@ -82721,7 +88647,7 @@ function SqlInstancesPromoteReplicaRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -82770,9 +88696,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesPromoteReplicaRequest.encode = function encode(message, writer) { + SqlInstancesPromoteReplicaRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -82792,7 +88722,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesPromoteReplicaRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -82806,9 +88736,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesPromoteReplicaRequest.decode = function decode(reader, length, error) { + SqlInstancesPromoteReplicaRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -82828,7 +88762,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -82859,16 +88793,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesPromoteReplicaRequest.verify = function verify(message) { + SqlInstancesPromoteReplicaRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.failover != null && message.hasOwnProperty("failover")) + if (message.failover != null && Object.hasOwnProperty.call(message, "failover")) if (typeof message.failover !== "boolean") return "failover: boolean expected"; return null; @@ -82882,9 +88820,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest} SqlInstancesPromoteReplicaRequest */ - SqlInstancesPromoteReplicaRequest.fromObject = function fromObject(object) { + SqlInstancesPromoteReplicaRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -82904,20 +88848,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesPromoteReplicaRequest.toObject = function toObject(message, options) { + SqlInstancesPromoteReplicaRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.failover = false; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.failover != null && message.hasOwnProperty("failover")) + if (message.failover != null && Object.hasOwnProperty.call(message, "failover")) object.failover = message.failover; return object; }; @@ -82973,7 +88921,7 @@ function SqlInstancesSwitchoverRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -83022,15 +88970,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesSwitchoverRequest.encode = function encode(message, writer) { + SqlInstancesSwitchoverRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.dbTimeout != null && Object.hasOwnProperty.call(message, "dbTimeout")) - $root.google.protobuf.Duration.encode(message.dbTimeout, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.dbTimeout, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -83044,7 +88996,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesSwitchoverRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -83058,9 +89010,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesSwitchoverRequest.decode = function decode(reader, length, error) { + SqlInstancesSwitchoverRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -83076,11 +89032,11 @@ break; } case 3: { - message.dbTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.dbTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -83111,17 +89067,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesSwitchoverRequest.verify = function verify(message) { + SqlInstancesSwitchoverRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.dbTimeout != null && message.hasOwnProperty("dbTimeout")) { - var error = $root.google.protobuf.Duration.verify(message.dbTimeout); + if (message.dbTimeout != null && Object.hasOwnProperty.call(message, "dbTimeout")) { + var error = $root.google.protobuf.Duration.verify(message.dbTimeout, long + 1); if (error) return "dbTimeout." + error; } @@ -83136,18 +89096,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest} SqlInstancesSwitchoverRequest */ - SqlInstancesSwitchoverRequest.fromObject = function fromObject(object) { + SqlInstancesSwitchoverRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.dbTimeout != null) { - if (typeof object.dbTimeout !== "object") + if (!$util.isObject(object.dbTimeout)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest.dbTimeout: object expected"); - message.dbTimeout = $root.google.protobuf.Duration.fromObject(object.dbTimeout); + message.dbTimeout = $root.google.protobuf.Duration.fromObject(object.dbTimeout, long + 1); } return message; }; @@ -83161,21 +89127,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesSwitchoverRequest.toObject = function toObject(message, options) { + SqlInstancesSwitchoverRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.dbTimeout = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.dbTimeout != null && message.hasOwnProperty("dbTimeout")) - object.dbTimeout = $root.google.protobuf.Duration.toObject(message.dbTimeout, options); + if (message.dbTimeout != null && Object.hasOwnProperty.call(message, "dbTimeout")) + object.dbTimeout = $root.google.protobuf.Duration.toObject(message.dbTimeout, options, q + 1); return object; }; @@ -83230,7 +89200,7 @@ function SqlInstancesResetSslConfigRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -83279,9 +89249,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesResetSslConfigRequest.encode = function encode(message, writer) { + SqlInstancesResetSslConfigRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -83301,7 +89275,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesResetSslConfigRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -83315,9 +89289,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesResetSslConfigRequest.decode = function decode(reader, length, error) { + SqlInstancesResetSslConfigRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -83337,7 +89315,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -83368,16 +89346,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesResetSslConfigRequest.verify = function verify(message) { + SqlInstancesResetSslConfigRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.mode != null && message.hasOwnProperty("mode")) + if (message.mode != null && Object.hasOwnProperty.call(message, "mode")) switch (message.mode) { default: return "mode: enum value expected"; @@ -83397,9 +89379,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest} SqlInstancesResetSslConfigRequest */ - SqlInstancesResetSslConfigRequest.fromObject = function fromObject(object) { + SqlInstancesResetSslConfigRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -83437,20 +89425,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesResetSslConfigRequest.toObject = function toObject(message, options) { + SqlInstancesResetSslConfigRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.mode = options.enums === String ? "RESET_SSL_MODE_UNSPECIFIED" : 0; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.mode != null && message.hasOwnProperty("mode")) + if (message.mode != null && Object.hasOwnProperty.call(message, "mode")) object.mode = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest.ResetSslMode[message.mode] === undefined ? message.mode : $root.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest.ResetSslMode[message.mode] : message.mode; return object; }; @@ -83521,7 +89513,7 @@ function SqlInstancesRestartRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -83562,9 +89554,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesRestartRequest.encode = function encode(message, writer) { + SqlInstancesRestartRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -83582,7 +89578,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesRestartRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -83596,9 +89592,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesRestartRequest.decode = function decode(reader, length, error) { + SqlInstancesRestartRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesRestartRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -83614,7 +89614,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -83645,13 +89645,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesRestartRequest.verify = function verify(message) { + SqlInstancesRestartRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -83665,9 +89669,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesRestartRequest} SqlInstancesRestartRequest */ - SqlInstancesRestartRequest.fromObject = function fromObject(object) { + SqlInstancesRestartRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesRestartRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesRestartRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesRestartRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -83685,17 +89695,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesRestartRequest.toObject = function toObject(message, options) { + SqlInstancesRestartRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -83751,7 +89765,7 @@ function SqlInstancesRestoreBackupRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -83800,15 +89814,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesRestoreBackupRequest.encode = function encode(message, writer) { + SqlInstancesRestoreBackupRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.InstancesRestoreBackupRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.InstancesRestoreBackupRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -83822,7 +89840,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesRestoreBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -83836,9 +89854,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesRestoreBackupRequest.decode = function decode(reader, length, error) { + SqlInstancesRestoreBackupRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -83854,11 +89876,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.InstancesRestoreBackupRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.InstancesRestoreBackupRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -83889,17 +89911,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesRestoreBackupRequest.verify = function verify(message) { + SqlInstancesRestoreBackupRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.InstancesRestoreBackupRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.InstancesRestoreBackupRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -83914,18 +89940,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest} SqlInstancesRestoreBackupRequest */ - SqlInstancesRestoreBackupRequest.fromObject = function fromObject(object) { + SqlInstancesRestoreBackupRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.InstancesRestoreBackupRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.InstancesRestoreBackupRequest.fromObject(object.body, long + 1); } return message; }; @@ -83939,21 +89971,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesRestoreBackupRequest.toObject = function toObject(message, options) { + SqlInstancesRestoreBackupRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.InstancesRestoreBackupRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.InstancesRestoreBackupRequest.toObject(message.body, options, q + 1); return object; }; @@ -84008,7 +90044,7 @@ function SqlInstancesRotateServerCaRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -84057,15 +90093,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesRotateServerCaRequest.encode = function encode(message, writer) { + SqlInstancesRotateServerCaRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.InstancesRotateServerCaRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.InstancesRotateServerCaRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -84079,7 +90119,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesRotateServerCaRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -84093,9 +90133,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesRotateServerCaRequest.decode = function decode(reader, length, error) { + SqlInstancesRotateServerCaRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -84111,11 +90155,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.InstancesRotateServerCaRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.InstancesRotateServerCaRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -84146,17 +90190,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesRotateServerCaRequest.verify = function verify(message) { + SqlInstancesRotateServerCaRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.InstancesRotateServerCaRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.InstancesRotateServerCaRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -84171,18 +90219,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest} SqlInstancesRotateServerCaRequest */ - SqlInstancesRotateServerCaRequest.fromObject = function fromObject(object) { + SqlInstancesRotateServerCaRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.InstancesRotateServerCaRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.InstancesRotateServerCaRequest.fromObject(object.body, long + 1); } return message; }; @@ -84196,21 +90250,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesRotateServerCaRequest.toObject = function toObject(message, options) { + SqlInstancesRotateServerCaRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.InstancesRotateServerCaRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.InstancesRotateServerCaRequest.toObject(message.body, options, q + 1); return object; }; @@ -84265,7 +90323,7 @@ function SqlInstancesRotateServerCertificateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -84314,15 +90372,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesRotateServerCertificateRequest.encode = function encode(message, writer) { + SqlInstancesRotateServerCertificateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -84336,7 +90398,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesRotateServerCertificateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -84350,9 +90412,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesRotateServerCertificateRequest.decode = function decode(reader, length, error) { + SqlInstancesRotateServerCertificateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -84368,11 +90434,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -84403,17 +90469,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesRotateServerCertificateRequest.verify = function verify(message) { + SqlInstancesRotateServerCertificateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -84428,18 +90498,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest} SqlInstancesRotateServerCertificateRequest */ - SqlInstancesRotateServerCertificateRequest.fromObject = function fromObject(object) { + SqlInstancesRotateServerCertificateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest.fromObject(object.body, long + 1); } return message; }; @@ -84453,21 +90529,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesRotateServerCertificateRequest.toObject = function toObject(message, options) { + SqlInstancesRotateServerCertificateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest.toObject(message.body, options, q + 1); return object; }; @@ -84522,7 +90602,7 @@ function SqlInstancesRotateEntraIdCertificateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -84571,15 +90651,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesRotateEntraIdCertificateRequest.encode = function encode(message, writer) { + SqlInstancesRotateEntraIdCertificateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -84593,7 +90677,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesRotateEntraIdCertificateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -84607,9 +90691,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesRotateEntraIdCertificateRequest.decode = function decode(reader, length, error) { + SqlInstancesRotateEntraIdCertificateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -84625,11 +90713,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -84660,17 +90748,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesRotateEntraIdCertificateRequest.verify = function verify(message) { + SqlInstancesRotateEntraIdCertificateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -84685,18 +90777,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest} SqlInstancesRotateEntraIdCertificateRequest */ - SqlInstancesRotateEntraIdCertificateRequest.fromObject = function fromObject(object) { + SqlInstancesRotateEntraIdCertificateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest.fromObject(object.body, long + 1); } return message; }; @@ -84710,21 +90808,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesRotateEntraIdCertificateRequest.toObject = function toObject(message, options) { + SqlInstancesRotateEntraIdCertificateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest.toObject(message.body, options, q + 1); return object; }; @@ -84778,7 +90880,7 @@ function SqlInstancesStartReplicaRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -84819,9 +90921,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesStartReplicaRequest.encode = function encode(message, writer) { + SqlInstancesStartReplicaRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -84839,7 +90945,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesStartReplicaRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -84853,9 +90959,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesStartReplicaRequest.decode = function decode(reader, length, error) { + SqlInstancesStartReplicaRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -84871,7 +90981,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -84902,13 +91012,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesStartReplicaRequest.verify = function verify(message) { + SqlInstancesStartReplicaRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -84922,9 +91036,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest} SqlInstancesStartReplicaRequest */ - SqlInstancesStartReplicaRequest.fromObject = function fromObject(object) { + SqlInstancesStartReplicaRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -84942,17 +91062,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesStartReplicaRequest.toObject = function toObject(message, options) { + SqlInstancesStartReplicaRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -85007,7 +91131,7 @@ function SqlInstancesStopReplicaRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -85048,9 +91172,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesStopReplicaRequest.encode = function encode(message, writer) { + SqlInstancesStopReplicaRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -85068,7 +91196,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesStopReplicaRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -85082,9 +91210,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesStopReplicaRequest.decode = function decode(reader, length, error) { + SqlInstancesStopReplicaRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -85100,7 +91232,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -85131,13 +91263,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesStopReplicaRequest.verify = function verify(message) { + SqlInstancesStopReplicaRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -85151,9 +91287,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest} SqlInstancesStopReplicaRequest */ - SqlInstancesStopReplicaRequest.fromObject = function fromObject(object) { + SqlInstancesStopReplicaRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -85171,17 +91313,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesStopReplicaRequest.toObject = function toObject(message, options) { + SqlInstancesStopReplicaRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -85237,7 +91383,7 @@ function SqlInstancesTruncateLogRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -85286,15 +91432,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesTruncateLogRequest.encode = function encode(message, writer) { + SqlInstancesTruncateLogRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.InstancesTruncateLogRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.InstancesTruncateLogRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -85308,7 +91458,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesTruncateLogRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -85322,9 +91472,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesTruncateLogRequest.decode = function decode(reader, length, error) { + SqlInstancesTruncateLogRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -85340,11 +91494,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.InstancesTruncateLogRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.InstancesTruncateLogRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -85375,17 +91529,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesTruncateLogRequest.verify = function verify(message) { + SqlInstancesTruncateLogRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.InstancesTruncateLogRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.InstancesTruncateLogRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -85400,18 +91558,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest} SqlInstancesTruncateLogRequest */ - SqlInstancesTruncateLogRequest.fromObject = function fromObject(object) { + SqlInstancesTruncateLogRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.InstancesTruncateLogRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.InstancesTruncateLogRequest.fromObject(object.body, long + 1); } return message; }; @@ -85425,21 +91589,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesTruncateLogRequest.toObject = function toObject(message, options) { + SqlInstancesTruncateLogRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.InstancesTruncateLogRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.InstancesTruncateLogRequest.toObject(message.body, options, q + 1); return object; }; @@ -85494,7 +91662,7 @@ function SqlInstancesUpdateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -85543,15 +91711,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesUpdateRequest.encode = function encode(message, writer) { + SqlInstancesUpdateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.DatabaseInstance.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DatabaseInstance.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -85565,7 +91737,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesUpdateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -85579,9 +91751,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesUpdateRequest.decode = function decode(reader, length, error) { + SqlInstancesUpdateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -85597,11 +91773,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -85632,17 +91808,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesUpdateRequest.verify = function verify(message) { + SqlInstancesUpdateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.body, long + 1); if (error) return "body." + error; } @@ -85657,18 +91837,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesUpdateRequest} SqlInstancesUpdateRequest */ - SqlInstancesUpdateRequest.fromObject = function fromObject(object) { + SqlInstancesUpdateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesUpdateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesUpdateRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.fromObject(object.body, long + 1); } return message; }; @@ -85682,21 +91868,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesUpdateRequest.toObject = function toObject(message, options) { + SqlInstancesUpdateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.DatabaseInstance.toObject(message.body, options, q + 1); return object; }; @@ -85751,7 +91941,7 @@ function SqlInstancesReencryptRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -85800,15 +91990,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesReencryptRequest.encode = function encode(message, writer) { + SqlInstancesReencryptRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.InstancesReencryptRequest.encode(message.body, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.InstancesReencryptRequest.encode(message.body, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -85822,7 +92016,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesReencryptRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -85836,9 +92030,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesReencryptRequest.decode = function decode(reader, length, error) { + SqlInstancesReencryptRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -85854,11 +92052,11 @@ break; } case 3: { - message.body = $root.google.cloud.sql.v1beta4.InstancesReencryptRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.InstancesReencryptRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -85889,17 +92087,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesReencryptRequest.verify = function verify(message) { + SqlInstancesReencryptRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.InstancesReencryptRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.InstancesReencryptRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -85914,18 +92116,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesReencryptRequest} SqlInstancesReencryptRequest */ - SqlInstancesReencryptRequest.fromObject = function fromObject(object) { + SqlInstancesReencryptRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesReencryptRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesReencryptRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.InstancesReencryptRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.InstancesReencryptRequest.fromObject(object.body, long + 1); } return message; }; @@ -85939,21 +92147,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesReencryptRequest.toObject = function toObject(message, options) { + SqlInstancesReencryptRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.InstancesReencryptRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.InstancesReencryptRequest.toObject(message.body, options, q + 1); return object; }; @@ -86006,7 +92218,7 @@ function InstancesReencryptRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -86048,11 +92260,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesReencryptRequest.encode = function encode(message, writer) { + InstancesReencryptRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.backupReencryptionConfig != null && Object.hasOwnProperty.call(message, "backupReencryptionConfig")) - $root.google.cloud.sql.v1beta4.BackupReencryptionConfig.encode(message.backupReencryptionConfig, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.BackupReencryptionConfig.encode(message.backupReencryptionConfig, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -86066,7 +92282,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesReencryptRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -86080,9 +92296,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesReencryptRequest.decode = function decode(reader, length, error) { + InstancesReencryptRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesReencryptRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -86090,11 +92310,11 @@ break; switch (tag >>> 3) { case 1: { - message.backupReencryptionConfig = $root.google.cloud.sql.v1beta4.BackupReencryptionConfig.decode(reader, reader.uint32()); + message.backupReencryptionConfig = $root.google.cloud.sql.v1beta4.BackupReencryptionConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -86125,14 +92345,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesReencryptRequest.verify = function verify(message) { + InstancesReencryptRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.backupReencryptionConfig != null && message.hasOwnProperty("backupReencryptionConfig")) { + if (message.backupReencryptionConfig != null && Object.hasOwnProperty.call(message, "backupReencryptionConfig")) { properties._backupReencryptionConfig = 1; { - var error = $root.google.cloud.sql.v1beta4.BackupReencryptionConfig.verify(message.backupReencryptionConfig); + var error = $root.google.cloud.sql.v1beta4.BackupReencryptionConfig.verify(message.backupReencryptionConfig, long + 1); if (error) return "backupReencryptionConfig." + error; } @@ -86148,14 +92372,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesReencryptRequest} InstancesReencryptRequest */ - InstancesReencryptRequest.fromObject = function fromObject(object) { + InstancesReencryptRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesReencryptRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesReencryptRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesReencryptRequest(); if (object.backupReencryptionConfig != null) { - if (typeof object.backupReencryptionConfig !== "object") + if (!$util.isObject(object.backupReencryptionConfig)) throw TypeError(".google.cloud.sql.v1beta4.InstancesReencryptRequest.backupReencryptionConfig: object expected"); - message.backupReencryptionConfig = $root.google.cloud.sql.v1beta4.BackupReencryptionConfig.fromObject(object.backupReencryptionConfig); + message.backupReencryptionConfig = $root.google.cloud.sql.v1beta4.BackupReencryptionConfig.fromObject(object.backupReencryptionConfig, long + 1); } return message; }; @@ -86169,12 +92399,16 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesReencryptRequest.toObject = function toObject(message, options) { + InstancesReencryptRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.backupReencryptionConfig != null && message.hasOwnProperty("backupReencryptionConfig")) { - object.backupReencryptionConfig = $root.google.cloud.sql.v1beta4.BackupReencryptionConfig.toObject(message.backupReencryptionConfig, options); + if (message.backupReencryptionConfig != null && Object.hasOwnProperty.call(message, "backupReencryptionConfig")) { + object.backupReencryptionConfig = $root.google.cloud.sql.v1beta4.BackupReencryptionConfig.toObject(message.backupReencryptionConfig, options, q + 1); if (options.oneofs) object._backupReencryptionConfig = "backupReencryptionConfig"; } @@ -86231,7 +92465,7 @@ function BackupReencryptionConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -86287,9 +92521,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BackupReencryptionConfig.encode = function encode(message, writer) { + BackupReencryptionConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.backupLimit != null && Object.hasOwnProperty.call(message, "backupLimit")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.backupLimit); if (message.backupType != null && Object.hasOwnProperty.call(message, "backupType")) @@ -86307,7 +92545,7 @@ * @returns {$protobuf.Writer} Writer */ BackupReencryptionConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -86321,9 +92559,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BackupReencryptionConfig.decode = function decode(reader, length, error) { + BackupReencryptionConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.BackupReencryptionConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -86339,7 +92581,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -86370,16 +92612,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BackupReencryptionConfig.verify = function verify(message) { + BackupReencryptionConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.backupLimit != null && message.hasOwnProperty("backupLimit")) { + if (message.backupLimit != null && Object.hasOwnProperty.call(message, "backupLimit")) { properties._backupLimit = 1; if (!$util.isInteger(message.backupLimit)) return "backupLimit: integer expected"; } - if (message.backupType != null && message.hasOwnProperty("backupType")) { + if (message.backupType != null && Object.hasOwnProperty.call(message, "backupType")) { properties._backupType = 1; switch (message.backupType) { default: @@ -86401,9 +92647,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.BackupReencryptionConfig} BackupReencryptionConfig */ - BackupReencryptionConfig.fromObject = function fromObject(object) { + BackupReencryptionConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.BackupReencryptionConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.BackupReencryptionConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.BackupReencryptionConfig(); if (object.backupLimit != null) message.backupLimit = object.backupLimit | 0; @@ -86439,16 +92691,20 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BackupReencryptionConfig.toObject = function toObject(message, options) { + BackupReencryptionConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.backupLimit != null && message.hasOwnProperty("backupLimit")) { + if (message.backupLimit != null && Object.hasOwnProperty.call(message, "backupLimit")) { object.backupLimit = message.backupLimit; if (options.oneofs) object._backupLimit = "backupLimit"; } - if (message.backupType != null && message.hasOwnProperty("backupType")) { + if (message.backupType != null && Object.hasOwnProperty.call(message, "backupType")) { object.backupType = options.enums === String ? $root.google.cloud.sql.v1beta4.BackupReencryptionConfig.BackupType[message.backupType] === undefined ? message.backupType : $root.google.cloud.sql.v1beta4.BackupReencryptionConfig.BackupType[message.backupType] : message.backupType; if (options.oneofs) object._backupType = "backupType"; @@ -86523,7 +92779,7 @@ function SqlInstancesRescheduleMaintenanceRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -86572,15 +92828,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesRescheduleMaintenanceRequest.encode = function encode(message, writer) { + SqlInstancesRescheduleMaintenanceRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -86594,7 +92854,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesRescheduleMaintenanceRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -86608,9 +92868,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesRescheduleMaintenanceRequest.decode = function decode(reader, length, error) { + SqlInstancesRescheduleMaintenanceRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -86626,11 +92890,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -86661,17 +92925,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesRescheduleMaintenanceRequest.verify = function verify(message) { + SqlInstancesRescheduleMaintenanceRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.verify(message.body, long + 1); if (error) return "body." + error; } @@ -86686,18 +92954,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest} SqlInstancesRescheduleMaintenanceRequest */ - SqlInstancesRescheduleMaintenanceRequest.fromObject = function fromObject(object) { + SqlInstancesRescheduleMaintenanceRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.fromObject(object.body, long + 1); } return message; }; @@ -86711,21 +92985,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesRescheduleMaintenanceRequest.toObject = function toObject(message, options) { + SqlInstancesRescheduleMaintenanceRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.toObject(message.body, options, q + 1); return object; }; @@ -86780,7 +93058,7 @@ function SqlInstancesPerformDiskShrinkRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -86829,15 +93107,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesPerformDiskShrinkRequest.encode = function encode(message, writer) { + SqlInstancesPerformDiskShrinkRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.PerformDiskShrinkContext.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.PerformDiskShrinkContext.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -86851,7 +93133,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesPerformDiskShrinkRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -86865,9 +93147,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesPerformDiskShrinkRequest.decode = function decode(reader, length, error) { + SqlInstancesPerformDiskShrinkRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -86883,11 +93169,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.PerformDiskShrinkContext.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.PerformDiskShrinkContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -86918,17 +93204,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesPerformDiskShrinkRequest.verify = function verify(message) { + SqlInstancesPerformDiskShrinkRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.PerformDiskShrinkContext.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.PerformDiskShrinkContext.verify(message.body, long + 1); if (error) return "body." + error; } @@ -86943,18 +93233,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest} SqlInstancesPerformDiskShrinkRequest */ - SqlInstancesPerformDiskShrinkRequest.fromObject = function fromObject(object) { + SqlInstancesPerformDiskShrinkRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.PerformDiskShrinkContext.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.PerformDiskShrinkContext.fromObject(object.body, long + 1); } return message; }; @@ -86968,21 +93264,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesPerformDiskShrinkRequest.toObject = function toObject(message, options) { + SqlInstancesPerformDiskShrinkRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.PerformDiskShrinkContext.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.PerformDiskShrinkContext.toObject(message.body, options, q + 1); return object; }; @@ -87053,7 +93353,7 @@ function ExternalSyncSelectedObject(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -87086,9 +93386,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ExternalSyncSelectedObject.encode = function encode(message, writer) { + ExternalSyncSelectedObject.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.database != null && Object.hasOwnProperty.call(message, "database")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.database); return writer; @@ -87104,7 +93408,7 @@ * @returns {$protobuf.Writer} Writer */ ExternalSyncSelectedObject.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -87118,9 +93422,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExternalSyncSelectedObject.decode = function decode(reader, length, error) { + ExternalSyncSelectedObject.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ExternalSyncSelectedObject(); while (reader.pos < end) { var tag = reader.uint32(); @@ -87132,7 +93440,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -87163,10 +93471,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ExternalSyncSelectedObject.verify = function verify(message) { + ExternalSyncSelectedObject.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.database != null && message.hasOwnProperty("database")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.database != null && Object.hasOwnProperty.call(message, "database")) if (!$util.isString(message.database)) return "database: string expected"; return null; @@ -87180,9 +93492,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ExternalSyncSelectedObject} ExternalSyncSelectedObject */ - ExternalSyncSelectedObject.fromObject = function fromObject(object) { + ExternalSyncSelectedObject.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ExternalSyncSelectedObject) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ExternalSyncSelectedObject: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ExternalSyncSelectedObject(); if (object.database != null) message.database = String(object.database); @@ -87198,13 +93516,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ExternalSyncSelectedObject.toObject = function toObject(message, options) { + ExternalSyncSelectedObject.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.database = ""; - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) object.database = message.database; return object; }; @@ -87267,7 +93589,7 @@ this.selectedObjects = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -87378,9 +93700,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesVerifyExternalSyncSettingsRequest.encode = function encode(message, writer) { + SqlInstancesVerifyExternalSyncSettingsRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -87392,14 +93718,14 @@ if (message.verifyReplicationOnly != null && Object.hasOwnProperty.call(message, "verifyReplicationOnly")) writer.uint32(/* id 5, wireType 0 =*/40).bool(message.verifyReplicationOnly); if (message.mysqlSyncConfig != null && Object.hasOwnProperty.call(message, "mysqlSyncConfig")) - $root.google.cloud.sql.v1beta4.MySqlSyncConfig.encode(message.mysqlSyncConfig, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.MySqlSyncConfig.encode(message.mysqlSyncConfig, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.migrationType != null && Object.hasOwnProperty.call(message, "migrationType")) writer.uint32(/* id 7, wireType 0 =*/56).int32(message.migrationType); if (message.syncParallelLevel != null && Object.hasOwnProperty.call(message, "syncParallelLevel")) writer.uint32(/* id 8, wireType 0 =*/64).int32(message.syncParallelLevel); if (message.selectedObjects != null && message.selectedObjects.length) for (var i = 0; i < message.selectedObjects.length; ++i) - $root.google.cloud.sql.v1beta4.ExternalSyncSelectedObject.encode(message.selectedObjects[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ExternalSyncSelectedObject.encode(message.selectedObjects[i], writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); return writer; }; @@ -87413,7 +93739,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesVerifyExternalSyncSettingsRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -87427,9 +93753,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesVerifyExternalSyncSettingsRequest.decode = function decode(reader, length, error) { + SqlInstancesVerifyExternalSyncSettingsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -87457,7 +93787,7 @@ break; } case 6: { - message.mysqlSyncConfig = $root.google.cloud.sql.v1beta4.MySqlSyncConfig.decode(reader, reader.uint32()); + message.mysqlSyncConfig = $root.google.cloud.sql.v1beta4.MySqlSyncConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { @@ -87471,11 +93801,11 @@ case 9: { if (!(message.selectedObjects && message.selectedObjects.length)) message.selectedObjects = []; - message.selectedObjects.push($root.google.cloud.sql.v1beta4.ExternalSyncSelectedObject.decode(reader, reader.uint32())); + message.selectedObjects.push($root.google.cloud.sql.v1beta4.ExternalSyncSelectedObject.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -87506,20 +93836,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesVerifyExternalSyncSettingsRequest.verify = function verify(message) { + SqlInstancesVerifyExternalSyncSettingsRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.verifyConnectionOnly != null && message.hasOwnProperty("verifyConnectionOnly")) + if (message.verifyConnectionOnly != null && Object.hasOwnProperty.call(message, "verifyConnectionOnly")) if (typeof message.verifyConnectionOnly !== "boolean") return "verifyConnectionOnly: boolean expected"; - if (message.syncMode != null && message.hasOwnProperty("syncMode")) + if (message.syncMode != null && Object.hasOwnProperty.call(message, "syncMode")) switch (message.syncMode) { default: return "syncMode: enum value expected"; @@ -87528,18 +93862,18 @@ case 2: break; } - if (message.verifyReplicationOnly != null && message.hasOwnProperty("verifyReplicationOnly")) + if (message.verifyReplicationOnly != null && Object.hasOwnProperty.call(message, "verifyReplicationOnly")) if (typeof message.verifyReplicationOnly !== "boolean") return "verifyReplicationOnly: boolean expected"; - if (message.mysqlSyncConfig != null && message.hasOwnProperty("mysqlSyncConfig")) { + if (message.mysqlSyncConfig != null && Object.hasOwnProperty.call(message, "mysqlSyncConfig")) { properties.syncConfig = 1; { - var error = $root.google.cloud.sql.v1beta4.MySqlSyncConfig.verify(message.mysqlSyncConfig); + var error = $root.google.cloud.sql.v1beta4.MySqlSyncConfig.verify(message.mysqlSyncConfig, long + 1); if (error) return "mysqlSyncConfig." + error; } } - if (message.migrationType != null && message.hasOwnProperty("migrationType")) + if (message.migrationType != null && Object.hasOwnProperty.call(message, "migrationType")) switch (message.migrationType) { default: return "migrationType: enum value expected"; @@ -87548,7 +93882,7 @@ case 2: break; } - if (message.syncParallelLevel != null && message.hasOwnProperty("syncParallelLevel")) + if (message.syncParallelLevel != null && Object.hasOwnProperty.call(message, "syncParallelLevel")) switch (message.syncParallelLevel) { default: return "syncParallelLevel: enum value expected"; @@ -87558,11 +93892,11 @@ case 3: break; } - if (message.selectedObjects != null && message.hasOwnProperty("selectedObjects")) { + if (message.selectedObjects != null && Object.hasOwnProperty.call(message, "selectedObjects")) { if (!Array.isArray(message.selectedObjects)) return "selectedObjects: array expected"; for (var i = 0; i < message.selectedObjects.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.ExternalSyncSelectedObject.verify(message.selectedObjects[i]); + var error = $root.google.cloud.sql.v1beta4.ExternalSyncSelectedObject.verify(message.selectedObjects[i], long + 1); if (error) return "selectedObjects." + error; } @@ -87578,9 +93912,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest} SqlInstancesVerifyExternalSyncSettingsRequest */ - SqlInstancesVerifyExternalSyncSettingsRequest.fromObject = function fromObject(object) { + SqlInstancesVerifyExternalSyncSettingsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -87611,9 +93951,9 @@ if (object.verifyReplicationOnly != null) message.verifyReplicationOnly = Boolean(object.verifyReplicationOnly); if (object.mysqlSyncConfig != null) { - if (typeof object.mysqlSyncConfig !== "object") + if (!$util.isObject(object.mysqlSyncConfig)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.mysqlSyncConfig: object expected"); - message.mysqlSyncConfig = $root.google.cloud.sql.v1beta4.MySqlSyncConfig.fromObject(object.mysqlSyncConfig); + message.mysqlSyncConfig = $root.google.cloud.sql.v1beta4.MySqlSyncConfig.fromObject(object.mysqlSyncConfig, long + 1); } switch (object.migrationType) { default: @@ -87664,9 +94004,9 @@ throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.selectedObjects: array expected"); message.selectedObjects = []; for (var i = 0; i < object.selectedObjects.length; ++i) { - if (typeof object.selectedObjects[i] !== "object") + if (!$util.isObject(object.selectedObjects[i])) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.selectedObjects: object expected"); - message.selectedObjects[i] = $root.google.cloud.sql.v1beta4.ExternalSyncSelectedObject.fromObject(object.selectedObjects[i]); + message.selectedObjects[i] = $root.google.cloud.sql.v1beta4.ExternalSyncSelectedObject.fromObject(object.selectedObjects[i], long + 1); } } return message; @@ -87681,9 +94021,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesVerifyExternalSyncSettingsRequest.toObject = function toObject(message, options) { + SqlInstancesVerifyExternalSyncSettingsRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.selectedObjects = []; @@ -87696,29 +94040,29 @@ object.migrationType = options.enums === String ? "MIGRATION_TYPE_UNSPECIFIED" : 0; object.syncParallelLevel = options.enums === String ? "EXTERNAL_SYNC_PARALLEL_LEVEL_UNSPECIFIED" : 0; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.verifyConnectionOnly != null && message.hasOwnProperty("verifyConnectionOnly")) + if (message.verifyConnectionOnly != null && Object.hasOwnProperty.call(message, "verifyConnectionOnly")) object.verifyConnectionOnly = message.verifyConnectionOnly; - if (message.syncMode != null && message.hasOwnProperty("syncMode")) + if (message.syncMode != null && Object.hasOwnProperty.call(message, "syncMode")) object.syncMode = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode[message.syncMode] === undefined ? message.syncMode : $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode[message.syncMode] : message.syncMode; - if (message.verifyReplicationOnly != null && message.hasOwnProperty("verifyReplicationOnly")) + if (message.verifyReplicationOnly != null && Object.hasOwnProperty.call(message, "verifyReplicationOnly")) object.verifyReplicationOnly = message.verifyReplicationOnly; - if (message.mysqlSyncConfig != null && message.hasOwnProperty("mysqlSyncConfig")) { - object.mysqlSyncConfig = $root.google.cloud.sql.v1beta4.MySqlSyncConfig.toObject(message.mysqlSyncConfig, options); + if (message.mysqlSyncConfig != null && Object.hasOwnProperty.call(message, "mysqlSyncConfig")) { + object.mysqlSyncConfig = $root.google.cloud.sql.v1beta4.MySqlSyncConfig.toObject(message.mysqlSyncConfig, options, q + 1); if (options.oneofs) object.syncConfig = "mysqlSyncConfig"; } - if (message.migrationType != null && message.hasOwnProperty("migrationType")) + if (message.migrationType != null && Object.hasOwnProperty.call(message, "migrationType")) object.migrationType = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType[message.migrationType] === undefined ? message.migrationType : $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType[message.migrationType] : message.migrationType; - if (message.syncParallelLevel != null && message.hasOwnProperty("syncParallelLevel")) + if (message.syncParallelLevel != null && Object.hasOwnProperty.call(message, "syncParallelLevel")) object.syncParallelLevel = options.enums === String ? $root.google.cloud.sql.v1beta4.ExternalSyncParallelLevel[message.syncParallelLevel] === undefined ? message.syncParallelLevel : $root.google.cloud.sql.v1beta4.ExternalSyncParallelLevel[message.syncParallelLevel] : message.syncParallelLevel; if (message.selectedObjects && message.selectedObjects.length) { object.selectedObjects = []; for (var j = 0; j < message.selectedObjects.length; ++j) - object.selectedObjects[j] = $root.google.cloud.sql.v1beta4.ExternalSyncSelectedObject.toObject(message.selectedObjects[j], options); + object.selectedObjects[j] = $root.google.cloud.sql.v1beta4.ExternalSyncSelectedObject.toObject(message.selectedObjects[j], options, q + 1); } return object; }; @@ -87811,7 +94155,7 @@ function SqlInstancesStartExternalSyncRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -87914,9 +94258,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesStartExternalSyncRequest.encode = function encode(message, writer) { + SqlInstancesStartExternalSyncRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -87926,7 +94274,7 @@ if (message.skipVerification != null && Object.hasOwnProperty.call(message, "skipVerification")) writer.uint32(/* id 4, wireType 0 =*/32).bool(message.skipVerification); if (message.mysqlSyncConfig != null && Object.hasOwnProperty.call(message, "mysqlSyncConfig")) - $root.google.cloud.sql.v1beta4.MySqlSyncConfig.encode(message.mysqlSyncConfig, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.MySqlSyncConfig.encode(message.mysqlSyncConfig, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.syncParallelLevel != null && Object.hasOwnProperty.call(message, "syncParallelLevel")) writer.uint32(/* id 7, wireType 0 =*/56).int32(message.syncParallelLevel); if (message.migrationType != null && Object.hasOwnProperty.call(message, "migrationType")) @@ -87946,7 +94294,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesStartExternalSyncRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -87960,9 +94308,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesStartExternalSyncRequest.decode = function decode(reader, length, error) { + SqlInstancesStartExternalSyncRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -87986,7 +94338,7 @@ break; } case 6: { - message.mysqlSyncConfig = $root.google.cloud.sql.v1beta4.MySqlSyncConfig.decode(reader, reader.uint32()); + message.mysqlSyncConfig = $root.google.cloud.sql.v1beta4.MySqlSyncConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { @@ -88002,7 +94354,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -88033,17 +94385,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesStartExternalSyncRequest.verify = function verify(message) { + SqlInstancesStartExternalSyncRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.syncMode != null && message.hasOwnProperty("syncMode")) + if (message.syncMode != null && Object.hasOwnProperty.call(message, "syncMode")) switch (message.syncMode) { default: return "syncMode: enum value expected"; @@ -88052,18 +94408,18 @@ case 2: break; } - if (message.skipVerification != null && message.hasOwnProperty("skipVerification")) + if (message.skipVerification != null && Object.hasOwnProperty.call(message, "skipVerification")) if (typeof message.skipVerification !== "boolean") return "skipVerification: boolean expected"; - if (message.mysqlSyncConfig != null && message.hasOwnProperty("mysqlSyncConfig")) { + if (message.mysqlSyncConfig != null && Object.hasOwnProperty.call(message, "mysqlSyncConfig")) { properties.syncConfig = 1; { - var error = $root.google.cloud.sql.v1beta4.MySqlSyncConfig.verify(message.mysqlSyncConfig); + var error = $root.google.cloud.sql.v1beta4.MySqlSyncConfig.verify(message.mysqlSyncConfig, long + 1); if (error) return "mysqlSyncConfig." + error; } } - if (message.syncParallelLevel != null && message.hasOwnProperty("syncParallelLevel")) + if (message.syncParallelLevel != null && Object.hasOwnProperty.call(message, "syncParallelLevel")) switch (message.syncParallelLevel) { default: return "syncParallelLevel: enum value expected"; @@ -88073,7 +94429,7 @@ case 3: break; } - if (message.migrationType != null && message.hasOwnProperty("migrationType")) + if (message.migrationType != null && Object.hasOwnProperty.call(message, "migrationType")) switch (message.migrationType) { default: return "migrationType: enum value expected"; @@ -88082,7 +94438,7 @@ case 2: break; } - if (message.replicaOverwriteEnabled != null && message.hasOwnProperty("replicaOverwriteEnabled")) + if (message.replicaOverwriteEnabled != null && Object.hasOwnProperty.call(message, "replicaOverwriteEnabled")) if (typeof message.replicaOverwriteEnabled !== "boolean") return "replicaOverwriteEnabled: boolean expected"; return null; @@ -88096,9 +94452,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest} SqlInstancesStartExternalSyncRequest */ - SqlInstancesStartExternalSyncRequest.fromObject = function fromObject(object) { + SqlInstancesStartExternalSyncRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -88127,9 +94489,9 @@ if (object.skipVerification != null) message.skipVerification = Boolean(object.skipVerification); if (object.mysqlSyncConfig != null) { - if (typeof object.mysqlSyncConfig !== "object") + if (!$util.isObject(object.mysqlSyncConfig)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest.mysqlSyncConfig: object expected"); - message.mysqlSyncConfig = $root.google.cloud.sql.v1beta4.MySqlSyncConfig.fromObject(object.mysqlSyncConfig); + message.mysqlSyncConfig = $root.google.cloud.sql.v1beta4.MySqlSyncConfig.fromObject(object.mysqlSyncConfig, long + 1); } switch (object.syncParallelLevel) { default: @@ -88189,9 +94551,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesStartExternalSyncRequest.toObject = function toObject(message, options) { + SqlInstancesStartExternalSyncRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; @@ -88202,24 +94568,24 @@ object.migrationType = options.enums === String ? "MIGRATION_TYPE_UNSPECIFIED" : 0; object.replicaOverwriteEnabled = false; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.syncMode != null && message.hasOwnProperty("syncMode")) + if (message.syncMode != null && Object.hasOwnProperty.call(message, "syncMode")) object.syncMode = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode[message.syncMode] === undefined ? message.syncMode : $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode[message.syncMode] : message.syncMode; - if (message.skipVerification != null && message.hasOwnProperty("skipVerification")) + if (message.skipVerification != null && Object.hasOwnProperty.call(message, "skipVerification")) object.skipVerification = message.skipVerification; - if (message.mysqlSyncConfig != null && message.hasOwnProperty("mysqlSyncConfig")) { - object.mysqlSyncConfig = $root.google.cloud.sql.v1beta4.MySqlSyncConfig.toObject(message.mysqlSyncConfig, options); + if (message.mysqlSyncConfig != null && Object.hasOwnProperty.call(message, "mysqlSyncConfig")) { + object.mysqlSyncConfig = $root.google.cloud.sql.v1beta4.MySqlSyncConfig.toObject(message.mysqlSyncConfig, options, q + 1); if (options.oneofs) object.syncConfig = "mysqlSyncConfig"; } - if (message.syncParallelLevel != null && message.hasOwnProperty("syncParallelLevel")) + if (message.syncParallelLevel != null && Object.hasOwnProperty.call(message, "syncParallelLevel")) object.syncParallelLevel = options.enums === String ? $root.google.cloud.sql.v1beta4.ExternalSyncParallelLevel[message.syncParallelLevel] === undefined ? message.syncParallelLevel : $root.google.cloud.sql.v1beta4.ExternalSyncParallelLevel[message.syncParallelLevel] : message.syncParallelLevel; - if (message.migrationType != null && message.hasOwnProperty("migrationType")) + if (message.migrationType != null && Object.hasOwnProperty.call(message, "migrationType")) object.migrationType = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType[message.migrationType] === undefined ? message.migrationType : $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType[message.migrationType] : message.migrationType; - if (message.replicaOverwriteEnabled != null && message.hasOwnProperty("replicaOverwriteEnabled")) + if (message.replicaOverwriteEnabled != null && Object.hasOwnProperty.call(message, "replicaOverwriteEnabled")) object.replicaOverwriteEnabled = message.replicaOverwriteEnabled; return object; }; @@ -88274,7 +94640,7 @@ function SqlInstancesResetReplicaSizeRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -88315,9 +94681,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesResetReplicaSizeRequest.encode = function encode(message, writer) { + SqlInstancesResetReplicaSizeRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -88335,7 +94705,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesResetReplicaSizeRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -88349,9 +94719,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesResetReplicaSizeRequest.decode = function decode(reader, length, error) { + SqlInstancesResetReplicaSizeRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -88367,7 +94741,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -88398,13 +94772,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesResetReplicaSizeRequest.verify = function verify(message) { + SqlInstancesResetReplicaSizeRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -88418,9 +94796,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest} SqlInstancesResetReplicaSizeRequest */ - SqlInstancesResetReplicaSizeRequest.fromObject = function fromObject(object) { + SqlInstancesResetReplicaSizeRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -88438,17 +94822,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesResetReplicaSizeRequest.toObject = function toObject(message, options) { + SqlInstancesResetReplicaSizeRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -88503,7 +94891,7 @@ function SqlOperationsGetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -88544,9 +94932,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlOperationsGetRequest.encode = function encode(message, writer) { + SqlOperationsGetRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.operation); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -88564,7 +94956,7 @@ * @returns {$protobuf.Writer} Writer */ SqlOperationsGetRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -88578,9 +94970,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlOperationsGetRequest.decode = function decode(reader, length, error) { + SqlOperationsGetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlOperationsGetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -88596,7 +94992,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -88627,13 +95023,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlOperationsGetRequest.verify = function verify(message) { + SqlOperationsGetRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.operation != null && message.hasOwnProperty("operation")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) if (!$util.isString(message.operation)) return "operation: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -88647,9 +95047,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlOperationsGetRequest} SqlOperationsGetRequest */ - SqlOperationsGetRequest.fromObject = function fromObject(object) { + SqlOperationsGetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlOperationsGetRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlOperationsGetRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlOperationsGetRequest(); if (object.operation != null) message.operation = String(object.operation); @@ -88667,17 +95073,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlOperationsGetRequest.toObject = function toObject(message, options) { + SqlOperationsGetRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.operation = ""; object.project = ""; } - if (message.operation != null && message.hasOwnProperty("operation")) + if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) object.operation = message.operation; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -88734,7 +95144,7 @@ function SqlOperationsListRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -88791,9 +95201,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlOperationsListRequest.encode = function encode(message, writer) { + SqlOperationsListRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) @@ -88815,7 +95229,7 @@ * @returns {$protobuf.Writer} Writer */ SqlOperationsListRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -88829,9 +95243,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlOperationsListRequest.decode = function decode(reader, length, error) { + SqlOperationsListRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlOperationsListRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -88855,7 +95273,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -88886,19 +95304,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlOperationsListRequest.verify = function verify(message) { + SqlOperationsListRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.maxResults != null && message.hasOwnProperty("maxResults")) + if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) if (!$util.isInteger(message.maxResults)) return "maxResults: integer expected"; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) if (!$util.isString(message.pageToken)) return "pageToken: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -88912,9 +95334,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlOperationsListRequest} SqlOperationsListRequest */ - SqlOperationsListRequest.fromObject = function fromObject(object) { + SqlOperationsListRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlOperationsListRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlOperationsListRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlOperationsListRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -88936,9 +95364,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlOperationsListRequest.toObject = function toObject(message, options) { + SqlOperationsListRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; @@ -88946,13 +95378,13 @@ object.pageToken = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.maxResults != null && message.hasOwnProperty("maxResults")) + if (message.maxResults != null && Object.hasOwnProperty.call(message, "maxResults")) object.maxResults = message.maxResults; - if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) object.pageToken = message.pageToken; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -89007,7 +95439,7 @@ function SqlOperationsCancelRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -89048,9 +95480,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlOperationsCancelRequest.encode = function encode(message, writer) { + SqlOperationsCancelRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.operation); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -89068,7 +95504,7 @@ * @returns {$protobuf.Writer} Writer */ SqlOperationsCancelRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -89082,9 +95518,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlOperationsCancelRequest.decode = function decode(reader, length, error) { + SqlOperationsCancelRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlOperationsCancelRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -89100,7 +95540,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -89131,13 +95571,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlOperationsCancelRequest.verify = function verify(message) { + SqlOperationsCancelRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.operation != null && message.hasOwnProperty("operation")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) if (!$util.isString(message.operation)) return "operation: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -89151,9 +95595,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlOperationsCancelRequest} SqlOperationsCancelRequest */ - SqlOperationsCancelRequest.fromObject = function fromObject(object) { + SqlOperationsCancelRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlOperationsCancelRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlOperationsCancelRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlOperationsCancelRequest(); if (object.operation != null) message.operation = String(object.operation); @@ -89171,17 +95621,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlOperationsCancelRequest.toObject = function toObject(message, options) { + SqlOperationsCancelRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.operation = ""; object.project = ""; } - if (message.operation != null && message.hasOwnProperty("operation")) + if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) object.operation = message.operation; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -89237,7 +95691,7 @@ function SqlInstancesCreateEphemeralCertRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -89286,15 +95740,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesCreateEphemeralCertRequest.encode = function encode(message, writer) { + SqlInstancesCreateEphemeralCertRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -89308,7 +95766,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesCreateEphemeralCertRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -89322,9 +95780,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesCreateEphemeralCertRequest.decode = function decode(reader, length, error) { + SqlInstancesCreateEphemeralCertRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -89340,11 +95802,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -89375,17 +95837,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesCreateEphemeralCertRequest.verify = function verify(message) { + SqlInstancesCreateEphemeralCertRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -89400,18 +95866,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest} SqlInstancesCreateEphemeralCertRequest */ - SqlInstancesCreateEphemeralCertRequest.fromObject = function fromObject(object) { + SqlInstancesCreateEphemeralCertRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest.fromObject(object.body, long + 1); } return message; }; @@ -89425,21 +95897,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesCreateEphemeralCertRequest.toObject = function toObject(message, options) { + SqlInstancesCreateEphemeralCertRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest.toObject(message.body, options, q + 1); return object; }; @@ -89494,7 +95970,7 @@ function SqlSslCertsDeleteRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -89543,9 +96019,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlSslCertsDeleteRequest.encode = function encode(message, writer) { + SqlSslCertsDeleteRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -89565,7 +96045,7 @@ * @returns {$protobuf.Writer} Writer */ SqlSslCertsDeleteRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -89579,9 +96059,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlSslCertsDeleteRequest.decode = function decode(reader, length, error) { + SqlSslCertsDeleteRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -89601,7 +96085,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -89632,16 +96116,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlSslCertsDeleteRequest.verify = function verify(message) { + SqlSslCertsDeleteRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.sha1Fingerprint != null && message.hasOwnProperty("sha1Fingerprint")) + if (message.sha1Fingerprint != null && Object.hasOwnProperty.call(message, "sha1Fingerprint")) if (!$util.isString(message.sha1Fingerprint)) return "sha1Fingerprint: string expected"; return null; @@ -89655,9 +96143,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest} SqlSslCertsDeleteRequest */ - SqlSslCertsDeleteRequest.fromObject = function fromObject(object) { + SqlSslCertsDeleteRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -89677,20 +96171,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlSslCertsDeleteRequest.toObject = function toObject(message, options) { + SqlSslCertsDeleteRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.sha1Fingerprint = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.sha1Fingerprint != null && message.hasOwnProperty("sha1Fingerprint")) + if (message.sha1Fingerprint != null && Object.hasOwnProperty.call(message, "sha1Fingerprint")) object.sha1Fingerprint = message.sha1Fingerprint; return object; }; @@ -89746,7 +96244,7 @@ function SqlSslCertsGetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -89795,9 +96293,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlSslCertsGetRequest.encode = function encode(message, writer) { + SqlSslCertsGetRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -89817,7 +96319,7 @@ * @returns {$protobuf.Writer} Writer */ SqlSslCertsGetRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -89831,9 +96333,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlSslCertsGetRequest.decode = function decode(reader, length, error) { + SqlSslCertsGetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlSslCertsGetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -89853,7 +96359,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -89884,16 +96390,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlSslCertsGetRequest.verify = function verify(message) { + SqlSslCertsGetRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.sha1Fingerprint != null && message.hasOwnProperty("sha1Fingerprint")) + if (message.sha1Fingerprint != null && Object.hasOwnProperty.call(message, "sha1Fingerprint")) if (!$util.isString(message.sha1Fingerprint)) return "sha1Fingerprint: string expected"; return null; @@ -89907,9 +96417,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlSslCertsGetRequest} SqlSslCertsGetRequest */ - SqlSslCertsGetRequest.fromObject = function fromObject(object) { + SqlSslCertsGetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlSslCertsGetRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlSslCertsGetRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlSslCertsGetRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -89929,20 +96445,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlSslCertsGetRequest.toObject = function toObject(message, options) { + SqlSslCertsGetRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.sha1Fingerprint = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.sha1Fingerprint != null && message.hasOwnProperty("sha1Fingerprint")) + if (message.sha1Fingerprint != null && Object.hasOwnProperty.call(message, "sha1Fingerprint")) object.sha1Fingerprint = message.sha1Fingerprint; return object; }; @@ -89998,7 +96518,7 @@ function SqlSslCertsInsertRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -90047,15 +96567,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlSslCertsInsertRequest.encode = function encode(message, writer) { + SqlSslCertsInsertRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.SslCertsInsertRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SslCertsInsertRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -90069,7 +96593,7 @@ * @returns {$protobuf.Writer} Writer */ SqlSslCertsInsertRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -90083,9 +96607,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlSslCertsInsertRequest.decode = function decode(reader, length, error) { + SqlSslCertsInsertRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -90101,11 +96629,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.SslCertsInsertRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.SslCertsInsertRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -90136,17 +96664,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlSslCertsInsertRequest.verify = function verify(message) { + SqlSslCertsInsertRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.SslCertsInsertRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.SslCertsInsertRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -90161,18 +96693,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlSslCertsInsertRequest} SqlSslCertsInsertRequest */ - SqlSslCertsInsertRequest.fromObject = function fromObject(object) { + SqlSslCertsInsertRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlSslCertsInsertRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlSslCertsInsertRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.SslCertsInsertRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.SslCertsInsertRequest.fromObject(object.body, long + 1); } return message; }; @@ -90186,21 +96724,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlSslCertsInsertRequest.toObject = function toObject(message, options) { + SqlSslCertsInsertRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.SslCertsInsertRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.SslCertsInsertRequest.toObject(message.body, options, q + 1); return object; }; @@ -90254,7 +96796,7 @@ function SqlSslCertsListRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -90295,9 +96837,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlSslCertsListRequest.encode = function encode(message, writer) { + SqlSslCertsListRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -90315,7 +96861,7 @@ * @returns {$protobuf.Writer} Writer */ SqlSslCertsListRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -90329,9 +96875,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlSslCertsListRequest.decode = function decode(reader, length, error) { + SqlSslCertsListRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlSslCertsListRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -90347,7 +96897,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -90378,13 +96928,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlSslCertsListRequest.verify = function verify(message) { + SqlSslCertsListRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -90398,9 +96952,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlSslCertsListRequest} SqlSslCertsListRequest */ - SqlSslCertsListRequest.fromObject = function fromObject(object) { + SqlSslCertsListRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlSslCertsListRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlSslCertsListRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlSslCertsListRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -90418,17 +96978,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlSslCertsListRequest.toObject = function toObject(message, options) { + SqlSslCertsListRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -90483,7 +97047,7 @@ function SqlInstancesGetDiskShrinkConfigRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -90524,9 +97088,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesGetDiskShrinkConfigRequest.encode = function encode(message, writer) { + SqlInstancesGetDiskShrinkConfigRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -90544,7 +97112,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesGetDiskShrinkConfigRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -90558,9 +97126,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesGetDiskShrinkConfigRequest.decode = function decode(reader, length, error) { + SqlInstancesGetDiskShrinkConfigRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -90576,7 +97148,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -90607,13 +97179,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesGetDiskShrinkConfigRequest.verify = function verify(message) { + SqlInstancesGetDiskShrinkConfigRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -90627,9 +97203,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest} SqlInstancesGetDiskShrinkConfigRequest */ - SqlInstancesGetDiskShrinkConfigRequest.fromObject = function fromObject(object) { + SqlInstancesGetDiskShrinkConfigRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -90647,17 +97229,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesGetDiskShrinkConfigRequest.toObject = function toObject(message, options) { + SqlInstancesGetDiskShrinkConfigRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -90713,7 +97299,7 @@ function SqlInstancesGetLatestRecoveryTimeRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -90771,15 +97357,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesGetLatestRecoveryTimeRequest.encode = function encode(message, writer) { + SqlInstancesGetLatestRecoveryTimeRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.sourceInstanceDeletionTime != null && Object.hasOwnProperty.call(message, "sourceInstanceDeletionTime")) - $root.google.protobuf.Timestamp.encode(message.sourceInstanceDeletionTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.sourceInstanceDeletionTime, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -90793,7 +97383,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesGetLatestRecoveryTimeRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -90807,9 +97397,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesGetLatestRecoveryTimeRequest.decode = function decode(reader, length, error) { + SqlInstancesGetLatestRecoveryTimeRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -90825,11 +97419,11 @@ break; } case 3: { - message.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -90860,20 +97454,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesGetLatestRecoveryTimeRequest.verify = function verify(message) { + SqlInstancesGetLatestRecoveryTimeRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.sourceInstanceDeletionTime != null && message.hasOwnProperty("sourceInstanceDeletionTime")) { + if (message.sourceInstanceDeletionTime != null && Object.hasOwnProperty.call(message, "sourceInstanceDeletionTime")) { properties._sourceInstanceDeletionTime = 1; { - var error = $root.google.protobuf.Timestamp.verify(message.sourceInstanceDeletionTime); + var error = $root.google.protobuf.Timestamp.verify(message.sourceInstanceDeletionTime, long + 1); if (error) return "sourceInstanceDeletionTime." + error; } @@ -90889,18 +97487,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest} SqlInstancesGetLatestRecoveryTimeRequest */ - SqlInstancesGetLatestRecoveryTimeRequest.fromObject = function fromObject(object) { + SqlInstancesGetLatestRecoveryTimeRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.sourceInstanceDeletionTime != null) { - if (typeof object.sourceInstanceDeletionTime !== "object") + if (!$util.isObject(object.sourceInstanceDeletionTime)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest.sourceInstanceDeletionTime: object expected"); - message.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.fromObject(object.sourceInstanceDeletionTime); + message.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.fromObject(object.sourceInstanceDeletionTime, long + 1); } return message; }; @@ -90914,20 +97518,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesGetLatestRecoveryTimeRequest.toObject = function toObject(message, options) { + SqlInstancesGetLatestRecoveryTimeRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.sourceInstanceDeletionTime != null && message.hasOwnProperty("sourceInstanceDeletionTime")) { - object.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.toObject(message.sourceInstanceDeletionTime, options); + if (message.sourceInstanceDeletionTime != null && Object.hasOwnProperty.call(message, "sourceInstanceDeletionTime")) { + object.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.toObject(message.sourceInstanceDeletionTime, options, q + 1); if (options.oneofs) object._sourceInstanceDeletionTime = "sourceInstanceDeletionTime"; } @@ -90985,7 +97593,7 @@ function SqlInstancesGetLatestRecoveryTimeResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -91034,15 +97642,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesGetLatestRecoveryTimeResponse.encode = function encode(message, writer) { + SqlInstancesGetLatestRecoveryTimeResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.latestRecoveryTime != null && Object.hasOwnProperty.call(message, "latestRecoveryTime")) - $root.google.protobuf.Timestamp.encode(message.latestRecoveryTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.latestRecoveryTime, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.earliestRecoveryTime != null && Object.hasOwnProperty.call(message, "earliestRecoveryTime")) - $root.google.protobuf.Timestamp.encode(message.earliestRecoveryTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.earliestRecoveryTime, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -91056,7 +97668,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesGetLatestRecoveryTimeResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -91070,9 +97682,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesGetLatestRecoveryTimeResponse.decode = function decode(reader, length, error) { + SqlInstancesGetLatestRecoveryTimeResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -91084,15 +97700,15 @@ break; } case 2: { - message.latestRecoveryTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.latestRecoveryTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { - message.earliestRecoveryTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.earliestRecoveryTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -91123,19 +97739,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesGetLatestRecoveryTimeResponse.verify = function verify(message) { + SqlInstancesGetLatestRecoveryTimeResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.latestRecoveryTime != null && message.hasOwnProperty("latestRecoveryTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.latestRecoveryTime); + if (message.latestRecoveryTime != null && Object.hasOwnProperty.call(message, "latestRecoveryTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.latestRecoveryTime, long + 1); if (error) return "latestRecoveryTime." + error; } - if (message.earliestRecoveryTime != null && message.hasOwnProperty("earliestRecoveryTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.earliestRecoveryTime); + if (message.earliestRecoveryTime != null && Object.hasOwnProperty.call(message, "earliestRecoveryTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.earliestRecoveryTime, long + 1); if (error) return "earliestRecoveryTime." + error; } @@ -91150,21 +97770,27 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeResponse} SqlInstancesGetLatestRecoveryTimeResponse */ - SqlInstancesGetLatestRecoveryTimeResponse.fromObject = function fromObject(object) { + SqlInstancesGetLatestRecoveryTimeResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeResponse(); if (object.kind != null) message.kind = String(object.kind); if (object.latestRecoveryTime != null) { - if (typeof object.latestRecoveryTime !== "object") + if (!$util.isObject(object.latestRecoveryTime)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeResponse.latestRecoveryTime: object expected"); - message.latestRecoveryTime = $root.google.protobuf.Timestamp.fromObject(object.latestRecoveryTime); + message.latestRecoveryTime = $root.google.protobuf.Timestamp.fromObject(object.latestRecoveryTime, long + 1); } if (object.earliestRecoveryTime != null) { - if (typeof object.earliestRecoveryTime !== "object") + if (!$util.isObject(object.earliestRecoveryTime)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeResponse.earliestRecoveryTime: object expected"); - message.earliestRecoveryTime = $root.google.protobuf.Timestamp.fromObject(object.earliestRecoveryTime); + message.earliestRecoveryTime = $root.google.protobuf.Timestamp.fromObject(object.earliestRecoveryTime, long + 1); } return message; }; @@ -91178,21 +97804,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesGetLatestRecoveryTimeResponse.toObject = function toObject(message, options) { + SqlInstancesGetLatestRecoveryTimeResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.latestRecoveryTime = null; object.earliestRecoveryTime = null; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.latestRecoveryTime != null && message.hasOwnProperty("latestRecoveryTime")) - object.latestRecoveryTime = $root.google.protobuf.Timestamp.toObject(message.latestRecoveryTime, options); - if (message.earliestRecoveryTime != null && message.hasOwnProperty("earliestRecoveryTime")) - object.earliestRecoveryTime = $root.google.protobuf.Timestamp.toObject(message.earliestRecoveryTime, options); + if (message.latestRecoveryTime != null && Object.hasOwnProperty.call(message, "latestRecoveryTime")) + object.latestRecoveryTime = $root.google.protobuf.Timestamp.toObject(message.latestRecoveryTime, options, q + 1); + if (message.earliestRecoveryTime != null && Object.hasOwnProperty.call(message, "earliestRecoveryTime")) + object.earliestRecoveryTime = $root.google.protobuf.Timestamp.toObject(message.earliestRecoveryTime, options, q + 1); return object; }; @@ -91247,7 +97877,7 @@ function SqlInstancesExecuteSqlRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -91296,15 +97926,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesExecuteSqlRequest.encode = function encode(message, writer) { + SqlInstancesExecuteSqlRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.ExecuteSqlPayload.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ExecuteSqlPayload.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -91318,7 +97952,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesExecuteSqlRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -91332,9 +97966,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesExecuteSqlRequest.decode = function decode(reader, length, error) { + SqlInstancesExecuteSqlRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -91350,11 +97988,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.ExecuteSqlPayload.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.ExecuteSqlPayload.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -91385,17 +98023,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesExecuteSqlRequest.verify = function verify(message) { + SqlInstancesExecuteSqlRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.ExecuteSqlPayload.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.ExecuteSqlPayload.verify(message.body, long + 1); if (error) return "body." + error; } @@ -91410,18 +98052,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest} SqlInstancesExecuteSqlRequest */ - SqlInstancesExecuteSqlRequest.fromObject = function fromObject(object) { + SqlInstancesExecuteSqlRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.ExecuteSqlPayload.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.ExecuteSqlPayload.fromObject(object.body, long + 1); } return message; }; @@ -91435,21 +98083,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesExecuteSqlRequest.toObject = function toObject(message, options) { + SqlInstancesExecuteSqlRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.ExecuteSqlPayload.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.ExecuteSqlPayload.toObject(message.body, options, q + 1); return object; }; @@ -91503,7 +98155,7 @@ function SqlInstancesReleaseSsrsLeaseRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -91544,9 +98196,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesReleaseSsrsLeaseRequest.encode = function encode(message, writer) { + SqlInstancesReleaseSsrsLeaseRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -91564,7 +98220,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesReleaseSsrsLeaseRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -91578,9 +98234,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesReleaseSsrsLeaseRequest.decode = function decode(reader, length, error) { + SqlInstancesReleaseSsrsLeaseRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -91596,7 +98256,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -91627,13 +98287,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesReleaseSsrsLeaseRequest.verify = function verify(message) { + SqlInstancesReleaseSsrsLeaseRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -91647,9 +98311,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest} SqlInstancesReleaseSsrsLeaseRequest */ - SqlInstancesReleaseSsrsLeaseRequest.fromObject = function fromObject(object) { + SqlInstancesReleaseSsrsLeaseRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -91667,17 +98337,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesReleaseSsrsLeaseRequest.toObject = function toObject(message, options) { + SqlInstancesReleaseSsrsLeaseRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -91731,7 +98405,7 @@ function SqlInstancesReleaseSsrsLeaseResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -91764,9 +98438,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesReleaseSsrsLeaseResponse.encode = function encode(message, writer) { + SqlInstancesReleaseSsrsLeaseResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.operationId != null && Object.hasOwnProperty.call(message, "operationId")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.operationId); return writer; @@ -91782,7 +98460,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesReleaseSsrsLeaseResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -91796,9 +98474,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesReleaseSsrsLeaseResponse.decode = function decode(reader, length, error) { + SqlInstancesReleaseSsrsLeaseResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -91810,7 +98492,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -91841,10 +98523,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesReleaseSsrsLeaseResponse.verify = function verify(message) { + SqlInstancesReleaseSsrsLeaseResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.operationId != null && message.hasOwnProperty("operationId")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.operationId != null && Object.hasOwnProperty.call(message, "operationId")) if (!$util.isString(message.operationId)) return "operationId: string expected"; return null; @@ -91858,9 +98544,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseResponse} SqlInstancesReleaseSsrsLeaseResponse */ - SqlInstancesReleaseSsrsLeaseResponse.fromObject = function fromObject(object) { + SqlInstancesReleaseSsrsLeaseResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseResponse(); if (object.operationId != null) message.operationId = String(object.operationId); @@ -91876,13 +98568,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesReleaseSsrsLeaseResponse.toObject = function toObject(message, options) { + SqlInstancesReleaseSsrsLeaseResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.operationId = ""; - if (message.operationId != null && message.hasOwnProperty("operationId")) + if (message.operationId != null && Object.hasOwnProperty.call(message, "operationId")) object.operationId = message.operationId; return object; }; @@ -91942,7 +98638,7 @@ function ExecuteSqlPayload(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -92037,9 +98733,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ExecuteSqlPayload.encode = function encode(message, writer) { + ExecuteSqlPayload.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.user != null && Object.hasOwnProperty.call(message, "user")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.user); if (message.sqlStatement != null && Object.hasOwnProperty.call(message, "sqlStatement")) @@ -92067,7 +98767,7 @@ * @returns {$protobuf.Writer} Writer */ ExecuteSqlPayload.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -92081,9 +98781,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExecuteSqlPayload.decode = function decode(reader, length, error) { + ExecuteSqlPayload.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ExecuteSqlPayload(); while (reader.pos < end) { var tag = reader.uint32(); @@ -92119,7 +98823,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -92150,28 +98854,32 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ExecuteSqlPayload.verify = function verify(message) { + ExecuteSqlPayload.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.user != null && message.hasOwnProperty("user")) + if (message.user != null && Object.hasOwnProperty.call(message, "user")) if (!$util.isString(message.user)) return "user: string expected"; - if (message.sqlStatement != null && message.hasOwnProperty("sqlStatement")) + if (message.sqlStatement != null && Object.hasOwnProperty.call(message, "sqlStatement")) if (!$util.isString(message.sqlStatement)) return "sqlStatement: string expected"; - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) if (!$util.isString(message.database)) return "database: string expected"; - if (message.autoIamAuthn != null && message.hasOwnProperty("autoIamAuthn")) { + if (message.autoIamAuthn != null && Object.hasOwnProperty.call(message, "autoIamAuthn")) { properties.userPassword = 1; if (typeof message.autoIamAuthn !== "boolean") return "autoIamAuthn: boolean expected"; } - if (message.rowLimit != null && message.hasOwnProperty("rowLimit")) + if (message.rowLimit != null && Object.hasOwnProperty.call(message, "rowLimit")) if (!$util.isInteger(message.rowLimit) && !(message.rowLimit && $util.isInteger(message.rowLimit.low) && $util.isInteger(message.rowLimit.high))) return "rowLimit: integer|Long expected"; - if (message.partialResultMode != null && message.hasOwnProperty("partialResultMode")) + if (message.partialResultMode != null && Object.hasOwnProperty.call(message, "partialResultMode")) switch (message.partialResultMode) { default: return "partialResultMode: enum value expected"; @@ -92180,7 +98888,7 @@ case 2: break; } - if (message.application != null && message.hasOwnProperty("application")) + if (message.application != null && Object.hasOwnProperty.call(message, "application")) if (!$util.isString(message.application)) return "application: string expected"; return null; @@ -92194,9 +98902,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ExecuteSqlPayload} ExecuteSqlPayload */ - ExecuteSqlPayload.fromObject = function fromObject(object) { + ExecuteSqlPayload.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ExecuteSqlPayload) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ExecuteSqlPayload: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ExecuteSqlPayload(); if (object.user != null) message.user = String(object.user); @@ -92208,7 +98922,7 @@ message.autoIamAuthn = Boolean(object.autoIamAuthn); if (object.rowLimit != null) if ($util.Long) - (message.rowLimit = $util.Long.fromValue(object.rowLimit)).unsigned = false; + message.rowLimit = $util.Long.fromValue(object.rowLimit, false); else if (typeof object.rowLimit === "string") message.rowLimit = parseInt(object.rowLimit, 10); else if (typeof object.rowLimit === "number") @@ -92249,9 +98963,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ExecuteSqlPayload.toObject = function toObject(message, options) { + ExecuteSqlPayload.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.user = ""; @@ -92259,31 +98977,33 @@ object.database = ""; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.rowLimit = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.rowLimit = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.rowLimit = options.longs === String ? "0" : 0; + object.rowLimit = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.partialResultMode = options.enums === String ? "PARTIAL_RESULT_MODE_UNSPECIFIED" : 0; object.application = ""; } - if (message.user != null && message.hasOwnProperty("user")) + if (message.user != null && Object.hasOwnProperty.call(message, "user")) object.user = message.user; - if (message.sqlStatement != null && message.hasOwnProperty("sqlStatement")) + if (message.sqlStatement != null && Object.hasOwnProperty.call(message, "sqlStatement")) object.sqlStatement = message.sqlStatement; - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) object.database = message.database; - if (message.rowLimit != null && message.hasOwnProperty("rowLimit")) - if (typeof message.rowLimit === "number") + if (message.rowLimit != null && Object.hasOwnProperty.call(message, "rowLimit")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.rowLimit = typeof message.rowLimit === "number" ? BigInt(message.rowLimit) : $util.Long.fromBits(message.rowLimit.low >>> 0, message.rowLimit.high >>> 0, false).toBigInt(); + else if (typeof message.rowLimit === "number") object.rowLimit = options.longs === String ? String(message.rowLimit) : message.rowLimit; else object.rowLimit = options.longs === String ? $util.Long.prototype.toString.call(message.rowLimit) : options.longs === Number ? new $util.LongBits(message.rowLimit.low >>> 0, message.rowLimit.high >>> 0).toNumber() : message.rowLimit; - if (message.autoIamAuthn != null && message.hasOwnProperty("autoIamAuthn")) { + if (message.autoIamAuthn != null && Object.hasOwnProperty.call(message, "autoIamAuthn")) { object.autoIamAuthn = message.autoIamAuthn; if (options.oneofs) object.userPassword = "autoIamAuthn"; } - if (message.partialResultMode != null && message.hasOwnProperty("partialResultMode")) + if (message.partialResultMode != null && Object.hasOwnProperty.call(message, "partialResultMode")) object.partialResultMode = options.enums === String ? $root.google.cloud.sql.v1beta4.ExecuteSqlPayload.PartialResultMode[message.partialResultMode] === undefined ? message.partialResultMode : $root.google.cloud.sql.v1beta4.ExecuteSqlPayload.PartialResultMode[message.partialResultMode] : message.partialResultMode; - if (message.application != null && message.hasOwnProperty("application")) + if (message.application != null && Object.hasOwnProperty.call(message, "application")) object.application = message.application; return object; }; @@ -92358,7 +99078,7 @@ this.results = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -92415,19 +99135,23 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesExecuteSqlResponse.encode = function encode(message, writer) { + SqlInstancesExecuteSqlResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) - $root.google.cloud.sql.v1beta4.Metadata.encode(message.metadata, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.Metadata.encode(message.metadata, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.results != null && message.results.length) for (var i = 0; i < message.results.length; ++i) - $root.google.cloud.sql.v1beta4.QueryResult.encode(message.results[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.QueryResult.encode(message.results[i], writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.status != null && Object.hasOwnProperty.call(message, "status")) - $root.google.rpc.Status.encode(message.status, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.rpc.Status.encode(message.status, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); if (message.messages != null && message.messages.length) for (var i = 0; i < message.messages.length; ++i) - $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.Message.encode(message.messages[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.Message.encode(message.messages[i], writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); return writer; }; @@ -92441,7 +99165,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesExecuteSqlResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -92455,9 +99179,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesExecuteSqlResponse.decode = function decode(reader, length, error) { + SqlInstancesExecuteSqlResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -92467,25 +99195,25 @@ case 9: { if (!(message.messages && message.messages.length)) message.messages = []; - message.messages.push($root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.Message.decode(reader, reader.uint32())); + message.messages.push($root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.Message.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 6: { - message.metadata = $root.google.cloud.sql.v1beta4.Metadata.decode(reader, reader.uint32()); + message.metadata = $root.google.cloud.sql.v1beta4.Metadata.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { if (!(message.results && message.results.length)) message.results = []; - message.results.push($root.google.cloud.sql.v1beta4.QueryResult.decode(reader, reader.uint32())); + message.results.push($root.google.cloud.sql.v1beta4.QueryResult.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 8: { - message.status = $root.google.rpc.Status.decode(reader, reader.uint32()); + message.status = $root.google.rpc.Status.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -92516,34 +99244,38 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesExecuteSqlResponse.verify = function verify(message) { + SqlInstancesExecuteSqlResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.messages != null && message.hasOwnProperty("messages")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.messages != null && Object.hasOwnProperty.call(message, "messages")) { if (!Array.isArray(message.messages)) return "messages: array expected"; for (var i = 0; i < message.messages.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.Message.verify(message.messages[i]); + var error = $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.Message.verify(message.messages[i], long + 1); if (error) return "messages." + error; } } - if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.google.cloud.sql.v1beta4.Metadata.verify(message.metadata); + if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) { + var error = $root.google.cloud.sql.v1beta4.Metadata.verify(message.metadata, long + 1); if (error) return "metadata." + error; } - if (message.results != null && message.hasOwnProperty("results")) { + if (message.results != null && Object.hasOwnProperty.call(message, "results")) { if (!Array.isArray(message.results)) return "results: array expected"; for (var i = 0; i < message.results.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.QueryResult.verify(message.results[i]); + var error = $root.google.cloud.sql.v1beta4.QueryResult.verify(message.results[i], long + 1); if (error) return "results." + error; } } - if (message.status != null && message.hasOwnProperty("status")) { - var error = $root.google.rpc.Status.verify(message.status); + if (message.status != null && Object.hasOwnProperty.call(message, "status")) { + var error = $root.google.rpc.Status.verify(message.status, long + 1); if (error) return "status." + error; } @@ -92558,39 +99290,45 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse} SqlInstancesExecuteSqlResponse */ - SqlInstancesExecuteSqlResponse.fromObject = function fromObject(object) { + SqlInstancesExecuteSqlResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse(); if (object.messages) { if (!Array.isArray(object.messages)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.messages: array expected"); message.messages = []; for (var i = 0; i < object.messages.length; ++i) { - if (typeof object.messages[i] !== "object") + if (!$util.isObject(object.messages[i])) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.messages: object expected"); - message.messages[i] = $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.Message.fromObject(object.messages[i]); + message.messages[i] = $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.Message.fromObject(object.messages[i], long + 1); } } if (object.metadata != null) { - if (typeof object.metadata !== "object") + if (!$util.isObject(object.metadata)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.metadata: object expected"); - message.metadata = $root.google.cloud.sql.v1beta4.Metadata.fromObject(object.metadata); + message.metadata = $root.google.cloud.sql.v1beta4.Metadata.fromObject(object.metadata, long + 1); } if (object.results) { if (!Array.isArray(object.results)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.results: array expected"); message.results = []; for (var i = 0; i < object.results.length; ++i) { - if (typeof object.results[i] !== "object") + if (!$util.isObject(object.results[i])) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.results: object expected"); - message.results[i] = $root.google.cloud.sql.v1beta4.QueryResult.fromObject(object.results[i]); + message.results[i] = $root.google.cloud.sql.v1beta4.QueryResult.fromObject(object.results[i], long + 1); } } if (object.status != null) { - if (typeof object.status !== "object") + if (!$util.isObject(object.status)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.status: object expected"); - message.status = $root.google.rpc.Status.fromObject(object.status); + message.status = $root.google.rpc.Status.fromObject(object.status, long + 1); } return message; }; @@ -92604,9 +99342,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesExecuteSqlResponse.toObject = function toObject(message, options) { + SqlInstancesExecuteSqlResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.results = []; @@ -92616,19 +99358,19 @@ object.metadata = null; object.status = null; } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.google.cloud.sql.v1beta4.Metadata.toObject(message.metadata, options); + if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) + object.metadata = $root.google.cloud.sql.v1beta4.Metadata.toObject(message.metadata, options, q + 1); if (message.results && message.results.length) { object.results = []; for (var j = 0; j < message.results.length; ++j) - object.results[j] = $root.google.cloud.sql.v1beta4.QueryResult.toObject(message.results[j], options); + object.results[j] = $root.google.cloud.sql.v1beta4.QueryResult.toObject(message.results[j], options, q + 1); } - if (message.status != null && message.hasOwnProperty("status")) - object.status = $root.google.rpc.Status.toObject(message.status, options); + if (message.status != null && Object.hasOwnProperty.call(message, "status")) + object.status = $root.google.rpc.Status.toObject(message.status, options, q + 1); if (message.messages && message.messages.length) { object.messages = []; for (var j = 0; j < message.messages.length; ++j) - object.messages[j] = $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.Message.toObject(message.messages[j], options); + object.messages[j] = $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.Message.toObject(message.messages[j], options, q + 1); } return object; }; @@ -92680,7 +99422,7 @@ function Message(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -92736,9 +99478,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Message.encode = function encode(message, writer) { + Message.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.message != null && Object.hasOwnProperty.call(message, "message")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.message); if (message.severity != null && Object.hasOwnProperty.call(message, "severity")) @@ -92756,7 +99502,7 @@ * @returns {$protobuf.Writer} Writer */ Message.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -92770,9 +99516,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Message.decode = function decode(reader, length, error) { + Message.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.Message(); while (reader.pos < end) { var tag = reader.uint32(); @@ -92788,7 +99538,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -92819,16 +99569,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Message.verify = function verify(message) { + Message.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.message != null && message.hasOwnProperty("message")) { + if (message.message != null && Object.hasOwnProperty.call(message, "message")) { properties._message = 1; if (!$util.isString(message.message)) return "message: string expected"; } - if (message.severity != null && message.hasOwnProperty("severity")) { + if (message.severity != null && Object.hasOwnProperty.call(message, "severity")) { properties._severity = 1; if (!$util.isString(message.severity)) return "severity: string expected"; @@ -92844,9 +99598,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.Message} Message */ - Message.fromObject = function fromObject(object) { + Message.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.Message) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.Message: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse.Message(); if (object.message != null) message.message = String(object.message); @@ -92864,16 +99624,20 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Message.toObject = function toObject(message, options) { + Message.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.message != null && message.hasOwnProperty("message")) { + if (message.message != null && Object.hasOwnProperty.call(message, "message")) { object.message = message.message; if (options.oneofs) object._message = "message"; } - if (message.severity != null && message.hasOwnProperty("severity")) { + if (message.severity != null && Object.hasOwnProperty.call(message, "severity")) { object.severity = message.severity; if (options.oneofs) object._severity = "severity"; @@ -92939,7 +99703,7 @@ this.rows = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -93004,21 +99768,25 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - QueryResult.encode = function encode(message, writer) { + QueryResult.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.columns != null && message.columns.length) for (var i = 0; i < message.columns.length; ++i) - $root.google.cloud.sql.v1beta4.Column.encode(message.columns[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.Column.encode(message.columns[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.rows != null && message.rows.length) for (var i = 0; i < message.rows.length; ++i) - $root.google.cloud.sql.v1beta4.Row.encode(message.rows[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.Row.encode(message.rows[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.message != null && Object.hasOwnProperty.call(message, "message")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.message); if (message.partialResult != null && Object.hasOwnProperty.call(message, "partialResult")) writer.uint32(/* id 4, wireType 0 =*/32).bool(message.partialResult); if (message.status != null && Object.hasOwnProperty.call(message, "status")) - $root.google.rpc.Status.encode(message.status, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.rpc.Status.encode(message.status, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); return writer; }; @@ -93032,7 +99800,7 @@ * @returns {$protobuf.Writer} Writer */ QueryResult.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -93046,9 +99814,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - QueryResult.decode = function decode(reader, length, error) { + QueryResult.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.QueryResult(); while (reader.pos < end) { var tag = reader.uint32(); @@ -93058,13 +99830,13 @@ case 1: { if (!(message.columns && message.columns.length)) message.columns = []; - message.columns.push($root.google.cloud.sql.v1beta4.Column.decode(reader, reader.uint32())); + message.columns.push($root.google.cloud.sql.v1beta4.Column.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { if (!(message.rows && message.rows.length)) message.rows = []; - message.rows.push($root.google.cloud.sql.v1beta4.Row.decode(reader, reader.uint32())); + message.rows.push($root.google.cloud.sql.v1beta4.Row.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { @@ -93076,11 +99848,11 @@ break; } case 8: { - message.status = $root.google.rpc.Status.decode(reader, reader.uint32()); + message.status = $root.google.rpc.Status.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -93111,35 +99883,39 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - QueryResult.verify = function verify(message) { + QueryResult.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.columns != null && message.hasOwnProperty("columns")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.columns != null && Object.hasOwnProperty.call(message, "columns")) { if (!Array.isArray(message.columns)) return "columns: array expected"; for (var i = 0; i < message.columns.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.Column.verify(message.columns[i]); + var error = $root.google.cloud.sql.v1beta4.Column.verify(message.columns[i], long + 1); if (error) return "columns." + error; } } - if (message.rows != null && message.hasOwnProperty("rows")) { + if (message.rows != null && Object.hasOwnProperty.call(message, "rows")) { if (!Array.isArray(message.rows)) return "rows: array expected"; for (var i = 0; i < message.rows.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.Row.verify(message.rows[i]); + var error = $root.google.cloud.sql.v1beta4.Row.verify(message.rows[i], long + 1); if (error) return "rows." + error; } } - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) if (!$util.isString(message.message)) return "message: string expected"; - if (message.partialResult != null && message.hasOwnProperty("partialResult")) + if (message.partialResult != null && Object.hasOwnProperty.call(message, "partialResult")) if (typeof message.partialResult !== "boolean") return "partialResult: boolean expected"; - if (message.status != null && message.hasOwnProperty("status")) { - var error = $root.google.rpc.Status.verify(message.status); + if (message.status != null && Object.hasOwnProperty.call(message, "status")) { + var error = $root.google.rpc.Status.verify(message.status, long + 1); if (error) return "status." + error; } @@ -93154,18 +99930,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.QueryResult} QueryResult */ - QueryResult.fromObject = function fromObject(object) { + QueryResult.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.QueryResult) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.QueryResult: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.QueryResult(); if (object.columns) { if (!Array.isArray(object.columns)) throw TypeError(".google.cloud.sql.v1beta4.QueryResult.columns: array expected"); message.columns = []; for (var i = 0; i < object.columns.length; ++i) { - if (typeof object.columns[i] !== "object") + if (!$util.isObject(object.columns[i])) throw TypeError(".google.cloud.sql.v1beta4.QueryResult.columns: object expected"); - message.columns[i] = $root.google.cloud.sql.v1beta4.Column.fromObject(object.columns[i]); + message.columns[i] = $root.google.cloud.sql.v1beta4.Column.fromObject(object.columns[i], long + 1); } } if (object.rows) { @@ -93173,9 +99955,9 @@ throw TypeError(".google.cloud.sql.v1beta4.QueryResult.rows: array expected"); message.rows = []; for (var i = 0; i < object.rows.length; ++i) { - if (typeof object.rows[i] !== "object") + if (!$util.isObject(object.rows[i])) throw TypeError(".google.cloud.sql.v1beta4.QueryResult.rows: object expected"); - message.rows[i] = $root.google.cloud.sql.v1beta4.Row.fromObject(object.rows[i]); + message.rows[i] = $root.google.cloud.sql.v1beta4.Row.fromObject(object.rows[i], long + 1); } } if (object.message != null) @@ -93183,9 +99965,9 @@ if (object.partialResult != null) message.partialResult = Boolean(object.partialResult); if (object.status != null) { - if (typeof object.status !== "object") + if (!$util.isObject(object.status)) throw TypeError(".google.cloud.sql.v1beta4.QueryResult.status: object expected"); - message.status = $root.google.rpc.Status.fromObject(object.status); + message.status = $root.google.rpc.Status.fromObject(object.status, long + 1); } return message; }; @@ -93199,9 +99981,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - QueryResult.toObject = function toObject(message, options) { + QueryResult.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.columns = []; @@ -93215,19 +100001,19 @@ if (message.columns && message.columns.length) { object.columns = []; for (var j = 0; j < message.columns.length; ++j) - object.columns[j] = $root.google.cloud.sql.v1beta4.Column.toObject(message.columns[j], options); + object.columns[j] = $root.google.cloud.sql.v1beta4.Column.toObject(message.columns[j], options, q + 1); } if (message.rows && message.rows.length) { object.rows = []; for (var j = 0; j < message.rows.length; ++j) - object.rows[j] = $root.google.cloud.sql.v1beta4.Row.toObject(message.rows[j], options); + object.rows[j] = $root.google.cloud.sql.v1beta4.Row.toObject(message.rows[j], options, q + 1); } - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) object.message = message.message; - if (message.partialResult != null && message.hasOwnProperty("partialResult")) + if (message.partialResult != null && Object.hasOwnProperty.call(message, "partialResult")) object.partialResult = message.partialResult; - if (message.status != null && message.hasOwnProperty("status")) - object.status = $root.google.rpc.Status.toObject(message.status, options); + if (message.status != null && Object.hasOwnProperty.call(message, "status")) + object.status = $root.google.rpc.Status.toObject(message.status, options, q + 1); return object; }; @@ -93281,7 +100067,7 @@ function Column(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -93322,9 +100108,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Column.encode = function encode(message, writer) { + Column.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.type != null && Object.hasOwnProperty.call(message, "type")) @@ -93342,7 +100132,7 @@ * @returns {$protobuf.Writer} Writer */ Column.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -93356,9 +100146,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Column.decode = function decode(reader, length, error) { + Column.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.Column(); while (reader.pos < end) { var tag = reader.uint32(); @@ -93374,7 +100168,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -93405,13 +100199,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Column.verify = function verify(message) { + Column.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) if (!$util.isString(message.type)) return "type: string expected"; return null; @@ -93425,9 +100223,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.Column} Column */ - Column.fromObject = function fromObject(object) { + Column.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.Column) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.Column: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.Column(); if (object.name != null) message.name = String(object.name); @@ -93445,17 +100249,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Column.toObject = function toObject(message, options) { + Column.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; object.type = ""; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = message.type; return object; }; @@ -93510,7 +100318,7 @@ this.values = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -93543,12 +100351,16 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Row.encode = function encode(message, writer) { + Row.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.values != null && message.values.length) for (var i = 0; i < message.values.length; ++i) - $root.google.cloud.sql.v1beta4.Value.encode(message.values[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.Value.encode(message.values[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -93562,7 +100374,7 @@ * @returns {$protobuf.Writer} Writer */ Row.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -93576,9 +100388,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Row.decode = function decode(reader, length, error) { + Row.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.Row(); while (reader.pos < end) { var tag = reader.uint32(); @@ -93588,11 +100404,11 @@ case 1: { if (!(message.values && message.values.length)) message.values = []; - message.values.push($root.google.cloud.sql.v1beta4.Value.decode(reader, reader.uint32())); + message.values.push($root.google.cloud.sql.v1beta4.Value.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -93623,14 +100439,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Row.verify = function verify(message) { + Row.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.values != null && message.hasOwnProperty("values")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.values != null && Object.hasOwnProperty.call(message, "values")) { if (!Array.isArray(message.values)) return "values: array expected"; for (var i = 0; i < message.values.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.Value.verify(message.values[i]); + var error = $root.google.cloud.sql.v1beta4.Value.verify(message.values[i], long + 1); if (error) return "values." + error; } @@ -93646,18 +100466,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.Row} Row */ - Row.fromObject = function fromObject(object) { + Row.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.Row) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.Row: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.Row(); if (object.values) { if (!Array.isArray(object.values)) throw TypeError(".google.cloud.sql.v1beta4.Row.values: array expected"); message.values = []; for (var i = 0; i < object.values.length; ++i) { - if (typeof object.values[i] !== "object") + if (!$util.isObject(object.values[i])) throw TypeError(".google.cloud.sql.v1beta4.Row.values: object expected"); - message.values[i] = $root.google.cloud.sql.v1beta4.Value.fromObject(object.values[i]); + message.values[i] = $root.google.cloud.sql.v1beta4.Value.fromObject(object.values[i], long + 1); } } return message; @@ -93672,16 +100498,20 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Row.toObject = function toObject(message, options) { + Row.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.values = []; if (message.values && message.values.length) { object.values = []; for (var j = 0; j < message.values.length; ++j) - object.values[j] = $root.google.cloud.sql.v1beta4.Value.toObject(message.values[j], options); + object.values[j] = $root.google.cloud.sql.v1beta4.Value.toObject(message.values[j], options, q + 1); } return object; }; @@ -93736,7 +100566,7 @@ function Value(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -93777,9 +100607,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Value.encode = function encode(message, writer) { + Value.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.value != null && Object.hasOwnProperty.call(message, "value")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.value); if (message.nullValue != null && Object.hasOwnProperty.call(message, "nullValue")) @@ -93797,7 +100631,7 @@ * @returns {$protobuf.Writer} Writer */ Value.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -93811,9 +100645,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Value.decode = function decode(reader, length, error) { + Value.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.Value(); while (reader.pos < end) { var tag = reader.uint32(); @@ -93829,7 +100667,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -93860,13 +100698,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Value.verify = function verify(message) { + Value.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!$util.isString(message.value)) return "value: string expected"; - if (message.nullValue != null && message.hasOwnProperty("nullValue")) + if (message.nullValue != null && Object.hasOwnProperty.call(message, "nullValue")) if (typeof message.nullValue !== "boolean") return "nullValue: boolean expected"; return null; @@ -93880,9 +100722,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.Value} Value */ - Value.fromObject = function fromObject(object) { + Value.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.Value) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.Value: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.Value(); if (object.value != null) message.value = String(object.value); @@ -93900,17 +100748,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Value.toObject = function toObject(message, options) { + Value.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.value = ""; object.nullValue = false; } - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = message.value; - if (message.nullValue != null && message.hasOwnProperty("nullValue")) + if (message.nullValue != null && Object.hasOwnProperty.call(message, "nullValue")) object.nullValue = message.nullValue; return object; }; @@ -93964,7 +100816,7 @@ function Metadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -93997,11 +100849,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Metadata.encode = function encode(message, writer) { + Metadata.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.sqlStatementExecutionTime != null && Object.hasOwnProperty.call(message, "sqlStatementExecutionTime")) - $root.google.protobuf.Duration.encode(message.sqlStatementExecutionTime, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.sqlStatementExecutionTime, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -94015,7 +100871,7 @@ * @returns {$protobuf.Writer} Writer */ Metadata.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -94029,9 +100885,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Metadata.decode = function decode(reader, length, error) { + Metadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.Metadata(); while (reader.pos < end) { var tag = reader.uint32(); @@ -94039,11 +100899,11 @@ break; switch (tag >>> 3) { case 1: { - message.sqlStatementExecutionTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.sqlStatementExecutionTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -94074,11 +100934,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Metadata.verify = function verify(message) { + Metadata.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.sqlStatementExecutionTime != null && message.hasOwnProperty("sqlStatementExecutionTime")) { - var error = $root.google.protobuf.Duration.verify(message.sqlStatementExecutionTime); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.sqlStatementExecutionTime != null && Object.hasOwnProperty.call(message, "sqlStatementExecutionTime")) { + var error = $root.google.protobuf.Duration.verify(message.sqlStatementExecutionTime, long + 1); if (error) return "sqlStatementExecutionTime." + error; } @@ -94093,14 +100957,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.Metadata} Metadata */ - Metadata.fromObject = function fromObject(object) { + Metadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.Metadata) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.Metadata: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.Metadata(); if (object.sqlStatementExecutionTime != null) { - if (typeof object.sqlStatementExecutionTime !== "object") + if (!$util.isObject(object.sqlStatementExecutionTime)) throw TypeError(".google.cloud.sql.v1beta4.Metadata.sqlStatementExecutionTime: object expected"); - message.sqlStatementExecutionTime = $root.google.protobuf.Duration.fromObject(object.sqlStatementExecutionTime); + message.sqlStatementExecutionTime = $root.google.protobuf.Duration.fromObject(object.sqlStatementExecutionTime, long + 1); } return message; }; @@ -94114,14 +100984,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Metadata.toObject = function toObject(message, options) { + Metadata.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.sqlStatementExecutionTime = null; - if (message.sqlStatementExecutionTime != null && message.hasOwnProperty("sqlStatementExecutionTime")) - object.sqlStatementExecutionTime = $root.google.protobuf.Duration.toObject(message.sqlStatementExecutionTime, options); + if (message.sqlStatementExecutionTime != null && Object.hasOwnProperty.call(message, "sqlStatementExecutionTime")) + object.sqlStatementExecutionTime = $root.google.protobuf.Duration.toObject(message.sqlStatementExecutionTime, options, q + 1); return object; }; @@ -94176,7 +101050,7 @@ function SqlInstancesAcquireSsrsLeaseRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -94225,15 +101099,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesAcquireSsrsLeaseRequest.encode = function encode(message, writer) { + SqlInstancesAcquireSsrsLeaseRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -94247,7 +101125,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesAcquireSsrsLeaseRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -94261,9 +101139,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesAcquireSsrsLeaseRequest.decode = function decode(reader, length, error) { + SqlInstancesAcquireSsrsLeaseRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -94279,11 +101161,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -94314,17 +101196,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesAcquireSsrsLeaseRequest.verify = function verify(message) { + SqlInstancesAcquireSsrsLeaseRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -94339,18 +101225,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest} SqlInstancesAcquireSsrsLeaseRequest */ - SqlInstancesAcquireSsrsLeaseRequest.fromObject = function fromObject(object) { + SqlInstancesAcquireSsrsLeaseRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest.fromObject(object.body, long + 1); } return message; }; @@ -94364,21 +101256,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesAcquireSsrsLeaseRequest.toObject = function toObject(message, options) { + SqlInstancesAcquireSsrsLeaseRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest.toObject(message.body, options, q + 1); return object; }; @@ -94433,7 +101329,7 @@ function SqlInstancesPreCheckMajorVersionUpgradeRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -94482,15 +101378,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesPreCheckMajorVersionUpgradeRequest.encode = function encode(message, writer) { + SqlInstancesPreCheckMajorVersionUpgradeRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest.encode(message.body, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest.encode(message.body, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -94504,7 +101404,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesPreCheckMajorVersionUpgradeRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -94518,9 +101418,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesPreCheckMajorVersionUpgradeRequest.decode = function decode(reader, length, error) { + SqlInstancesPreCheckMajorVersionUpgradeRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -94536,11 +101440,11 @@ break; } case 3: { - message.body = $root.google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -94571,17 +101475,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesPreCheckMajorVersionUpgradeRequest.verify = function verify(message) { + SqlInstancesPreCheckMajorVersionUpgradeRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -94596,18 +101504,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest} SqlInstancesPreCheckMajorVersionUpgradeRequest */ - SqlInstancesPreCheckMajorVersionUpgradeRequest.fromObject = function fromObject(object) { + SqlInstancesPreCheckMajorVersionUpgradeRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest.fromObject(object.body, long + 1); } return message; }; @@ -94621,21 +101535,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesPreCheckMajorVersionUpgradeRequest.toObject = function toObject(message, options) { + SqlInstancesPreCheckMajorVersionUpgradeRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest.toObject(message.body, options, q + 1); return object; }; @@ -94688,7 +101606,7 @@ function SqlInstancesAcquireSsrsLeaseResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -94730,9 +101648,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesAcquireSsrsLeaseResponse.encode = function encode(message, writer) { + SqlInstancesAcquireSsrsLeaseResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.operationId != null && Object.hasOwnProperty.call(message, "operationId")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.operationId); return writer; @@ -94748,7 +101670,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesAcquireSsrsLeaseResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -94762,9 +101684,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesAcquireSsrsLeaseResponse.decode = function decode(reader, length, error) { + SqlInstancesAcquireSsrsLeaseResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -94776,7 +101702,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -94807,11 +101733,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesAcquireSsrsLeaseResponse.verify = function verify(message) { + SqlInstancesAcquireSsrsLeaseResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.operationId != null && message.hasOwnProperty("operationId")) { + if (message.operationId != null && Object.hasOwnProperty.call(message, "operationId")) { properties._operationId = 1; if (!$util.isString(message.operationId)) return "operationId: string expected"; @@ -94827,9 +101757,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseResponse} SqlInstancesAcquireSsrsLeaseResponse */ - SqlInstancesAcquireSsrsLeaseResponse.fromObject = function fromObject(object) { + SqlInstancesAcquireSsrsLeaseResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseResponse(); if (object.operationId != null) message.operationId = String(object.operationId); @@ -94845,11 +101781,15 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesAcquireSsrsLeaseResponse.toObject = function toObject(message, options) { + SqlInstancesAcquireSsrsLeaseResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.operationId != null && message.hasOwnProperty("operationId")) { + if (message.operationId != null && Object.hasOwnProperty.call(message, "operationId")) { object.operationId = message.operationId; if (options.oneofs) object._operationId = "operationId"; @@ -94907,7 +101847,7 @@ function SqlInstancesPointInTimeRestoreRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -94948,13 +101888,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesPointInTimeRestoreRequest.encode = function encode(message, writer) { + SqlInstancesPointInTimeRestoreRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); if (message.context != null && Object.hasOwnProperty.call(message, "context")) - $root.google.cloud.sql.v1beta4.PointInTimeRestoreContext.encode(message.context, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.PointInTimeRestoreContext.encode(message.context, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -94968,7 +101912,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesPointInTimeRestoreRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -94982,9 +101926,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesPointInTimeRestoreRequest.decode = function decode(reader, length, error) { + SqlInstancesPointInTimeRestoreRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -94996,11 +101944,11 @@ break; } case 100: { - message.context = $root.google.cloud.sql.v1beta4.PointInTimeRestoreContext.decode(reader, reader.uint32()); + message.context = $root.google.cloud.sql.v1beta4.PointInTimeRestoreContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -95031,14 +101979,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesPointInTimeRestoreRequest.verify = function verify(message) { + SqlInstancesPointInTimeRestoreRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.parent != null && message.hasOwnProperty("parent")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) if (!$util.isString(message.parent)) return "parent: string expected"; - if (message.context != null && message.hasOwnProperty("context")) { - var error = $root.google.cloud.sql.v1beta4.PointInTimeRestoreContext.verify(message.context); + if (message.context != null && Object.hasOwnProperty.call(message, "context")) { + var error = $root.google.cloud.sql.v1beta4.PointInTimeRestoreContext.verify(message.context, long + 1); if (error) return "context." + error; } @@ -95053,16 +102005,22 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest} SqlInstancesPointInTimeRestoreRequest */ - SqlInstancesPointInTimeRestoreRequest.fromObject = function fromObject(object) { + SqlInstancesPointInTimeRestoreRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest(); if (object.parent != null) message.parent = String(object.parent); if (object.context != null) { - if (typeof object.context !== "object") + if (!$util.isObject(object.context)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest.context: object expected"); - message.context = $root.google.cloud.sql.v1beta4.PointInTimeRestoreContext.fromObject(object.context); + message.context = $root.google.cloud.sql.v1beta4.PointInTimeRestoreContext.fromObject(object.context, long + 1); } return message; }; @@ -95076,18 +102034,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesPointInTimeRestoreRequest.toObject = function toObject(message, options) { + SqlInstancesPointInTimeRestoreRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.parent = ""; object.context = null; } - if (message.parent != null && message.hasOwnProperty("parent")) + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) object.parent = message.parent; - if (message.context != null && message.hasOwnProperty("context")) - object.context = $root.google.cloud.sql.v1beta4.PointInTimeRestoreContext.toObject(message.context, options); + if (message.context != null && Object.hasOwnProperty.call(message, "context")) + object.context = $root.google.cloud.sql.v1beta4.PointInTimeRestoreContext.toObject(message.context, options, q + 1); return object; }; @@ -95143,7 +102105,7 @@ function AclEntry(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -95200,13 +102162,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - AclEntry.encode = function encode(message, writer) { + AclEntry.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.value != null && Object.hasOwnProperty.call(message, "value")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.value); if (message.expirationTime != null && Object.hasOwnProperty.call(message, "expirationTime")) - $root.google.protobuf.Timestamp.encode(message.expirationTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.expirationTime, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.name); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -95224,7 +102190,7 @@ * @returns {$protobuf.Writer} Writer */ AclEntry.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -95238,9 +102204,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AclEntry.decode = function decode(reader, length, error) { + AclEntry.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.AclEntry(); while (reader.pos < end) { var tag = reader.uint32(); @@ -95252,7 +102222,7 @@ break; } case 2: { - message.expirationTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.expirationTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -95264,7 +102234,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -95295,21 +102265,25 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - AclEntry.verify = function verify(message) { + AclEntry.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!$util.isString(message.value)) return "value: string expected"; - if (message.expirationTime != null && message.hasOwnProperty("expirationTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.expirationTime); + if (message.expirationTime != null && Object.hasOwnProperty.call(message, "expirationTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.expirationTime, long + 1); if (error) return "expirationTime." + error; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -95323,16 +102297,22 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.AclEntry} AclEntry */ - AclEntry.fromObject = function fromObject(object) { + AclEntry.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.AclEntry) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.AclEntry: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.AclEntry(); if (object.value != null) message.value = String(object.value); if (object.expirationTime != null) { - if (typeof object.expirationTime !== "object") + if (!$util.isObject(object.expirationTime)) throw TypeError(".google.cloud.sql.v1beta4.AclEntry.expirationTime: object expected"); - message.expirationTime = $root.google.protobuf.Timestamp.fromObject(object.expirationTime); + message.expirationTime = $root.google.protobuf.Timestamp.fromObject(object.expirationTime, long + 1); } if (object.name != null) message.name = String(object.name); @@ -95350,9 +102330,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - AclEntry.toObject = function toObject(message, options) { + AclEntry.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.value = ""; @@ -95360,13 +102344,13 @@ object.name = ""; object.kind = ""; } - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = message.value; - if (message.expirationTime != null && message.hasOwnProperty("expirationTime")) - object.expirationTime = $root.google.protobuf.Timestamp.toObject(message.expirationTime, options); - if (message.name != null && message.hasOwnProperty("name")) + if (message.expirationTime != null && Object.hasOwnProperty.call(message, "expirationTime")) + object.expirationTime = $root.google.protobuf.Timestamp.toObject(message.expirationTime, options, q + 1); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -95422,7 +102406,7 @@ function ApiWarning(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -95471,9 +102455,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ApiWarning.encode = function encode(message, writer) { + ApiWarning.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.code != null && Object.hasOwnProperty.call(message, "code")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.code); if (message.message != null && Object.hasOwnProperty.call(message, "message")) @@ -95493,7 +102481,7 @@ * @returns {$protobuf.Writer} Writer */ ApiWarning.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -95507,9 +102495,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ApiWarning.decode = function decode(reader, length, error) { + ApiWarning.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ApiWarning(); while (reader.pos < end) { var tag = reader.uint32(); @@ -95529,7 +102521,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -95560,10 +102552,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ApiWarning.verify = function verify(message) { + ApiWarning.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.code != null && message.hasOwnProperty("code")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.code != null && Object.hasOwnProperty.call(message, "code")) switch (message.code) { default: return "code: enum value expected"; @@ -95574,10 +102570,10 @@ case 4: break; } - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) if (!$util.isString(message.message)) return "message: string expected"; - if (message.region != null && message.hasOwnProperty("region")) + if (message.region != null && Object.hasOwnProperty.call(message, "region")) if (!$util.isString(message.region)) return "region: string expected"; return null; @@ -95591,9 +102587,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ApiWarning} ApiWarning */ - ApiWarning.fromObject = function fromObject(object) { + ApiWarning.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ApiWarning) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ApiWarning: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ApiWarning(); switch (object.code) { default: @@ -95639,20 +102641,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ApiWarning.toObject = function toObject(message, options) { + ApiWarning.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.code = options.enums === String ? "SQL_API_WARNING_CODE_UNSPECIFIED" : 0; object.message = ""; object.region = ""; } - if (message.code != null && message.hasOwnProperty("code")) + if (message.code != null && Object.hasOwnProperty.call(message, "code")) object.code = options.enums === String ? $root.google.cloud.sql.v1beta4.ApiWarning.SqlApiWarningCode[message.code] === undefined ? message.code : $root.google.cloud.sql.v1beta4.ApiWarning.SqlApiWarningCode[message.code] : message.code; - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) object.message = message.message; - if (message.region != null && message.hasOwnProperty("region")) + if (message.region != null && Object.hasOwnProperty.call(message, "region")) object.region = message.region; return object; }; @@ -95727,7 +102733,7 @@ function BackupRetentionSettings(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -95768,13 +102774,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BackupRetentionSettings.encode = function encode(message, writer) { + BackupRetentionSettings.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.retentionUnit != null && Object.hasOwnProperty.call(message, "retentionUnit")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.retentionUnit); if (message.retainedBackups != null && Object.hasOwnProperty.call(message, "retainedBackups")) - $root.google.protobuf.Int32Value.encode(message.retainedBackups, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.retainedBackups, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -95788,7 +102798,7 @@ * @returns {$protobuf.Writer} Writer */ BackupRetentionSettings.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -95802,9 +102812,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BackupRetentionSettings.decode = function decode(reader, length, error) { + BackupRetentionSettings.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.BackupRetentionSettings(); while (reader.pos < end) { var tag = reader.uint32(); @@ -95816,11 +102830,11 @@ break; } case 2: { - message.retainedBackups = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.retainedBackups = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -95851,10 +102865,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BackupRetentionSettings.verify = function verify(message) { + BackupRetentionSettings.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.retentionUnit != null && message.hasOwnProperty("retentionUnit")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.retentionUnit != null && Object.hasOwnProperty.call(message, "retentionUnit")) switch (message.retentionUnit) { default: return "retentionUnit: enum value expected"; @@ -95862,8 +102880,8 @@ case 1: break; } - if (message.retainedBackups != null && message.hasOwnProperty("retainedBackups")) { - var error = $root.google.protobuf.Int32Value.verify(message.retainedBackups); + if (message.retainedBackups != null && Object.hasOwnProperty.call(message, "retainedBackups")) { + var error = $root.google.protobuf.Int32Value.verify(message.retainedBackups, long + 1); if (error) return "retainedBackups." + error; } @@ -95878,9 +102896,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.BackupRetentionSettings} BackupRetentionSettings */ - BackupRetentionSettings.fromObject = function fromObject(object) { + BackupRetentionSettings.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.BackupRetentionSettings) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.BackupRetentionSettings: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.BackupRetentionSettings(); switch (object.retentionUnit) { default: @@ -95899,9 +102923,9 @@ break; } if (object.retainedBackups != null) { - if (typeof object.retainedBackups !== "object") + if (!$util.isObject(object.retainedBackups)) throw TypeError(".google.cloud.sql.v1beta4.BackupRetentionSettings.retainedBackups: object expected"); - message.retainedBackups = $root.google.protobuf.Int32Value.fromObject(object.retainedBackups); + message.retainedBackups = $root.google.protobuf.Int32Value.fromObject(object.retainedBackups, long + 1); } return message; }; @@ -95915,18 +102939,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BackupRetentionSettings.toObject = function toObject(message, options) { + BackupRetentionSettings.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.retentionUnit = options.enums === String ? "RETENTION_UNIT_UNSPECIFIED" : 0; object.retainedBackups = null; } - if (message.retentionUnit != null && message.hasOwnProperty("retentionUnit")) + if (message.retentionUnit != null && Object.hasOwnProperty.call(message, "retentionUnit")) object.retentionUnit = options.enums === String ? $root.google.cloud.sql.v1beta4.BackupRetentionSettings.RetentionUnit[message.retentionUnit] === undefined ? message.retentionUnit : $root.google.cloud.sql.v1beta4.BackupRetentionSettings.RetentionUnit[message.retentionUnit] : message.retentionUnit; - if (message.retainedBackups != null && message.hasOwnProperty("retainedBackups")) - object.retainedBackups = $root.google.protobuf.Int32Value.toObject(message.retainedBackups, options); + if (message.retainedBackups != null && Object.hasOwnProperty.call(message, "retainedBackups")) + object.retainedBackups = $root.google.protobuf.Int32Value.toObject(message.retainedBackups, options, q + 1); return object; }; @@ -96003,7 +103031,7 @@ function BackupConfiguration(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -96131,27 +103159,31 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BackupConfiguration.encode = function encode(message, writer) { + BackupConfiguration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.startTime); if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) - $root.google.protobuf.BoolValue.encode(message.enabled, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.enabled, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.kind); if (message.binaryLogEnabled != null && Object.hasOwnProperty.call(message, "binaryLogEnabled")) - $root.google.protobuf.BoolValue.encode(message.binaryLogEnabled, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.binaryLogEnabled, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.replicationLogArchivingEnabled != null && Object.hasOwnProperty.call(message, "replicationLogArchivingEnabled")) - $root.google.protobuf.BoolValue.encode(message.replicationLogArchivingEnabled, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.replicationLogArchivingEnabled, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.location != null && Object.hasOwnProperty.call(message, "location")) writer.uint32(/* id 6, wireType 2 =*/50).string(message.location); if (message.pointInTimeRecoveryEnabled != null && Object.hasOwnProperty.call(message, "pointInTimeRecoveryEnabled")) - $root.google.protobuf.BoolValue.encode(message.pointInTimeRecoveryEnabled, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.pointInTimeRecoveryEnabled, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.transactionLogRetentionDays != null && Object.hasOwnProperty.call(message, "transactionLogRetentionDays")) - $root.google.protobuf.Int32Value.encode(message.transactionLogRetentionDays, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.transactionLogRetentionDays, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); if (message.backupRetentionSettings != null && Object.hasOwnProperty.call(message, "backupRetentionSettings")) - $root.google.cloud.sql.v1beta4.BackupRetentionSettings.encode(message.backupRetentionSettings, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.BackupRetentionSettings.encode(message.backupRetentionSettings, writer.uint32(/* id 10, wireType 2 =*/82).fork(), q + 1).ldelim(); if (message.transactionalLogStorageState != null && Object.hasOwnProperty.call(message, "transactionalLogStorageState")) writer.uint32(/* id 11, wireType 0 =*/88).int32(message.transactionalLogStorageState); if (message.backupTier != null && Object.hasOwnProperty.call(message, "backupTier")) @@ -96169,7 +103201,7 @@ * @returns {$protobuf.Writer} Writer */ BackupConfiguration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -96183,9 +103215,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BackupConfiguration.decode = function decode(reader, length, error) { + BackupConfiguration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.BackupConfiguration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -96197,7 +103233,7 @@ break; } case 2: { - message.enabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.enabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -96205,11 +103241,11 @@ break; } case 4: { - message.binaryLogEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.binaryLogEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.replicationLogArchivingEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.replicationLogArchivingEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { @@ -96217,15 +103253,15 @@ break; } case 7: { - message.pointInTimeRecoveryEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.pointInTimeRecoveryEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { - message.transactionLogRetentionDays = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.transactionLogRetentionDays = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { - message.backupRetentionSettings = $root.google.cloud.sql.v1beta4.BackupRetentionSettings.decode(reader, reader.uint32()); + message.backupRetentionSettings = $root.google.cloud.sql.v1beta4.BackupRetentionSettings.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { @@ -96237,7 +103273,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -96268,50 +103304,54 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BackupConfiguration.verify = function verify(message) { + BackupConfiguration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.startTime != null && message.hasOwnProperty("startTime")) + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) if (!$util.isString(message.startTime)) return "startTime: string expected"; - if (message.enabled != null && message.hasOwnProperty("enabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.enabled); + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.enabled, long + 1); if (error) return "enabled." + error; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.binaryLogEnabled != null && message.hasOwnProperty("binaryLogEnabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.binaryLogEnabled); + if (message.binaryLogEnabled != null && Object.hasOwnProperty.call(message, "binaryLogEnabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.binaryLogEnabled, long + 1); if (error) return "binaryLogEnabled." + error; } - if (message.replicationLogArchivingEnabled != null && message.hasOwnProperty("replicationLogArchivingEnabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.replicationLogArchivingEnabled); + if (message.replicationLogArchivingEnabled != null && Object.hasOwnProperty.call(message, "replicationLogArchivingEnabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.replicationLogArchivingEnabled, long + 1); if (error) return "replicationLogArchivingEnabled." + error; } - if (message.location != null && message.hasOwnProperty("location")) + if (message.location != null && Object.hasOwnProperty.call(message, "location")) if (!$util.isString(message.location)) return "location: string expected"; - if (message.pointInTimeRecoveryEnabled != null && message.hasOwnProperty("pointInTimeRecoveryEnabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.pointInTimeRecoveryEnabled); + if (message.pointInTimeRecoveryEnabled != null && Object.hasOwnProperty.call(message, "pointInTimeRecoveryEnabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.pointInTimeRecoveryEnabled, long + 1); if (error) return "pointInTimeRecoveryEnabled." + error; } - if (message.transactionLogRetentionDays != null && message.hasOwnProperty("transactionLogRetentionDays")) { - var error = $root.google.protobuf.Int32Value.verify(message.transactionLogRetentionDays); + if (message.transactionLogRetentionDays != null && Object.hasOwnProperty.call(message, "transactionLogRetentionDays")) { + var error = $root.google.protobuf.Int32Value.verify(message.transactionLogRetentionDays, long + 1); if (error) return "transactionLogRetentionDays." + error; } - if (message.backupRetentionSettings != null && message.hasOwnProperty("backupRetentionSettings")) { - var error = $root.google.cloud.sql.v1beta4.BackupRetentionSettings.verify(message.backupRetentionSettings); + if (message.backupRetentionSettings != null && Object.hasOwnProperty.call(message, "backupRetentionSettings")) { + var error = $root.google.cloud.sql.v1beta4.BackupRetentionSettings.verify(message.backupRetentionSettings, long + 1); if (error) return "backupRetentionSettings." + error; } - if (message.transactionalLogStorageState != null && message.hasOwnProperty("transactionalLogStorageState")) { + if (message.transactionalLogStorageState != null && Object.hasOwnProperty.call(message, "transactionalLogStorageState")) { properties._transactionalLogStorageState = 1; switch (message.transactionalLogStorageState) { default: @@ -96324,7 +103364,7 @@ break; } } - if (message.backupTier != null && message.hasOwnProperty("backupTier")) { + if (message.backupTier != null && Object.hasOwnProperty.call(message, "backupTier")) { properties._backupTier = 1; switch (message.backupTier) { default: @@ -96347,45 +103387,51 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.BackupConfiguration} BackupConfiguration */ - BackupConfiguration.fromObject = function fromObject(object) { + BackupConfiguration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.BackupConfiguration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.BackupConfiguration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.BackupConfiguration(); if (object.startTime != null) message.startTime = String(object.startTime); if (object.enabled != null) { - if (typeof object.enabled !== "object") + if (!$util.isObject(object.enabled)) throw TypeError(".google.cloud.sql.v1beta4.BackupConfiguration.enabled: object expected"); - message.enabled = $root.google.protobuf.BoolValue.fromObject(object.enabled); + message.enabled = $root.google.protobuf.BoolValue.fromObject(object.enabled, long + 1); } if (object.kind != null) message.kind = String(object.kind); if (object.binaryLogEnabled != null) { - if (typeof object.binaryLogEnabled !== "object") + if (!$util.isObject(object.binaryLogEnabled)) throw TypeError(".google.cloud.sql.v1beta4.BackupConfiguration.binaryLogEnabled: object expected"); - message.binaryLogEnabled = $root.google.protobuf.BoolValue.fromObject(object.binaryLogEnabled); + message.binaryLogEnabled = $root.google.protobuf.BoolValue.fromObject(object.binaryLogEnabled, long + 1); } if (object.replicationLogArchivingEnabled != null) { - if (typeof object.replicationLogArchivingEnabled !== "object") + if (!$util.isObject(object.replicationLogArchivingEnabled)) throw TypeError(".google.cloud.sql.v1beta4.BackupConfiguration.replicationLogArchivingEnabled: object expected"); - message.replicationLogArchivingEnabled = $root.google.protobuf.BoolValue.fromObject(object.replicationLogArchivingEnabled); + message.replicationLogArchivingEnabled = $root.google.protobuf.BoolValue.fromObject(object.replicationLogArchivingEnabled, long + 1); } if (object.location != null) message.location = String(object.location); if (object.pointInTimeRecoveryEnabled != null) { - if (typeof object.pointInTimeRecoveryEnabled !== "object") + if (!$util.isObject(object.pointInTimeRecoveryEnabled)) throw TypeError(".google.cloud.sql.v1beta4.BackupConfiguration.pointInTimeRecoveryEnabled: object expected"); - message.pointInTimeRecoveryEnabled = $root.google.protobuf.BoolValue.fromObject(object.pointInTimeRecoveryEnabled); + message.pointInTimeRecoveryEnabled = $root.google.protobuf.BoolValue.fromObject(object.pointInTimeRecoveryEnabled, long + 1); } if (object.transactionLogRetentionDays != null) { - if (typeof object.transactionLogRetentionDays !== "object") + if (!$util.isObject(object.transactionLogRetentionDays)) throw TypeError(".google.cloud.sql.v1beta4.BackupConfiguration.transactionLogRetentionDays: object expected"); - message.transactionLogRetentionDays = $root.google.protobuf.Int32Value.fromObject(object.transactionLogRetentionDays); + message.transactionLogRetentionDays = $root.google.protobuf.Int32Value.fromObject(object.transactionLogRetentionDays, long + 1); } if (object.backupRetentionSettings != null) { - if (typeof object.backupRetentionSettings !== "object") + if (!$util.isObject(object.backupRetentionSettings)) throw TypeError(".google.cloud.sql.v1beta4.BackupConfiguration.backupRetentionSettings: object expected"); - message.backupRetentionSettings = $root.google.cloud.sql.v1beta4.BackupRetentionSettings.fromObject(object.backupRetentionSettings); + message.backupRetentionSettings = $root.google.cloud.sql.v1beta4.BackupRetentionSettings.fromObject(object.backupRetentionSettings, long + 1); } switch (object.transactionalLogStorageState) { default: @@ -96451,9 +103497,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BackupConfiguration.toObject = function toObject(message, options) { + BackupConfiguration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.startTime = ""; @@ -96466,30 +103516,30 @@ object.transactionLogRetentionDays = null; object.backupRetentionSettings = null; } - if (message.startTime != null && message.hasOwnProperty("startTime")) + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) object.startTime = message.startTime; - if (message.enabled != null && message.hasOwnProperty("enabled")) - object.enabled = $root.google.protobuf.BoolValue.toObject(message.enabled, options); - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) + object.enabled = $root.google.protobuf.BoolValue.toObject(message.enabled, options, q + 1); + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.binaryLogEnabled != null && message.hasOwnProperty("binaryLogEnabled")) - object.binaryLogEnabled = $root.google.protobuf.BoolValue.toObject(message.binaryLogEnabled, options); - if (message.replicationLogArchivingEnabled != null && message.hasOwnProperty("replicationLogArchivingEnabled")) - object.replicationLogArchivingEnabled = $root.google.protobuf.BoolValue.toObject(message.replicationLogArchivingEnabled, options); - if (message.location != null && message.hasOwnProperty("location")) + if (message.binaryLogEnabled != null && Object.hasOwnProperty.call(message, "binaryLogEnabled")) + object.binaryLogEnabled = $root.google.protobuf.BoolValue.toObject(message.binaryLogEnabled, options, q + 1); + if (message.replicationLogArchivingEnabled != null && Object.hasOwnProperty.call(message, "replicationLogArchivingEnabled")) + object.replicationLogArchivingEnabled = $root.google.protobuf.BoolValue.toObject(message.replicationLogArchivingEnabled, options, q + 1); + if (message.location != null && Object.hasOwnProperty.call(message, "location")) object.location = message.location; - if (message.pointInTimeRecoveryEnabled != null && message.hasOwnProperty("pointInTimeRecoveryEnabled")) - object.pointInTimeRecoveryEnabled = $root.google.protobuf.BoolValue.toObject(message.pointInTimeRecoveryEnabled, options); - if (message.transactionLogRetentionDays != null && message.hasOwnProperty("transactionLogRetentionDays")) - object.transactionLogRetentionDays = $root.google.protobuf.Int32Value.toObject(message.transactionLogRetentionDays, options); - if (message.backupRetentionSettings != null && message.hasOwnProperty("backupRetentionSettings")) - object.backupRetentionSettings = $root.google.cloud.sql.v1beta4.BackupRetentionSettings.toObject(message.backupRetentionSettings, options); - if (message.transactionalLogStorageState != null && message.hasOwnProperty("transactionalLogStorageState")) { + if (message.pointInTimeRecoveryEnabled != null && Object.hasOwnProperty.call(message, "pointInTimeRecoveryEnabled")) + object.pointInTimeRecoveryEnabled = $root.google.protobuf.BoolValue.toObject(message.pointInTimeRecoveryEnabled, options, q + 1); + if (message.transactionLogRetentionDays != null && Object.hasOwnProperty.call(message, "transactionLogRetentionDays")) + object.transactionLogRetentionDays = $root.google.protobuf.Int32Value.toObject(message.transactionLogRetentionDays, options, q + 1); + if (message.backupRetentionSettings != null && Object.hasOwnProperty.call(message, "backupRetentionSettings")) + object.backupRetentionSettings = $root.google.cloud.sql.v1beta4.BackupRetentionSettings.toObject(message.backupRetentionSettings, options, q + 1); + if (message.transactionalLogStorageState != null && Object.hasOwnProperty.call(message, "transactionalLogStorageState")) { object.transactionalLogStorageState = options.enums === String ? $root.google.cloud.sql.v1beta4.BackupConfiguration.TransactionalLogStorageState[message.transactionalLogStorageState] === undefined ? message.transactionalLogStorageState : $root.google.cloud.sql.v1beta4.BackupConfiguration.TransactionalLogStorageState[message.transactionalLogStorageState] : message.transactionalLogStorageState; if (options.oneofs) object._transactionalLogStorageState = "transactionalLogStorageState"; } - if (message.backupTier != null && message.hasOwnProperty("backupTier")) { + if (message.backupTier != null && Object.hasOwnProperty.call(message, "backupTier")) { object.backupTier = options.enums === String ? $root.google.cloud.sql.v1beta4.BackupConfiguration.BackupTier[message.backupTier] === undefined ? message.backupTier : $root.google.cloud.sql.v1beta4.BackupConfiguration.BackupTier[message.backupTier] : message.backupTier; if (options.oneofs) object._backupTier = "backupTier"; @@ -96602,7 +103652,7 @@ function BackupRun(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -96788,29 +103838,33 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BackupRun.encode = function encode(message, writer) { + BackupRun.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.status != null && Object.hasOwnProperty.call(message, "status")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.status); if (message.enqueuedTime != null && Object.hasOwnProperty.call(message, "enqueuedTime")) - $root.google.protobuf.Timestamp.encode(message.enqueuedTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.enqueuedTime, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.id != null && Object.hasOwnProperty.call(message, "id")) writer.uint32(/* id 4, wireType 0 =*/32).int64(message.id); if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) - $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) - $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.error != null && Object.hasOwnProperty.call(message, "error")) - $root.google.cloud.sql.v1beta4.OperationError.encode(message.error, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.OperationError.encode(message.error, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.type != null && Object.hasOwnProperty.call(message, "type")) writer.uint32(/* id 8, wireType 0 =*/64).int32(message.type); if (message.description != null && Object.hasOwnProperty.call(message, "description")) writer.uint32(/* id 9, wireType 2 =*/74).string(message.description); if (message.windowStartTime != null && Object.hasOwnProperty.call(message, "windowStartTime")) - $root.google.protobuf.Timestamp.encode(message.windowStartTime, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.windowStartTime, writer.uint32(/* id 10, wireType 2 =*/82).fork(), q + 1).ldelim(); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 11, wireType 2 =*/90).string(message.instance); if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) @@ -96820,9 +103874,9 @@ if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) writer.uint32(/* id 15, wireType 0 =*/120).int32(message.databaseVersion); if (message.diskEncryptionConfiguration != null && Object.hasOwnProperty.call(message, "diskEncryptionConfiguration")) - $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.encode(message.diskEncryptionConfiguration, writer.uint32(/* id 16, wireType 2 =*/130).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.encode(message.diskEncryptionConfiguration, writer.uint32(/* id 16, wireType 2 =*/130).fork(), q + 1).ldelim(); if (message.diskEncryptionStatus != null && Object.hasOwnProperty.call(message, "diskEncryptionStatus")) - $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.encode(message.diskEncryptionStatus, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.encode(message.diskEncryptionStatus, writer.uint32(/* id 17, wireType 2 =*/138).fork(), q + 1).ldelim(); if (message.backupKind != null && Object.hasOwnProperty.call(message, "backupKind")) writer.uint32(/* id 19, wireType 0 =*/152).int32(message.backupKind); if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) @@ -96842,7 +103896,7 @@ * @returns {$protobuf.Writer} Writer */ BackupRun.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -96856,9 +103910,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BackupRun.decode = function decode(reader, length, error) { + BackupRun.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.BackupRun(); while (reader.pos < end) { var tag = reader.uint32(); @@ -96874,7 +103932,7 @@ break; } case 3: { - message.enqueuedTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.enqueuedTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { @@ -96882,15 +103940,15 @@ break; } case 5: { - message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { - message.error = $root.google.cloud.sql.v1beta4.OperationError.decode(reader, reader.uint32()); + message.error = $root.google.cloud.sql.v1beta4.OperationError.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { @@ -96902,7 +103960,7 @@ break; } case 10: { - message.windowStartTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.windowStartTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { @@ -96922,11 +103980,11 @@ break; } case 16: { - message.diskEncryptionConfiguration = $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.decode(reader, reader.uint32()); + message.diskEncryptionConfiguration = $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 17: { - message.diskEncryptionStatus = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.decode(reader, reader.uint32()); + message.diskEncryptionStatus = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.decode(reader, reader.uint32(), undefined, long + 1); break; } case 19: { @@ -96942,7 +104000,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -96973,14 +104031,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BackupRun.verify = function verify(message) { + BackupRun.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.status != null && message.hasOwnProperty("status")) + if (message.status != null && Object.hasOwnProperty.call(message, "status")) switch (message.status) { default: return "status: enum value expected"; @@ -96996,30 +104058,30 @@ case 9: break; } - if (message.enqueuedTime != null && message.hasOwnProperty("enqueuedTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.enqueuedTime); + if (message.enqueuedTime != null && Object.hasOwnProperty.call(message, "enqueuedTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.enqueuedTime, long + 1); if (error) return "enqueuedTime." + error; } - if (message.id != null && message.hasOwnProperty("id")) + if (message.id != null && Object.hasOwnProperty.call(message, "id")) if (!$util.isInteger(message.id) && !(message.id && $util.isInteger(message.id.low) && $util.isInteger(message.id.high))) return "id: integer|Long expected"; - if (message.startTime != null && message.hasOwnProperty("startTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.startTime); + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.startTime, long + 1); if (error) return "startTime." + error; } - if (message.endTime != null && message.hasOwnProperty("endTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.endTime); + if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.endTime, long + 1); if (error) return "endTime." + error; } - if (message.error != null && message.hasOwnProperty("error")) { - var error = $root.google.cloud.sql.v1beta4.OperationError.verify(message.error); + if (message.error != null && Object.hasOwnProperty.call(message, "error")) { + var error = $root.google.cloud.sql.v1beta4.OperationError.verify(message.error, long + 1); if (error) return "error." + error; } - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) switch (message.type) { default: return "type: enum value expected"; @@ -97028,24 +104090,24 @@ case 2: break; } - if (message.description != null && message.hasOwnProperty("description")) + if (message.description != null && Object.hasOwnProperty.call(message, "description")) if (!$util.isString(message.description)) return "description: string expected"; - if (message.windowStartTime != null && message.hasOwnProperty("windowStartTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.windowStartTime); + if (message.windowStartTime != null && Object.hasOwnProperty.call(message, "windowStartTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.windowStartTime, long + 1); if (error) return "windowStartTime." + error; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) if (!$util.isString(message.selfLink)) return "selfLink: string expected"; - if (message.location != null && message.hasOwnProperty("location")) + if (message.location != null && Object.hasOwnProperty.call(message, "location")) if (!$util.isString(message.location)) return "location: string expected"; - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) switch (message.databaseVersion) { default: return "databaseVersion: enum value expected"; @@ -97092,6 +104154,8 @@ case 272: case 408: case 557: + case 684: + case 781: case 26: case 27: case 28: @@ -97100,19 +104164,22 @@ case 200: case 201: case 202: + case 549: + case 550: + case 551: break; } - if (message.diskEncryptionConfiguration != null && message.hasOwnProperty("diskEncryptionConfiguration")) { - var error = $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.verify(message.diskEncryptionConfiguration); + if (message.diskEncryptionConfiguration != null && Object.hasOwnProperty.call(message, "diskEncryptionConfiguration")) { + var error = $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.verify(message.diskEncryptionConfiguration, long + 1); if (error) return "diskEncryptionConfiguration." + error; } - if (message.diskEncryptionStatus != null && message.hasOwnProperty("diskEncryptionStatus")) { - var error = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.verify(message.diskEncryptionStatus); + if (message.diskEncryptionStatus != null && Object.hasOwnProperty.call(message, "diskEncryptionStatus")) { + var error = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.verify(message.diskEncryptionStatus, long + 1); if (error) return "diskEncryptionStatus." + error; } - if (message.backupKind != null && message.hasOwnProperty("backupKind")) + if (message.backupKind != null && Object.hasOwnProperty.call(message, "backupKind")) switch (message.backupKind) { default: return "backupKind: enum value expected"; @@ -97121,10 +104188,10 @@ case 2: break; } - if (message.timeZone != null && message.hasOwnProperty("timeZone")) + if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) if (!$util.isString(message.timeZone)) return "timeZone: string expected"; - if (message.maxChargeableBytes != null && message.hasOwnProperty("maxChargeableBytes")) { + if (message.maxChargeableBytes != null && Object.hasOwnProperty.call(message, "maxChargeableBytes")) { properties._maxChargeableBytes = 1; if (!$util.isInteger(message.maxChargeableBytes) && !(message.maxChargeableBytes && $util.isInteger(message.maxChargeableBytes.low) && $util.isInteger(message.maxChargeableBytes.high))) return "maxChargeableBytes: integer|Long expected"; @@ -97140,9 +104207,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.BackupRun} BackupRun */ - BackupRun.fromObject = function fromObject(object) { + BackupRun.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.BackupRun) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.BackupRun: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.BackupRun(); if (object.kind != null) message.kind = String(object.kind); @@ -97195,13 +104268,13 @@ break; } if (object.enqueuedTime != null) { - if (typeof object.enqueuedTime !== "object") + if (!$util.isObject(object.enqueuedTime)) throw TypeError(".google.cloud.sql.v1beta4.BackupRun.enqueuedTime: object expected"); - message.enqueuedTime = $root.google.protobuf.Timestamp.fromObject(object.enqueuedTime); + message.enqueuedTime = $root.google.protobuf.Timestamp.fromObject(object.enqueuedTime, long + 1); } if (object.id != null) if ($util.Long) - (message.id = $util.Long.fromValue(object.id)).unsigned = false; + message.id = $util.Long.fromValue(object.id, false); else if (typeof object.id === "string") message.id = parseInt(object.id, 10); else if (typeof object.id === "number") @@ -97209,19 +104282,19 @@ else if (typeof object.id === "object") message.id = new $util.LongBits(object.id.low >>> 0, object.id.high >>> 0).toNumber(); if (object.startTime != null) { - if (typeof object.startTime !== "object") + if (!$util.isObject(object.startTime)) throw TypeError(".google.cloud.sql.v1beta4.BackupRun.startTime: object expected"); - message.startTime = $root.google.protobuf.Timestamp.fromObject(object.startTime); + message.startTime = $root.google.protobuf.Timestamp.fromObject(object.startTime, long + 1); } if (object.endTime != null) { - if (typeof object.endTime !== "object") + if (!$util.isObject(object.endTime)) throw TypeError(".google.cloud.sql.v1beta4.BackupRun.endTime: object expected"); - message.endTime = $root.google.protobuf.Timestamp.fromObject(object.endTime); + message.endTime = $root.google.protobuf.Timestamp.fromObject(object.endTime, long + 1); } if (object.error != null) { - if (typeof object.error !== "object") + if (!$util.isObject(object.error)) throw TypeError(".google.cloud.sql.v1beta4.BackupRun.error: object expected"); - message.error = $root.google.cloud.sql.v1beta4.OperationError.fromObject(object.error); + message.error = $root.google.cloud.sql.v1beta4.OperationError.fromObject(object.error, long + 1); } switch (object.type) { default: @@ -97246,9 +104319,9 @@ if (object.description != null) message.description = String(object.description); if (object.windowStartTime != null) { - if (typeof object.windowStartTime !== "object") + if (!$util.isObject(object.windowStartTime)) throw TypeError(".google.cloud.sql.v1beta4.BackupRun.windowStartTime: object expected"); - message.windowStartTime = $root.google.protobuf.Timestamp.fromObject(object.windowStartTime); + message.windowStartTime = $root.google.protobuf.Timestamp.fromObject(object.windowStartTime, long + 1); } if (object.instance != null) message.instance = String(object.instance); @@ -97435,6 +104508,14 @@ case 557: message.databaseVersion = 557; break; + case "POSTGRES_19": + case 684: + message.databaseVersion = 684; + break; + case "POSTGRES_20": + case 781: + message.databaseVersion = 781; + break; case "SQLSERVER_2019_STANDARD": case 26: message.databaseVersion = 26; @@ -97467,16 +104548,28 @@ case 202: message.databaseVersion = 202; break; + case "SQLSERVER_2025_STANDARD": + case 549: + message.databaseVersion = 549; + break; + case "SQLSERVER_2025_ENTERPRISE": + case 550: + message.databaseVersion = 550; + break; + case "SQLSERVER_2025_EXPRESS": + case 551: + message.databaseVersion = 551; + break; } if (object.diskEncryptionConfiguration != null) { - if (typeof object.diskEncryptionConfiguration !== "object") + if (!$util.isObject(object.diskEncryptionConfiguration)) throw TypeError(".google.cloud.sql.v1beta4.BackupRun.diskEncryptionConfiguration: object expected"); - message.diskEncryptionConfiguration = $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.fromObject(object.diskEncryptionConfiguration); + message.diskEncryptionConfiguration = $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.fromObject(object.diskEncryptionConfiguration, long + 1); } if (object.diskEncryptionStatus != null) { - if (typeof object.diskEncryptionStatus !== "object") + if (!$util.isObject(object.diskEncryptionStatus)) throw TypeError(".google.cloud.sql.v1beta4.BackupRun.diskEncryptionStatus: object expected"); - message.diskEncryptionStatus = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.fromObject(object.diskEncryptionStatus); + message.diskEncryptionStatus = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.fromObject(object.diskEncryptionStatus, long + 1); } switch (object.backupKind) { default: @@ -97502,7 +104595,7 @@ message.timeZone = String(object.timeZone); if (object.maxChargeableBytes != null) if ($util.Long) - (message.maxChargeableBytes = $util.Long.fromValue(object.maxChargeableBytes)).unsigned = false; + message.maxChargeableBytes = $util.Long.fromValue(object.maxChargeableBytes, false); else if (typeof object.maxChargeableBytes === "string") message.maxChargeableBytes = parseInt(object.maxChargeableBytes, 10); else if (typeof object.maxChargeableBytes === "number") @@ -97521,9 +104614,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BackupRun.toObject = function toObject(message, options) { + BackupRun.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -97531,9 +104628,9 @@ object.enqueuedTime = null; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.id = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.id = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.id = options.longs === String ? "0" : 0; + object.id = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.startTime = null; object.endTime = null; object.error = null; @@ -97549,47 +104646,51 @@ object.backupKind = options.enums === String ? "SQL_BACKUP_KIND_UNSPECIFIED" : 0; object.timeZone = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.status != null && message.hasOwnProperty("status")) + if (message.status != null && Object.hasOwnProperty.call(message, "status")) object.status = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlBackupRunStatus[message.status] === undefined ? message.status : $root.google.cloud.sql.v1beta4.SqlBackupRunStatus[message.status] : message.status; - if (message.enqueuedTime != null && message.hasOwnProperty("enqueuedTime")) - object.enqueuedTime = $root.google.protobuf.Timestamp.toObject(message.enqueuedTime, options); - if (message.id != null && message.hasOwnProperty("id")) - if (typeof message.id === "number") + if (message.enqueuedTime != null && Object.hasOwnProperty.call(message, "enqueuedTime")) + object.enqueuedTime = $root.google.protobuf.Timestamp.toObject(message.enqueuedTime, options, q + 1); + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.id = typeof message.id === "number" ? BigInt(message.id) : $util.Long.fromBits(message.id.low >>> 0, message.id.high >>> 0, false).toBigInt(); + else if (typeof message.id === "number") object.id = options.longs === String ? String(message.id) : message.id; else object.id = options.longs === String ? $util.Long.prototype.toString.call(message.id) : options.longs === Number ? new $util.LongBits(message.id.low >>> 0, message.id.high >>> 0).toNumber() : message.id; - if (message.startTime != null && message.hasOwnProperty("startTime")) - object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options); - if (message.endTime != null && message.hasOwnProperty("endTime")) - object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options); - if (message.error != null && message.hasOwnProperty("error")) - object.error = $root.google.cloud.sql.v1beta4.OperationError.toObject(message.error, options); - if (message.type != null && message.hasOwnProperty("type")) + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) + object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options, q + 1); + if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) + object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options, q + 1); + if (message.error != null && Object.hasOwnProperty.call(message, "error")) + object.error = $root.google.cloud.sql.v1beta4.OperationError.toObject(message.error, options, q + 1); + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlBackupRunType[message.type] === undefined ? message.type : $root.google.cloud.sql.v1beta4.SqlBackupRunType[message.type] : message.type; - if (message.description != null && message.hasOwnProperty("description")) + if (message.description != null && Object.hasOwnProperty.call(message, "description")) object.description = message.description; - if (message.windowStartTime != null && message.hasOwnProperty("windowStartTime")) - object.windowStartTime = $root.google.protobuf.Timestamp.toObject(message.windowStartTime, options); - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.windowStartTime != null && Object.hasOwnProperty.call(message, "windowStartTime")) + object.windowStartTime = $root.google.protobuf.Timestamp.toObject(message.windowStartTime, options, q + 1); + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) object.selfLink = message.selfLink; - if (message.location != null && message.hasOwnProperty("location")) + if (message.location != null && Object.hasOwnProperty.call(message, "location")) object.location = message.location; - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) object.databaseVersion = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlDatabaseVersion[message.databaseVersion] === undefined ? message.databaseVersion : $root.google.cloud.sql.v1beta4.SqlDatabaseVersion[message.databaseVersion] : message.databaseVersion; - if (message.diskEncryptionConfiguration != null && message.hasOwnProperty("diskEncryptionConfiguration")) - object.diskEncryptionConfiguration = $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.toObject(message.diskEncryptionConfiguration, options); - if (message.diskEncryptionStatus != null && message.hasOwnProperty("diskEncryptionStatus")) - object.diskEncryptionStatus = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.toObject(message.diskEncryptionStatus, options); - if (message.backupKind != null && message.hasOwnProperty("backupKind")) + if (message.diskEncryptionConfiguration != null && Object.hasOwnProperty.call(message, "diskEncryptionConfiguration")) + object.diskEncryptionConfiguration = $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.toObject(message.diskEncryptionConfiguration, options, q + 1); + if (message.diskEncryptionStatus != null && Object.hasOwnProperty.call(message, "diskEncryptionStatus")) + object.diskEncryptionStatus = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.toObject(message.diskEncryptionStatus, options, q + 1); + if (message.backupKind != null && Object.hasOwnProperty.call(message, "backupKind")) object.backupKind = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlBackupKind[message.backupKind] === undefined ? message.backupKind : $root.google.cloud.sql.v1beta4.SqlBackupKind[message.backupKind] : message.backupKind; - if (message.timeZone != null && message.hasOwnProperty("timeZone")) + if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) object.timeZone = message.timeZone; - if (message.maxChargeableBytes != null && message.hasOwnProperty("maxChargeableBytes")) { - if (typeof message.maxChargeableBytes === "number") + if (message.maxChargeableBytes != null && Object.hasOwnProperty.call(message, "maxChargeableBytes")) { + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.maxChargeableBytes = typeof message.maxChargeableBytes === "number" ? BigInt(message.maxChargeableBytes) : $util.Long.fromBits(message.maxChargeableBytes.low >>> 0, message.maxChargeableBytes.high >>> 0, false).toBigInt(); + else if (typeof message.maxChargeableBytes === "number") object.maxChargeableBytes = options.longs === String ? String(message.maxChargeableBytes) : message.maxChargeableBytes; else object.maxChargeableBytes = options.longs === String ? $util.Long.prototype.toString.call(message.maxChargeableBytes) : options.longs === Number ? new $util.LongBits(message.maxChargeableBytes.low >>> 0, message.maxChargeableBytes.high >>> 0).toNumber() : message.maxChargeableBytes; @@ -97670,7 +104771,7 @@ function Backup(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -97899,9 +105000,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Backup.encode = function encode(message, writer) { + Backup.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -97917,11 +105022,11 @@ if (message.location != null && Object.hasOwnProperty.call(message, "location")) writer.uint32(/* id 7, wireType 2 =*/58).string(message.location); if (message.backupInterval != null && Object.hasOwnProperty.call(message, "backupInterval")) - $root.google.type.Interval.encode(message.backupInterval, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.type.Interval.encode(message.backupInterval, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); if (message.state != null && Object.hasOwnProperty.call(message, "state")) writer.uint32(/* id 9, wireType 0 =*/72).int32(message.state); if (message.error != null && Object.hasOwnProperty.call(message, "error")) - $root.google.cloud.sql.v1beta4.OperationError.encode(message.error, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.OperationError.encode(message.error, writer.uint32(/* id 10, wireType 2 =*/82).fork(), q + 1).ldelim(); if (message.kmsKey != null && Object.hasOwnProperty.call(message, "kmsKey")) writer.uint32(/* id 11, wireType 2 =*/90).string(message.kmsKey); if (message.kmsKeyVersion != null && Object.hasOwnProperty.call(message, "kmsKeyVersion")) @@ -97933,21 +105038,21 @@ if (message.ttlDays != null && Object.hasOwnProperty.call(message, "ttlDays")) writer.uint32(/* id 16, wireType 0 =*/128).int64(message.ttlDays); if (message.expiryTime != null && Object.hasOwnProperty.call(message, "expiryTime")) - $root.google.protobuf.Timestamp.encode(message.expiryTime, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.expiryTime, writer.uint32(/* id 17, wireType 2 =*/138).fork(), q + 1).ldelim(); if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) writer.uint32(/* id 20, wireType 0 =*/160).int32(message.databaseVersion); if (message.maxChargeableBytes != null && Object.hasOwnProperty.call(message, "maxChargeableBytes")) writer.uint32(/* id 23, wireType 0 =*/184).int64(message.maxChargeableBytes); if (message.instanceDeletionTime != null && Object.hasOwnProperty.call(message, "instanceDeletionTime")) - $root.google.protobuf.Timestamp.encode(message.instanceDeletionTime, writer.uint32(/* id 24, wireType 2 =*/194).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.instanceDeletionTime, writer.uint32(/* id 24, wireType 2 =*/194).fork(), q + 1).ldelim(); if (message.instanceSettings != null && Object.hasOwnProperty.call(message, "instanceSettings")) - $root.google.cloud.sql.v1beta4.DatabaseInstance.encode(message.instanceSettings, writer.uint32(/* id 25, wireType 2 =*/202).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DatabaseInstance.encode(message.instanceSettings, writer.uint32(/* id 25, wireType 2 =*/202).fork(), q + 1).ldelim(); if (message.backupRun != null && Object.hasOwnProperty.call(message, "backupRun")) writer.uint32(/* id 26, wireType 2 =*/210).string(message.backupRun); if (message.satisfiesPzs != null && Object.hasOwnProperty.call(message, "satisfiesPzs")) - $root.google.protobuf.BoolValue.encode(message.satisfiesPzs, writer.uint32(/* id 27, wireType 2 =*/218).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.satisfiesPzs, writer.uint32(/* id 27, wireType 2 =*/218).fork(), q + 1).ldelim(); if (message.satisfiesPzi != null && Object.hasOwnProperty.call(message, "satisfiesPzi")) - $root.google.protobuf.BoolValue.encode(message.satisfiesPzi, writer.uint32(/* id 28, wireType 2 =*/226).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.satisfiesPzi, writer.uint32(/* id 28, wireType 2 =*/226).fork(), q + 1).ldelim(); return writer; }; @@ -97961,7 +105066,7 @@ * @returns {$protobuf.Writer} Writer */ Backup.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -97975,9 +105080,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Backup.decode = function decode(reader, length, error) { + Backup.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.Backup(); while (reader.pos < end) { var tag = reader.uint32(); @@ -98013,7 +105122,7 @@ break; } case 8: { - message.backupInterval = $root.google.type.Interval.decode(reader, reader.uint32()); + message.backupInterval = $root.google.type.Interval.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { @@ -98021,7 +105130,7 @@ break; } case 10: { - message.error = $root.google.cloud.sql.v1beta4.OperationError.decode(reader, reader.uint32()); + message.error = $root.google.cloud.sql.v1beta4.OperationError.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { @@ -98045,7 +105154,7 @@ break; } case 17: { - message.expiryTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.expiryTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 20: { @@ -98057,11 +105166,11 @@ break; } case 24: { - message.instanceDeletionTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.instanceDeletionTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 25: { - message.instanceSettings = $root.google.cloud.sql.v1beta4.DatabaseInstance.decode(reader, reader.uint32()); + message.instanceSettings = $root.google.cloud.sql.v1beta4.DatabaseInstance.decode(reader, reader.uint32(), undefined, long + 1); break; } case 26: { @@ -98069,15 +105178,15 @@ break; } case 27: { - message.satisfiesPzs = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.satisfiesPzs = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 28: { - message.satisfiesPzi = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.satisfiesPzi = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -98108,20 +105217,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Backup.verify = function verify(message) { + Backup.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) if (!$util.isString(message.selfLink)) return "selfLink: string expected"; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) switch (message.type) { default: return "type: enum value expected"; @@ -98131,21 +105244,21 @@ case 3: break; } - if (message.description != null && message.hasOwnProperty("description")) + if (message.description != null && Object.hasOwnProperty.call(message, "description")) if (!$util.isString(message.description)) return "description: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.location != null && message.hasOwnProperty("location")) + if (message.location != null && Object.hasOwnProperty.call(message, "location")) if (!$util.isString(message.location)) return "location: string expected"; - if (message.backupInterval != null && message.hasOwnProperty("backupInterval")) { - var error = $root.google.type.Interval.verify(message.backupInterval); + if (message.backupInterval != null && Object.hasOwnProperty.call(message, "backupInterval")) { + var error = $root.google.type.Interval.verify(message.backupInterval, long + 1); if (error) return "backupInterval." + error; } - if (message.state != null && message.hasOwnProperty("state")) + if (message.state != null && Object.hasOwnProperty.call(message, "state")) switch (message.state) { default: return "state: enum value expected"; @@ -98158,18 +105271,18 @@ case 6: break; } - if (message.error != null && message.hasOwnProperty("error")) { - var error = $root.google.cloud.sql.v1beta4.OperationError.verify(message.error); + if (message.error != null && Object.hasOwnProperty.call(message, "error")) { + var error = $root.google.cloud.sql.v1beta4.OperationError.verify(message.error, long + 1); if (error) return "error." + error; } - if (message.kmsKey != null && message.hasOwnProperty("kmsKey")) + if (message.kmsKey != null && Object.hasOwnProperty.call(message, "kmsKey")) if (!$util.isString(message.kmsKey)) return "kmsKey: string expected"; - if (message.kmsKeyVersion != null && message.hasOwnProperty("kmsKeyVersion")) + if (message.kmsKeyVersion != null && Object.hasOwnProperty.call(message, "kmsKeyVersion")) if (!$util.isString(message.kmsKeyVersion)) return "kmsKeyVersion: string expected"; - if (message.backupKind != null && message.hasOwnProperty("backupKind")) + if (message.backupKind != null && Object.hasOwnProperty.call(message, "backupKind")) switch (message.backupKind) { default: return "backupKind: enum value expected"; @@ -98178,25 +105291,25 @@ case 2: break; } - if (message.timeZone != null && message.hasOwnProperty("timeZone")) + if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) if (!$util.isString(message.timeZone)) return "timeZone: string expected"; - if (message.ttlDays != null && message.hasOwnProperty("ttlDays")) { + if (message.ttlDays != null && Object.hasOwnProperty.call(message, "ttlDays")) { properties.expiration = 1; if (!$util.isInteger(message.ttlDays) && !(message.ttlDays && $util.isInteger(message.ttlDays.low) && $util.isInteger(message.ttlDays.high))) return "ttlDays: integer|Long expected"; } - if (message.expiryTime != null && message.hasOwnProperty("expiryTime")) { + if (message.expiryTime != null && Object.hasOwnProperty.call(message, "expiryTime")) { if (properties.expiration === 1) return "expiration: multiple values"; properties.expiration = 1; { - var error = $root.google.protobuf.Timestamp.verify(message.expiryTime); + var error = $root.google.protobuf.Timestamp.verify(message.expiryTime, long + 1); if (error) return "expiryTime." + error; } } - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) switch (message.databaseVersion) { default: return "databaseVersion: enum value expected"; @@ -98243,6 +105356,8 @@ case 272: case 408: case 557: + case 684: + case 781: case 26: case 27: case 28: @@ -98251,33 +105366,36 @@ case 200: case 201: case 202: + case 549: + case 550: + case 551: break; } - if (message.maxChargeableBytes != null && message.hasOwnProperty("maxChargeableBytes")) { + if (message.maxChargeableBytes != null && Object.hasOwnProperty.call(message, "maxChargeableBytes")) { properties._maxChargeableBytes = 1; if (!$util.isInteger(message.maxChargeableBytes) && !(message.maxChargeableBytes && $util.isInteger(message.maxChargeableBytes.low) && $util.isInteger(message.maxChargeableBytes.high))) return "maxChargeableBytes: integer|Long expected"; } - if (message.instanceDeletionTime != null && message.hasOwnProperty("instanceDeletionTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.instanceDeletionTime); + if (message.instanceDeletionTime != null && Object.hasOwnProperty.call(message, "instanceDeletionTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.instanceDeletionTime, long + 1); if (error) return "instanceDeletionTime." + error; } - if (message.instanceSettings != null && message.hasOwnProperty("instanceSettings")) { - var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.instanceSettings); + if (message.instanceSettings != null && Object.hasOwnProperty.call(message, "instanceSettings")) { + var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.instanceSettings, long + 1); if (error) return "instanceSettings." + error; } - if (message.backupRun != null && message.hasOwnProperty("backupRun")) + if (message.backupRun != null && Object.hasOwnProperty.call(message, "backupRun")) if (!$util.isString(message.backupRun)) return "backupRun: string expected"; - if (message.satisfiesPzs != null && message.hasOwnProperty("satisfiesPzs")) { - var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzs); + if (message.satisfiesPzs != null && Object.hasOwnProperty.call(message, "satisfiesPzs")) { + var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzs, long + 1); if (error) return "satisfiesPzs." + error; } - if (message.satisfiesPzi != null && message.hasOwnProperty("satisfiesPzi")) { - var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzi); + if (message.satisfiesPzi != null && Object.hasOwnProperty.call(message, "satisfiesPzi")) { + var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzi, long + 1); if (error) return "satisfiesPzi." + error; } @@ -98292,9 +105410,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.Backup} Backup */ - Backup.fromObject = function fromObject(object) { + Backup.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.Backup) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.Backup: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.Backup(); if (object.name != null) message.name = String(object.name); @@ -98333,9 +105457,9 @@ if (object.location != null) message.location = String(object.location); if (object.backupInterval != null) { - if (typeof object.backupInterval !== "object") + if (!$util.isObject(object.backupInterval)) throw TypeError(".google.cloud.sql.v1beta4.Backup.backupInterval: object expected"); - message.backupInterval = $root.google.type.Interval.fromObject(object.backupInterval); + message.backupInterval = $root.google.type.Interval.fromObject(object.backupInterval, long + 1); } switch (object.state) { default: @@ -98374,9 +105498,9 @@ break; } if (object.error != null) { - if (typeof object.error !== "object") + if (!$util.isObject(object.error)) throw TypeError(".google.cloud.sql.v1beta4.Backup.error: object expected"); - message.error = $root.google.cloud.sql.v1beta4.OperationError.fromObject(object.error); + message.error = $root.google.cloud.sql.v1beta4.OperationError.fromObject(object.error, long + 1); } if (object.kmsKey != null) message.kmsKey = String(object.kmsKey); @@ -98406,7 +105530,7 @@ message.timeZone = String(object.timeZone); if (object.ttlDays != null) if ($util.Long) - (message.ttlDays = $util.Long.fromValue(object.ttlDays)).unsigned = false; + message.ttlDays = $util.Long.fromValue(object.ttlDays, false); else if (typeof object.ttlDays === "string") message.ttlDays = parseInt(object.ttlDays, 10); else if (typeof object.ttlDays === "number") @@ -98414,9 +105538,9 @@ else if (typeof object.ttlDays === "object") message.ttlDays = new $util.LongBits(object.ttlDays.low >>> 0, object.ttlDays.high >>> 0).toNumber(); if (object.expiryTime != null) { - if (typeof object.expiryTime !== "object") + if (!$util.isObject(object.expiryTime)) throw TypeError(".google.cloud.sql.v1beta4.Backup.expiryTime: object expected"); - message.expiryTime = $root.google.protobuf.Timestamp.fromObject(object.expiryTime); + message.expiryTime = $root.google.protobuf.Timestamp.fromObject(object.expiryTime, long + 1); } switch (object.databaseVersion) { default: @@ -98597,6 +105721,14 @@ case 557: message.databaseVersion = 557; break; + case "POSTGRES_19": + case 684: + message.databaseVersion = 684; + break; + case "POSTGRES_20": + case 781: + message.databaseVersion = 781; + break; case "SQLSERVER_2019_STANDARD": case 26: message.databaseVersion = 26; @@ -98629,10 +105761,22 @@ case 202: message.databaseVersion = 202; break; + case "SQLSERVER_2025_STANDARD": + case 549: + message.databaseVersion = 549; + break; + case "SQLSERVER_2025_ENTERPRISE": + case 550: + message.databaseVersion = 550; + break; + case "SQLSERVER_2025_EXPRESS": + case 551: + message.databaseVersion = 551; + break; } if (object.maxChargeableBytes != null) if ($util.Long) - (message.maxChargeableBytes = $util.Long.fromValue(object.maxChargeableBytes)).unsigned = false; + message.maxChargeableBytes = $util.Long.fromValue(object.maxChargeableBytes, false); else if (typeof object.maxChargeableBytes === "string") message.maxChargeableBytes = parseInt(object.maxChargeableBytes, 10); else if (typeof object.maxChargeableBytes === "number") @@ -98640,26 +105784,26 @@ else if (typeof object.maxChargeableBytes === "object") message.maxChargeableBytes = new $util.LongBits(object.maxChargeableBytes.low >>> 0, object.maxChargeableBytes.high >>> 0).toNumber(); if (object.instanceDeletionTime != null) { - if (typeof object.instanceDeletionTime !== "object") + if (!$util.isObject(object.instanceDeletionTime)) throw TypeError(".google.cloud.sql.v1beta4.Backup.instanceDeletionTime: object expected"); - message.instanceDeletionTime = $root.google.protobuf.Timestamp.fromObject(object.instanceDeletionTime); + message.instanceDeletionTime = $root.google.protobuf.Timestamp.fromObject(object.instanceDeletionTime, long + 1); } if (object.instanceSettings != null) { - if (typeof object.instanceSettings !== "object") + if (!$util.isObject(object.instanceSettings)) throw TypeError(".google.cloud.sql.v1beta4.Backup.instanceSettings: object expected"); - message.instanceSettings = $root.google.cloud.sql.v1beta4.DatabaseInstance.fromObject(object.instanceSettings); + message.instanceSettings = $root.google.cloud.sql.v1beta4.DatabaseInstance.fromObject(object.instanceSettings, long + 1); } if (object.backupRun != null) message.backupRun = String(object.backupRun); if (object.satisfiesPzs != null) { - if (typeof object.satisfiesPzs !== "object") + if (!$util.isObject(object.satisfiesPzs)) throw TypeError(".google.cloud.sql.v1beta4.Backup.satisfiesPzs: object expected"); - message.satisfiesPzs = $root.google.protobuf.BoolValue.fromObject(object.satisfiesPzs); + message.satisfiesPzs = $root.google.protobuf.BoolValue.fromObject(object.satisfiesPzs, long + 1); } if (object.satisfiesPzi != null) { - if (typeof object.satisfiesPzi !== "object") + if (!$util.isObject(object.satisfiesPzi)) throw TypeError(".google.cloud.sql.v1beta4.Backup.satisfiesPzi: object expected"); - message.satisfiesPzi = $root.google.protobuf.BoolValue.fromObject(object.satisfiesPzi); + message.satisfiesPzi = $root.google.protobuf.BoolValue.fromObject(object.satisfiesPzi, long + 1); } return message; }; @@ -98673,9 +105817,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Backup.toObject = function toObject(message, options) { + Backup.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; @@ -98699,67 +105847,71 @@ object.satisfiesPzs = null; object.satisfiesPzi = null; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) object.selfLink = message.selfLink; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = options.enums === String ? $root.google.cloud.sql.v1beta4.Backup.SqlBackupType[message.type] === undefined ? message.type : $root.google.cloud.sql.v1beta4.Backup.SqlBackupType[message.type] : message.type; - if (message.description != null && message.hasOwnProperty("description")) + if (message.description != null && Object.hasOwnProperty.call(message, "description")) object.description = message.description; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.location != null && message.hasOwnProperty("location")) + if (message.location != null && Object.hasOwnProperty.call(message, "location")) object.location = message.location; - if (message.backupInterval != null && message.hasOwnProperty("backupInterval")) - object.backupInterval = $root.google.type.Interval.toObject(message.backupInterval, options); - if (message.state != null && message.hasOwnProperty("state")) + if (message.backupInterval != null && Object.hasOwnProperty.call(message, "backupInterval")) + object.backupInterval = $root.google.type.Interval.toObject(message.backupInterval, options, q + 1); + if (message.state != null && Object.hasOwnProperty.call(message, "state")) object.state = options.enums === String ? $root.google.cloud.sql.v1beta4.Backup.SqlBackupState[message.state] === undefined ? message.state : $root.google.cloud.sql.v1beta4.Backup.SqlBackupState[message.state] : message.state; - if (message.error != null && message.hasOwnProperty("error")) - object.error = $root.google.cloud.sql.v1beta4.OperationError.toObject(message.error, options); - if (message.kmsKey != null && message.hasOwnProperty("kmsKey")) + if (message.error != null && Object.hasOwnProperty.call(message, "error")) + object.error = $root.google.cloud.sql.v1beta4.OperationError.toObject(message.error, options, q + 1); + if (message.kmsKey != null && Object.hasOwnProperty.call(message, "kmsKey")) object.kmsKey = message.kmsKey; - if (message.kmsKeyVersion != null && message.hasOwnProperty("kmsKeyVersion")) + if (message.kmsKeyVersion != null && Object.hasOwnProperty.call(message, "kmsKeyVersion")) object.kmsKeyVersion = message.kmsKeyVersion; - if (message.backupKind != null && message.hasOwnProperty("backupKind")) + if (message.backupKind != null && Object.hasOwnProperty.call(message, "backupKind")) object.backupKind = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlBackupKind[message.backupKind] === undefined ? message.backupKind : $root.google.cloud.sql.v1beta4.SqlBackupKind[message.backupKind] : message.backupKind; - if (message.timeZone != null && message.hasOwnProperty("timeZone")) + if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) object.timeZone = message.timeZone; - if (message.ttlDays != null && message.hasOwnProperty("ttlDays")) { - if (typeof message.ttlDays === "number") + if (message.ttlDays != null && Object.hasOwnProperty.call(message, "ttlDays")) { + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.ttlDays = typeof message.ttlDays === "number" ? BigInt(message.ttlDays) : $util.Long.fromBits(message.ttlDays.low >>> 0, message.ttlDays.high >>> 0, false).toBigInt(); + else if (typeof message.ttlDays === "number") object.ttlDays = options.longs === String ? String(message.ttlDays) : message.ttlDays; else object.ttlDays = options.longs === String ? $util.Long.prototype.toString.call(message.ttlDays) : options.longs === Number ? new $util.LongBits(message.ttlDays.low >>> 0, message.ttlDays.high >>> 0).toNumber() : message.ttlDays; if (options.oneofs) object.expiration = "ttlDays"; } - if (message.expiryTime != null && message.hasOwnProperty("expiryTime")) { - object.expiryTime = $root.google.protobuf.Timestamp.toObject(message.expiryTime, options); + if (message.expiryTime != null && Object.hasOwnProperty.call(message, "expiryTime")) { + object.expiryTime = $root.google.protobuf.Timestamp.toObject(message.expiryTime, options, q + 1); if (options.oneofs) object.expiration = "expiryTime"; } - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) object.databaseVersion = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlDatabaseVersion[message.databaseVersion] === undefined ? message.databaseVersion : $root.google.cloud.sql.v1beta4.SqlDatabaseVersion[message.databaseVersion] : message.databaseVersion; - if (message.maxChargeableBytes != null && message.hasOwnProperty("maxChargeableBytes")) { - if (typeof message.maxChargeableBytes === "number") + if (message.maxChargeableBytes != null && Object.hasOwnProperty.call(message, "maxChargeableBytes")) { + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.maxChargeableBytes = typeof message.maxChargeableBytes === "number" ? BigInt(message.maxChargeableBytes) : $util.Long.fromBits(message.maxChargeableBytes.low >>> 0, message.maxChargeableBytes.high >>> 0, false).toBigInt(); + else if (typeof message.maxChargeableBytes === "number") object.maxChargeableBytes = options.longs === String ? String(message.maxChargeableBytes) : message.maxChargeableBytes; else object.maxChargeableBytes = options.longs === String ? $util.Long.prototype.toString.call(message.maxChargeableBytes) : options.longs === Number ? new $util.LongBits(message.maxChargeableBytes.low >>> 0, message.maxChargeableBytes.high >>> 0).toNumber() : message.maxChargeableBytes; if (options.oneofs) object._maxChargeableBytes = "maxChargeableBytes"; } - if (message.instanceDeletionTime != null && message.hasOwnProperty("instanceDeletionTime")) - object.instanceDeletionTime = $root.google.protobuf.Timestamp.toObject(message.instanceDeletionTime, options); - if (message.instanceSettings != null && message.hasOwnProperty("instanceSettings")) - object.instanceSettings = $root.google.cloud.sql.v1beta4.DatabaseInstance.toObject(message.instanceSettings, options); - if (message.backupRun != null && message.hasOwnProperty("backupRun")) + if (message.instanceDeletionTime != null && Object.hasOwnProperty.call(message, "instanceDeletionTime")) + object.instanceDeletionTime = $root.google.protobuf.Timestamp.toObject(message.instanceDeletionTime, options, q + 1); + if (message.instanceSettings != null && Object.hasOwnProperty.call(message, "instanceSettings")) + object.instanceSettings = $root.google.cloud.sql.v1beta4.DatabaseInstance.toObject(message.instanceSettings, options, q + 1); + if (message.backupRun != null && Object.hasOwnProperty.call(message, "backupRun")) object.backupRun = message.backupRun; - if (message.satisfiesPzs != null && message.hasOwnProperty("satisfiesPzs")) - object.satisfiesPzs = $root.google.protobuf.BoolValue.toObject(message.satisfiesPzs, options); - if (message.satisfiesPzi != null && message.hasOwnProperty("satisfiesPzi")) - object.satisfiesPzi = $root.google.protobuf.BoolValue.toObject(message.satisfiesPzi, options); + if (message.satisfiesPzs != null && Object.hasOwnProperty.call(message, "satisfiesPzs")) + object.satisfiesPzs = $root.google.protobuf.BoolValue.toObject(message.satisfiesPzs, options, q + 1); + if (message.satisfiesPzi != null && Object.hasOwnProperty.call(message, "satisfiesPzi")) + object.satisfiesPzi = $root.google.protobuf.BoolValue.toObject(message.satisfiesPzi, options, q + 1); return object; }; @@ -98857,7 +106009,7 @@ this.items = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -98906,14 +106058,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BackupRunsListResponse.encode = function encode(message, writer) { + BackupRunsListResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.items != null && message.items.length) for (var i = 0; i < message.items.length; ++i) - $root.google.cloud.sql.v1beta4.BackupRun.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.BackupRun.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.nextPageToken); return writer; @@ -98929,7 +106085,7 @@ * @returns {$protobuf.Writer} Writer */ BackupRunsListResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -98943,9 +106099,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BackupRunsListResponse.decode = function decode(reader, length, error) { + BackupRunsListResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.BackupRunsListResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -98959,7 +106119,7 @@ case 2: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.sql.v1beta4.BackupRun.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.sql.v1beta4.BackupRun.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { @@ -98967,7 +106127,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -98998,22 +106158,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BackupRunsListResponse.verify = function verify(message) { + BackupRunsListResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.items != null && message.hasOwnProperty("items")) { + if (message.items != null && Object.hasOwnProperty.call(message, "items")) { if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.BackupRun.verify(message.items[i]); + var error = $root.google.cloud.sql.v1beta4.BackupRun.verify(message.items[i], long + 1); if (error) return "items." + error; } } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) if (!$util.isString(message.nextPageToken)) return "nextPageToken: string expected"; return null; @@ -99027,9 +106191,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.BackupRunsListResponse} BackupRunsListResponse */ - BackupRunsListResponse.fromObject = function fromObject(object) { + BackupRunsListResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.BackupRunsListResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.BackupRunsListResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.BackupRunsListResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -99038,9 +106208,9 @@ throw TypeError(".google.cloud.sql.v1beta4.BackupRunsListResponse.items: array expected"); message.items = []; for (var i = 0; i < object.items.length; ++i) { - if (typeof object.items[i] !== "object") + if (!$util.isObject(object.items[i])) throw TypeError(".google.cloud.sql.v1beta4.BackupRunsListResponse.items: object expected"); - message.items[i] = $root.google.cloud.sql.v1beta4.BackupRun.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.sql.v1beta4.BackupRun.fromObject(object.items[i], long + 1); } } if (object.nextPageToken != null) @@ -99057,9 +106227,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BackupRunsListResponse.toObject = function toObject(message, options) { + BackupRunsListResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.items = []; @@ -99067,14 +106241,14 @@ object.kind = ""; object.nextPageToken = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.items && message.items.length) { object.items = []; for (var j = 0; j < message.items.length; ++j) - object.items[j] = $root.google.cloud.sql.v1beta4.BackupRun.toObject(message.items[j], options); + object.items[j] = $root.google.cloud.sql.v1beta4.BackupRun.toObject(message.items[j], options, q + 1); } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) object.nextPageToken = message.nextPageToken; return object; }; @@ -99130,7 +106304,7 @@ function BinLogCoordinates(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -99179,9 +106353,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BinLogCoordinates.encode = function encode(message, writer) { + BinLogCoordinates.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.binLogFileName != null && Object.hasOwnProperty.call(message, "binLogFileName")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.binLogFileName); if (message.binLogPosition != null && Object.hasOwnProperty.call(message, "binLogPosition")) @@ -99201,7 +106379,7 @@ * @returns {$protobuf.Writer} Writer */ BinLogCoordinates.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -99215,9 +106393,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BinLogCoordinates.decode = function decode(reader, length, error) { + BinLogCoordinates.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.BinLogCoordinates(); while (reader.pos < end) { var tag = reader.uint32(); @@ -99237,7 +106419,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -99268,16 +106450,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BinLogCoordinates.verify = function verify(message) { + BinLogCoordinates.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.binLogFileName != null && message.hasOwnProperty("binLogFileName")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.binLogFileName != null && Object.hasOwnProperty.call(message, "binLogFileName")) if (!$util.isString(message.binLogFileName)) return "binLogFileName: string expected"; - if (message.binLogPosition != null && message.hasOwnProperty("binLogPosition")) + if (message.binLogPosition != null && Object.hasOwnProperty.call(message, "binLogPosition")) if (!$util.isInteger(message.binLogPosition) && !(message.binLogPosition && $util.isInteger(message.binLogPosition.low) && $util.isInteger(message.binLogPosition.high))) return "binLogPosition: integer|Long expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -99291,15 +106477,21 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.BinLogCoordinates} BinLogCoordinates */ - BinLogCoordinates.fromObject = function fromObject(object) { + BinLogCoordinates.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.BinLogCoordinates) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.BinLogCoordinates: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.BinLogCoordinates(); if (object.binLogFileName != null) message.binLogFileName = String(object.binLogFileName); if (object.binLogPosition != null) if ($util.Long) - (message.binLogPosition = $util.Long.fromValue(object.binLogPosition)).unsigned = false; + message.binLogPosition = $util.Long.fromValue(object.binLogPosition, false); else if (typeof object.binLogPosition === "string") message.binLogPosition = parseInt(object.binLogPosition, 10); else if (typeof object.binLogPosition === "number") @@ -99320,27 +106512,33 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BinLogCoordinates.toObject = function toObject(message, options) { + BinLogCoordinates.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.binLogFileName = ""; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.binLogPosition = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.binLogPosition = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.binLogPosition = options.longs === String ? "0" : 0; + object.binLogPosition = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.kind = ""; } - if (message.binLogFileName != null && message.hasOwnProperty("binLogFileName")) + if (message.binLogFileName != null && Object.hasOwnProperty.call(message, "binLogFileName")) object.binLogFileName = message.binLogFileName; - if (message.binLogPosition != null && message.hasOwnProperty("binLogPosition")) - if (typeof message.binLogPosition === "number") + if (message.binLogPosition != null && Object.hasOwnProperty.call(message, "binLogPosition")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.binLogPosition = typeof message.binLogPosition === "number" ? BigInt(message.binLogPosition) : $util.Long.fromBits(message.binLogPosition.low >>> 0, message.binLogPosition.high >>> 0, false).toBigInt(); + else if (typeof message.binLogPosition === "number") object.binLogPosition = options.longs === String ? String(message.binLogPosition) : message.binLogPosition; else object.binLogPosition = options.longs === String ? $util.Long.prototype.toString.call(message.binLogPosition) : options.longs === Number ? new $util.LongBits(message.binLogPosition.low >>> 0, message.binLogPosition.high >>> 0).toNumber() : message.binLogPosition; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -99396,7 +106594,7 @@ function BackupContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -99445,9 +106643,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BackupContext.encode = function encode(message, writer) { + BackupContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.backupId != null && Object.hasOwnProperty.call(message, "backupId")) writer.uint32(/* id 1, wireType 0 =*/8).int64(message.backupId); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -99467,7 +106669,7 @@ * @returns {$protobuf.Writer} Writer */ BackupContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -99481,9 +106683,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BackupContext.decode = function decode(reader, length, error) { + BackupContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.BackupContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -99503,7 +106709,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -99534,16 +106740,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BackupContext.verify = function verify(message) { + BackupContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.backupId != null && message.hasOwnProperty("backupId")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.backupId != null && Object.hasOwnProperty.call(message, "backupId")) if (!$util.isInteger(message.backupId) && !(message.backupId && $util.isInteger(message.backupId.low) && $util.isInteger(message.backupId.high))) return "backupId: integer|Long expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; return null; @@ -99557,13 +106767,19 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.BackupContext} BackupContext */ - BackupContext.fromObject = function fromObject(object) { + BackupContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.BackupContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.BackupContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.BackupContext(); if (object.backupId != null) if ($util.Long) - (message.backupId = $util.Long.fromValue(object.backupId)).unsigned = false; + message.backupId = $util.Long.fromValue(object.backupId, false); else if (typeof object.backupId === "string") message.backupId = parseInt(object.backupId, 10); else if (typeof object.backupId === "number") @@ -99586,27 +106802,33 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BackupContext.toObject = function toObject(message, options) { + BackupContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { if ($util.Long) { var long = new $util.Long(0, 0, false); - object.backupId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.backupId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.backupId = options.longs === String ? "0" : 0; + object.backupId = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.kind = ""; object.name = ""; } - if (message.backupId != null && message.hasOwnProperty("backupId")) - if (typeof message.backupId === "number") + if (message.backupId != null && Object.hasOwnProperty.call(message, "backupId")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.backupId = typeof message.backupId === "number" ? BigInt(message.backupId) : $util.Long.fromBits(message.backupId.low >>> 0, message.backupId.high >>> 0, false).toBigInt(); + else if (typeof message.backupId === "number") object.backupId = options.longs === String ? String(message.backupId) : message.backupId; else object.backupId = options.longs === String ? $util.Long.prototype.toString.call(message.backupId) : options.longs === Number ? new $util.LongBits(message.backupId.low >>> 0, message.backupId.high >>> 0).toNumber() : message.backupId; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; return object; }; @@ -99672,7 +106894,7 @@ this.databaseNames = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -99826,9 +107048,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CloneContext.encode = function encode(message, writer) { + CloneContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.pitrTimestampMs != null && Object.hasOwnProperty.call(message, "pitrTimestampMs")) @@ -99836,9 +107062,9 @@ if (message.destinationInstanceName != null && Object.hasOwnProperty.call(message, "destinationInstanceName")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.destinationInstanceName); if (message.binLogCoordinates != null && Object.hasOwnProperty.call(message, "binLogCoordinates")) - $root.google.cloud.sql.v1beta4.BinLogCoordinates.encode(message.binLogCoordinates, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.BinLogCoordinates.encode(message.binLogCoordinates, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.pointInTime != null && Object.hasOwnProperty.call(message, "pointInTime")) - $root.google.protobuf.Timestamp.encode(message.pointInTime, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.pointInTime, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.allocatedIpRange != null && Object.hasOwnProperty.call(message, "allocatedIpRange")) writer.uint32(/* id 6, wireType 2 =*/50).string(message.allocatedIpRange); if (message.databaseNames != null && message.databaseNames.length) @@ -99849,7 +107075,7 @@ if (message.preferredSecondaryZone != null && Object.hasOwnProperty.call(message, "preferredSecondaryZone")) writer.uint32(/* id 11, wireType 2 =*/90).string(message.preferredSecondaryZone); if (message.sourceInstanceDeletionTime != null && Object.hasOwnProperty.call(message, "sourceInstanceDeletionTime")) - $root.google.protobuf.Timestamp.encode(message.sourceInstanceDeletionTime, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.sourceInstanceDeletionTime, writer.uint32(/* id 12, wireType 2 =*/98).fork(), q + 1).ldelim(); if (message.destinationProject != null && Object.hasOwnProperty.call(message, "destinationProject")) writer.uint32(/* id 13, wireType 2 =*/106).string(message.destinationProject); if (message.destinationNetwork != null && Object.hasOwnProperty.call(message, "destinationNetwork")) @@ -99867,7 +107093,7 @@ * @returns {$protobuf.Writer} Writer */ CloneContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -99881,9 +107107,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CloneContext.decode = function decode(reader, length, error) { + CloneContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.CloneContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -99903,11 +107133,11 @@ break; } case 4: { - message.binLogCoordinates = $root.google.cloud.sql.v1beta4.BinLogCoordinates.decode(reader, reader.uint32()); + message.binLogCoordinates = $root.google.cloud.sql.v1beta4.BinLogCoordinates.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.pointInTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.pointInTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { @@ -99929,7 +107159,7 @@ break; } case 12: { - message.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 13: { @@ -99941,7 +107171,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -99972,63 +107202,67 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CloneContext.verify = function verify(message) { + CloneContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.pitrTimestampMs != null && message.hasOwnProperty("pitrTimestampMs")) + if (message.pitrTimestampMs != null && Object.hasOwnProperty.call(message, "pitrTimestampMs")) if (!$util.isInteger(message.pitrTimestampMs) && !(message.pitrTimestampMs && $util.isInteger(message.pitrTimestampMs.low) && $util.isInteger(message.pitrTimestampMs.high))) return "pitrTimestampMs: integer|Long expected"; - if (message.destinationInstanceName != null && message.hasOwnProperty("destinationInstanceName")) + if (message.destinationInstanceName != null && Object.hasOwnProperty.call(message, "destinationInstanceName")) if (!$util.isString(message.destinationInstanceName)) return "destinationInstanceName: string expected"; - if (message.binLogCoordinates != null && message.hasOwnProperty("binLogCoordinates")) { - var error = $root.google.cloud.sql.v1beta4.BinLogCoordinates.verify(message.binLogCoordinates); + if (message.binLogCoordinates != null && Object.hasOwnProperty.call(message, "binLogCoordinates")) { + var error = $root.google.cloud.sql.v1beta4.BinLogCoordinates.verify(message.binLogCoordinates, long + 1); if (error) return "binLogCoordinates." + error; } - if (message.pointInTime != null && message.hasOwnProperty("pointInTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.pointInTime); + if (message.pointInTime != null && Object.hasOwnProperty.call(message, "pointInTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.pointInTime, long + 1); if (error) return "pointInTime." + error; } - if (message.allocatedIpRange != null && message.hasOwnProperty("allocatedIpRange")) + if (message.allocatedIpRange != null && Object.hasOwnProperty.call(message, "allocatedIpRange")) if (!$util.isString(message.allocatedIpRange)) return "allocatedIpRange: string expected"; - if (message.databaseNames != null && message.hasOwnProperty("databaseNames")) { + if (message.databaseNames != null && Object.hasOwnProperty.call(message, "databaseNames")) { if (!Array.isArray(message.databaseNames)) return "databaseNames: array expected"; for (var i = 0; i < message.databaseNames.length; ++i) if (!$util.isString(message.databaseNames[i])) return "databaseNames: string[] expected"; } - if (message.preferredZone != null && message.hasOwnProperty("preferredZone")) { + if (message.preferredZone != null && Object.hasOwnProperty.call(message, "preferredZone")) { properties._preferredZone = 1; if (!$util.isString(message.preferredZone)) return "preferredZone: string expected"; } - if (message.preferredSecondaryZone != null && message.hasOwnProperty("preferredSecondaryZone")) { + if (message.preferredSecondaryZone != null && Object.hasOwnProperty.call(message, "preferredSecondaryZone")) { properties._preferredSecondaryZone = 1; if (!$util.isString(message.preferredSecondaryZone)) return "preferredSecondaryZone: string expected"; } - if (message.sourceInstanceDeletionTime != null && message.hasOwnProperty("sourceInstanceDeletionTime")) { + if (message.sourceInstanceDeletionTime != null && Object.hasOwnProperty.call(message, "sourceInstanceDeletionTime")) { properties._sourceInstanceDeletionTime = 1; { - var error = $root.google.protobuf.Timestamp.verify(message.sourceInstanceDeletionTime); + var error = $root.google.protobuf.Timestamp.verify(message.sourceInstanceDeletionTime, long + 1); if (error) return "sourceInstanceDeletionTime." + error; } } - if (message.destinationProject != null && message.hasOwnProperty("destinationProject")) { + if (message.destinationProject != null && Object.hasOwnProperty.call(message, "destinationProject")) { properties._destinationProject = 1; if (!$util.isString(message.destinationProject)) return "destinationProject: string expected"; } - if (message.destinationNetwork != null && message.hasOwnProperty("destinationNetwork")) { + if (message.destinationNetwork != null && Object.hasOwnProperty.call(message, "destinationNetwork")) { properties._destinationNetwork = 1; if (!$util.isString(message.destinationNetwork)) return "destinationNetwork: string expected"; @@ -100044,15 +107278,21 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.CloneContext} CloneContext */ - CloneContext.fromObject = function fromObject(object) { + CloneContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.CloneContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.CloneContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.CloneContext(); if (object.kind != null) message.kind = String(object.kind); if (object.pitrTimestampMs != null) if ($util.Long) - (message.pitrTimestampMs = $util.Long.fromValue(object.pitrTimestampMs)).unsigned = false; + message.pitrTimestampMs = $util.Long.fromValue(object.pitrTimestampMs, false); else if (typeof object.pitrTimestampMs === "string") message.pitrTimestampMs = parseInt(object.pitrTimestampMs, 10); else if (typeof object.pitrTimestampMs === "number") @@ -100062,14 +107302,14 @@ if (object.destinationInstanceName != null) message.destinationInstanceName = String(object.destinationInstanceName); if (object.binLogCoordinates != null) { - if (typeof object.binLogCoordinates !== "object") + if (!$util.isObject(object.binLogCoordinates)) throw TypeError(".google.cloud.sql.v1beta4.CloneContext.binLogCoordinates: object expected"); - message.binLogCoordinates = $root.google.cloud.sql.v1beta4.BinLogCoordinates.fromObject(object.binLogCoordinates); + message.binLogCoordinates = $root.google.cloud.sql.v1beta4.BinLogCoordinates.fromObject(object.binLogCoordinates, long + 1); } if (object.pointInTime != null) { - if (typeof object.pointInTime !== "object") + if (!$util.isObject(object.pointInTime)) throw TypeError(".google.cloud.sql.v1beta4.CloneContext.pointInTime: object expected"); - message.pointInTime = $root.google.protobuf.Timestamp.fromObject(object.pointInTime); + message.pointInTime = $root.google.protobuf.Timestamp.fromObject(object.pointInTime, long + 1); } if (object.allocatedIpRange != null) message.allocatedIpRange = String(object.allocatedIpRange); @@ -100085,9 +107325,9 @@ if (object.preferredSecondaryZone != null) message.preferredSecondaryZone = String(object.preferredSecondaryZone); if (object.sourceInstanceDeletionTime != null) { - if (typeof object.sourceInstanceDeletionTime !== "object") + if (!$util.isObject(object.sourceInstanceDeletionTime)) throw TypeError(".google.cloud.sql.v1beta4.CloneContext.sourceInstanceDeletionTime: object expected"); - message.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.fromObject(object.sourceInstanceDeletionTime); + message.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.fromObject(object.sourceInstanceDeletionTime, long + 1); } if (object.destinationProject != null) message.destinationProject = String(object.destinationProject); @@ -100105,9 +107345,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CloneContext.toObject = function toObject(message, options) { + CloneContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.databaseNames = []; @@ -100115,55 +107359,57 @@ object.kind = ""; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.pitrTimestampMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.pitrTimestampMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.pitrTimestampMs = options.longs === String ? "0" : 0; + object.pitrTimestampMs = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.destinationInstanceName = ""; object.binLogCoordinates = null; object.pointInTime = null; object.allocatedIpRange = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.pitrTimestampMs != null && message.hasOwnProperty("pitrTimestampMs")) - if (typeof message.pitrTimestampMs === "number") + if (message.pitrTimestampMs != null && Object.hasOwnProperty.call(message, "pitrTimestampMs")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.pitrTimestampMs = typeof message.pitrTimestampMs === "number" ? BigInt(message.pitrTimestampMs) : $util.Long.fromBits(message.pitrTimestampMs.low >>> 0, message.pitrTimestampMs.high >>> 0, false).toBigInt(); + else if (typeof message.pitrTimestampMs === "number") object.pitrTimestampMs = options.longs === String ? String(message.pitrTimestampMs) : message.pitrTimestampMs; else object.pitrTimestampMs = options.longs === String ? $util.Long.prototype.toString.call(message.pitrTimestampMs) : options.longs === Number ? new $util.LongBits(message.pitrTimestampMs.low >>> 0, message.pitrTimestampMs.high >>> 0).toNumber() : message.pitrTimestampMs; - if (message.destinationInstanceName != null && message.hasOwnProperty("destinationInstanceName")) + if (message.destinationInstanceName != null && Object.hasOwnProperty.call(message, "destinationInstanceName")) object.destinationInstanceName = message.destinationInstanceName; - if (message.binLogCoordinates != null && message.hasOwnProperty("binLogCoordinates")) - object.binLogCoordinates = $root.google.cloud.sql.v1beta4.BinLogCoordinates.toObject(message.binLogCoordinates, options); - if (message.pointInTime != null && message.hasOwnProperty("pointInTime")) - object.pointInTime = $root.google.protobuf.Timestamp.toObject(message.pointInTime, options); - if (message.allocatedIpRange != null && message.hasOwnProperty("allocatedIpRange")) + if (message.binLogCoordinates != null && Object.hasOwnProperty.call(message, "binLogCoordinates")) + object.binLogCoordinates = $root.google.cloud.sql.v1beta4.BinLogCoordinates.toObject(message.binLogCoordinates, options, q + 1); + if (message.pointInTime != null && Object.hasOwnProperty.call(message, "pointInTime")) + object.pointInTime = $root.google.protobuf.Timestamp.toObject(message.pointInTime, options, q + 1); + if (message.allocatedIpRange != null && Object.hasOwnProperty.call(message, "allocatedIpRange")) object.allocatedIpRange = message.allocatedIpRange; if (message.databaseNames && message.databaseNames.length) { object.databaseNames = []; for (var j = 0; j < message.databaseNames.length; ++j) object.databaseNames[j] = message.databaseNames[j]; } - if (message.preferredZone != null && message.hasOwnProperty("preferredZone")) { + if (message.preferredZone != null && Object.hasOwnProperty.call(message, "preferredZone")) { object.preferredZone = message.preferredZone; if (options.oneofs) object._preferredZone = "preferredZone"; } - if (message.preferredSecondaryZone != null && message.hasOwnProperty("preferredSecondaryZone")) { + if (message.preferredSecondaryZone != null && Object.hasOwnProperty.call(message, "preferredSecondaryZone")) { object.preferredSecondaryZone = message.preferredSecondaryZone; if (options.oneofs) object._preferredSecondaryZone = "preferredSecondaryZone"; } - if (message.sourceInstanceDeletionTime != null && message.hasOwnProperty("sourceInstanceDeletionTime")) { - object.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.toObject(message.sourceInstanceDeletionTime, options); + if (message.sourceInstanceDeletionTime != null && Object.hasOwnProperty.call(message, "sourceInstanceDeletionTime")) { + object.sourceInstanceDeletionTime = $root.google.protobuf.Timestamp.toObject(message.sourceInstanceDeletionTime, options, q + 1); if (options.oneofs) object._sourceInstanceDeletionTime = "sourceInstanceDeletionTime"; } - if (message.destinationProject != null && message.hasOwnProperty("destinationProject")) { + if (message.destinationProject != null && Object.hasOwnProperty.call(message, "destinationProject")) { object.destinationProject = message.destinationProject; if (options.oneofs) object._destinationProject = "destinationProject"; } - if (message.destinationNetwork != null && message.hasOwnProperty("destinationNetwork")) { + if (message.destinationNetwork != null && Object.hasOwnProperty.call(message, "destinationNetwork")) { object.destinationNetwork = message.destinationNetwork; if (options.oneofs) object._destinationNetwork = "destinationNetwork"; @@ -100228,7 +107474,7 @@ function Database(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -100339,9 +107585,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Database.encode = function encode(message, writer) { + Database.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.charset != null && Object.hasOwnProperty.call(message, "charset")) @@ -100359,7 +107609,7 @@ if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 8, wireType 2 =*/66).string(message.project); if (message.sqlserverDatabaseDetails != null && Object.hasOwnProperty.call(message, "sqlserverDatabaseDetails")) - $root.google.cloud.sql.v1beta4.SqlServerDatabaseDetails.encode(message.sqlserverDatabaseDetails, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SqlServerDatabaseDetails.encode(message.sqlserverDatabaseDetails, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); return writer; }; @@ -100373,7 +107623,7 @@ * @returns {$protobuf.Writer} Writer */ Database.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -100387,9 +107637,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Database.decode = function decode(reader, length, error) { + Database.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.Database(); while (reader.pos < end) { var tag = reader.uint32(); @@ -100429,11 +107683,11 @@ break; } case 9: { - message.sqlserverDatabaseDetails = $root.google.cloud.sql.v1beta4.SqlServerDatabaseDetails.decode(reader, reader.uint32()); + message.sqlserverDatabaseDetails = $root.google.cloud.sql.v1beta4.SqlServerDatabaseDetails.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -100464,38 +107718,42 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Database.verify = function verify(message) { + Database.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.charset != null && message.hasOwnProperty("charset")) + if (message.charset != null && Object.hasOwnProperty.call(message, "charset")) if (!$util.isString(message.charset)) return "charset: string expected"; - if (message.collation != null && message.hasOwnProperty("collation")) + if (message.collation != null && Object.hasOwnProperty.call(message, "collation")) if (!$util.isString(message.collation)) return "collation: string expected"; - if (message.etag != null && message.hasOwnProperty("etag")) + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) if (!$util.isString(message.etag)) return "etag: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) if (!$util.isString(message.selfLink)) return "selfLink: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.sqlserverDatabaseDetails != null && message.hasOwnProperty("sqlserverDatabaseDetails")) { + if (message.sqlserverDatabaseDetails != null && Object.hasOwnProperty.call(message, "sqlserverDatabaseDetails")) { properties.databaseDetails = 1; { - var error = $root.google.cloud.sql.v1beta4.SqlServerDatabaseDetails.verify(message.sqlserverDatabaseDetails); + var error = $root.google.cloud.sql.v1beta4.SqlServerDatabaseDetails.verify(message.sqlserverDatabaseDetails, long + 1); if (error) return "sqlserverDatabaseDetails." + error; } @@ -100511,9 +107769,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.Database} Database */ - Database.fromObject = function fromObject(object) { + Database.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.Database) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.Database: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.Database(); if (object.kind != null) message.kind = String(object.kind); @@ -100532,9 +107796,9 @@ if (object.project != null) message.project = String(object.project); if (object.sqlserverDatabaseDetails != null) { - if (typeof object.sqlserverDatabaseDetails !== "object") + if (!$util.isObject(object.sqlserverDatabaseDetails)) throw TypeError(".google.cloud.sql.v1beta4.Database.sqlserverDatabaseDetails: object expected"); - message.sqlserverDatabaseDetails = $root.google.cloud.sql.v1beta4.SqlServerDatabaseDetails.fromObject(object.sqlserverDatabaseDetails); + message.sqlserverDatabaseDetails = $root.google.cloud.sql.v1beta4.SqlServerDatabaseDetails.fromObject(object.sqlserverDatabaseDetails, long + 1); } return message; }; @@ -100548,9 +107812,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Database.toObject = function toObject(message, options) { + Database.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -100562,24 +107830,24 @@ object.selfLink = ""; object.project = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.charset != null && message.hasOwnProperty("charset")) + if (message.charset != null && Object.hasOwnProperty.call(message, "charset")) object.charset = message.charset; - if (message.collation != null && message.hasOwnProperty("collation")) + if (message.collation != null && Object.hasOwnProperty.call(message, "collation")) object.collation = message.collation; - if (message.etag != null && message.hasOwnProperty("etag")) + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) object.etag = message.etag; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) object.selfLink = message.selfLink; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.sqlserverDatabaseDetails != null && message.hasOwnProperty("sqlserverDatabaseDetails")) { - object.sqlserverDatabaseDetails = $root.google.cloud.sql.v1beta4.SqlServerDatabaseDetails.toObject(message.sqlserverDatabaseDetails, options); + if (message.sqlserverDatabaseDetails != null && Object.hasOwnProperty.call(message, "sqlserverDatabaseDetails")) { + object.sqlserverDatabaseDetails = $root.google.cloud.sql.v1beta4.SqlServerDatabaseDetails.toObject(message.sqlserverDatabaseDetails, options, q + 1); if (options.oneofs) object.databaseDetails = "sqlserverDatabaseDetails"; } @@ -100636,7 +107904,7 @@ function SqlServerDatabaseDetails(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -100677,9 +107945,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlServerDatabaseDetails.encode = function encode(message, writer) { + SqlServerDatabaseDetails.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.compatibilityLevel != null && Object.hasOwnProperty.call(message, "compatibilityLevel")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.compatibilityLevel); if (message.recoveryModel != null && Object.hasOwnProperty.call(message, "recoveryModel")) @@ -100697,7 +107969,7 @@ * @returns {$protobuf.Writer} Writer */ SqlServerDatabaseDetails.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -100711,9 +107983,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlServerDatabaseDetails.decode = function decode(reader, length, error) { + SqlServerDatabaseDetails.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlServerDatabaseDetails(); while (reader.pos < end) { var tag = reader.uint32(); @@ -100729,7 +108005,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -100760,13 +108036,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlServerDatabaseDetails.verify = function verify(message) { + SqlServerDatabaseDetails.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.compatibilityLevel != null && message.hasOwnProperty("compatibilityLevel")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.compatibilityLevel != null && Object.hasOwnProperty.call(message, "compatibilityLevel")) if (!$util.isInteger(message.compatibilityLevel)) return "compatibilityLevel: integer expected"; - if (message.recoveryModel != null && message.hasOwnProperty("recoveryModel")) + if (message.recoveryModel != null && Object.hasOwnProperty.call(message, "recoveryModel")) if (!$util.isString(message.recoveryModel)) return "recoveryModel: string expected"; return null; @@ -100780,9 +108060,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlServerDatabaseDetails} SqlServerDatabaseDetails */ - SqlServerDatabaseDetails.fromObject = function fromObject(object) { + SqlServerDatabaseDetails.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlServerDatabaseDetails) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlServerDatabaseDetails: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlServerDatabaseDetails(); if (object.compatibilityLevel != null) message.compatibilityLevel = object.compatibilityLevel | 0; @@ -100800,17 +108086,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlServerDatabaseDetails.toObject = function toObject(message, options) { + SqlServerDatabaseDetails.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.compatibilityLevel = 0; object.recoveryModel = ""; } - if (message.compatibilityLevel != null && message.hasOwnProperty("compatibilityLevel")) + if (message.compatibilityLevel != null && Object.hasOwnProperty.call(message, "compatibilityLevel")) object.compatibilityLevel = message.compatibilityLevel; - if (message.recoveryModel != null && message.hasOwnProperty("recoveryModel")) + if (message.recoveryModel != null && Object.hasOwnProperty.call(message, "recoveryModel")) object.recoveryModel = message.recoveryModel; return object; }; @@ -100865,7 +108155,7 @@ function DatabaseFlags(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -100906,9 +108196,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DatabaseFlags.encode = function encode(message, writer) { + DatabaseFlags.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.value != null && Object.hasOwnProperty.call(message, "value")) @@ -100926,7 +108220,7 @@ * @returns {$protobuf.Writer} Writer */ DatabaseFlags.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -100940,9 +108234,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DatabaseFlags.decode = function decode(reader, length, error) { + DatabaseFlags.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DatabaseFlags(); while (reader.pos < end) { var tag = reader.uint32(); @@ -100958,7 +108256,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -100989,13 +108287,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DatabaseFlags.verify = function verify(message) { + DatabaseFlags.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!$util.isString(message.value)) return "value: string expected"; return null; @@ -101009,9 +108311,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.DatabaseFlags} DatabaseFlags */ - DatabaseFlags.fromObject = function fromObject(object) { + DatabaseFlags.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.DatabaseFlags) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DatabaseFlags: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.DatabaseFlags(); if (object.name != null) message.name = String(object.name); @@ -101029,17 +108337,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DatabaseFlags.toObject = function toObject(message, options) { + DatabaseFlags.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; object.value = ""; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = message.value; return object; }; @@ -101094,7 +108406,7 @@ function SyncFlags(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -101135,9 +108447,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SyncFlags.encode = function encode(message, writer) { + SyncFlags.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.value != null && Object.hasOwnProperty.call(message, "value")) @@ -101155,7 +108471,7 @@ * @returns {$protobuf.Writer} Writer */ SyncFlags.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -101169,9 +108485,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SyncFlags.decode = function decode(reader, length, error) { + SyncFlags.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SyncFlags(); while (reader.pos < end) { var tag = reader.uint32(); @@ -101187,7 +108507,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -101218,13 +108538,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SyncFlags.verify = function verify(message) { + SyncFlags.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!$util.isString(message.value)) return "value: string expected"; return null; @@ -101238,9 +108562,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SyncFlags} SyncFlags */ - SyncFlags.fromObject = function fromObject(object) { + SyncFlags.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SyncFlags) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SyncFlags: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SyncFlags(); if (object.name != null) message.name = String(object.name); @@ -101258,17 +108588,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SyncFlags.toObject = function toObject(message, options) { + SyncFlags.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; object.value = ""; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = message.value; return object; }; @@ -101324,7 +108658,7 @@ function InstanceReference(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -101373,9 +108707,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstanceReference.encode = function encode(message, writer) { + InstanceReference.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.region != null && Object.hasOwnProperty.call(message, "region")) @@ -101395,7 +108733,7 @@ * @returns {$protobuf.Writer} Writer */ InstanceReference.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -101409,9 +108747,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstanceReference.decode = function decode(reader, length, error) { + InstanceReference.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstanceReference(); while (reader.pos < end) { var tag = reader.uint32(); @@ -101431,7 +108773,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -101462,16 +108804,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstanceReference.verify = function verify(message) { + InstanceReference.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.region != null && message.hasOwnProperty("region")) + if (message.region != null && Object.hasOwnProperty.call(message, "region")) if (!$util.isString(message.region)) return "region: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -101485,9 +108831,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstanceReference} InstanceReference */ - InstanceReference.fromObject = function fromObject(object) { + InstanceReference.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstanceReference) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstanceReference: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstanceReference(); if (object.name != null) message.name = String(object.name); @@ -101507,20 +108859,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstanceReference.toObject = function toObject(message, options) { + InstanceReference.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; object.region = ""; object.project = ""; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.region != null && message.hasOwnProperty("region")) + if (message.region != null && Object.hasOwnProperty.call(message, "region")) object.region = message.region; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -101632,7 +108988,7 @@ this.dnsNames = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -102134,9 +109490,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DatabaseInstance.encode = function encode(message, writer) { + DatabaseInstance.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.state != null && Object.hasOwnProperty.call(message, "state")) @@ -102144,25 +109504,25 @@ if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) writer.uint32(/* id 3, wireType 0 =*/24).int32(message.databaseVersion); if (message.settings != null && Object.hasOwnProperty.call(message, "settings")) - $root.google.cloud.sql.v1beta4.Settings.encode(message.settings, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.Settings.encode(message.settings, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) writer.uint32(/* id 5, wireType 2 =*/42).string(message.etag); if (message.failoverReplica != null && Object.hasOwnProperty.call(message, "failoverReplica")) - $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlFailoverReplica.encode(message.failoverReplica, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlFailoverReplica.encode(message.failoverReplica, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.masterInstanceName != null && Object.hasOwnProperty.call(message, "masterInstanceName")) writer.uint32(/* id 7, wireType 2 =*/58).string(message.masterInstanceName); if (message.replicaNames != null && message.replicaNames.length) for (var i = 0; i < message.replicaNames.length; ++i) writer.uint32(/* id 8, wireType 2 =*/66).string(message.replicaNames[i]); if (message.maxDiskSize != null && Object.hasOwnProperty.call(message, "maxDiskSize")) - $root.google.protobuf.Int64Value.encode(message.maxDiskSize, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.maxDiskSize, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); if (message.currentDiskSize != null && Object.hasOwnProperty.call(message, "currentDiskSize")) - $root.google.protobuf.Int64Value.encode(message.currentDiskSize, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.currentDiskSize, writer.uint32(/* id 10, wireType 2 =*/82).fork(), q + 1).ldelim(); if (message.ipAddresses != null && message.ipAddresses.length) for (var i = 0; i < message.ipAddresses.length; ++i) - $root.google.cloud.sql.v1beta4.IpMapping.encode(message.ipAddresses[i], writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.IpMapping.encode(message.ipAddresses[i], writer.uint32(/* id 11, wireType 2 =*/90).fork(), q + 1).ldelim(); if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) - $root.google.cloud.sql.v1beta4.SslCert.encode(message.serverCaCert, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SslCert.encode(message.serverCaCert, writer.uint32(/* id 12, wireType 2 =*/98).fork(), q + 1).ldelim(); if (message.instanceType != null && Object.hasOwnProperty.call(message, "instanceType")) writer.uint32(/* id 13, wireType 0 =*/104).int32(message.instanceType); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -102172,9 +109532,9 @@ if (message.serviceAccountEmailAddress != null && Object.hasOwnProperty.call(message, "serviceAccountEmailAddress")) writer.uint32(/* id 16, wireType 2 =*/130).string(message.serviceAccountEmailAddress); if (message.onPremisesConfiguration != null && Object.hasOwnProperty.call(message, "onPremisesConfiguration")) - $root.google.cloud.sql.v1beta4.OnPremisesConfiguration.encode(message.onPremisesConfiguration, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.OnPremisesConfiguration.encode(message.onPremisesConfiguration, writer.uint32(/* id 17, wireType 2 =*/138).fork(), q + 1).ldelim(); if (message.replicaConfiguration != null && Object.hasOwnProperty.call(message, "replicaConfiguration")) - $root.google.cloud.sql.v1beta4.ReplicaConfiguration.encode(message.replicaConfiguration, writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ReplicaConfiguration.encode(message.replicaConfiguration, writer.uint32(/* id 18, wireType 2 =*/146).fork(), q + 1).ldelim(); if (message.backendType != null && Object.hasOwnProperty.call(message, "backendType")) writer.uint32(/* id 19, wireType 0 =*/152).int32(message.backendType); if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) @@ -102194,21 +109554,21 @@ if (message.gceZone != null && Object.hasOwnProperty.call(message, "gceZone")) writer.uint32(/* id 25, wireType 2 =*/202).string(message.gceZone); if (message.diskEncryptionConfiguration != null && Object.hasOwnProperty.call(message, "diskEncryptionConfiguration")) - $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.encode(message.diskEncryptionConfiguration, writer.uint32(/* id 26, wireType 2 =*/210).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.encode(message.diskEncryptionConfiguration, writer.uint32(/* id 26, wireType 2 =*/210).fork(), q + 1).ldelim(); if (message.diskEncryptionStatus != null && Object.hasOwnProperty.call(message, "diskEncryptionStatus")) - $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.encode(message.diskEncryptionStatus, writer.uint32(/* id 27, wireType 2 =*/218).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.encode(message.diskEncryptionStatus, writer.uint32(/* id 27, wireType 2 =*/218).fork(), q + 1).ldelim(); if (message.rootPassword != null && Object.hasOwnProperty.call(message, "rootPassword")) writer.uint32(/* id 29, wireType 2 =*/234).string(message.rootPassword); if (message.scheduledMaintenance != null && Object.hasOwnProperty.call(message, "scheduledMaintenance")) - $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlScheduledMaintenance.encode(message.scheduledMaintenance, writer.uint32(/* id 30, wireType 2 =*/242).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlScheduledMaintenance.encode(message.scheduledMaintenance, writer.uint32(/* id 30, wireType 2 =*/242).fork(), q + 1).ldelim(); if (message.secondaryGceZone != null && Object.hasOwnProperty.call(message, "secondaryGceZone")) writer.uint32(/* id 34, wireType 2 =*/274).string(message.secondaryGceZone); if (message.satisfiesPzs != null && Object.hasOwnProperty.call(message, "satisfiesPzs")) - $root.google.protobuf.BoolValue.encode(message.satisfiesPzs, writer.uint32(/* id 35, wireType 2 =*/282).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.satisfiesPzs, writer.uint32(/* id 35, wireType 2 =*/282).fork(), q + 1).ldelim(); if (message.outOfDiskReport != null && Object.hasOwnProperty.call(message, "outOfDiskReport")) - $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlOutOfDiskReport.encode(message.outOfDiskReport, writer.uint32(/* id 38, wireType 2 =*/306).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlOutOfDiskReport.encode(message.outOfDiskReport, writer.uint32(/* id 38, wireType 2 =*/306).fork(), q + 1).ldelim(); if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) - $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 39, wireType 2 =*/314).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 39, wireType 2 =*/314).fork(), q + 1).ldelim(); if (message.databaseInstalledVersion != null && Object.hasOwnProperty.call(message, "databaseInstalledVersion")) writer.uint32(/* id 40, wireType 2 =*/322).string(message.databaseInstalledVersion); if (message.availableMaintenanceVersions != null && message.availableMaintenanceVersions.length) @@ -102218,7 +109578,7 @@ writer.uint32(/* id 42, wireType 2 =*/338).string(message.maintenanceVersion); if (message.upgradableDatabaseVersions != null && message.upgradableDatabaseVersions.length) for (var i = 0; i < message.upgradableDatabaseVersions.length; ++i) - $root.google.cloud.sql.v1beta4.AvailableDatabaseVersion.encode(message.upgradableDatabaseVersions[i], writer.uint32(/* id 45, wireType 2 =*/362).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.AvailableDatabaseVersion.encode(message.upgradableDatabaseVersions[i], writer.uint32(/* id 45, wireType 2 =*/362).fork(), q + 1).ldelim(); if (message.sqlNetworkArchitecture != null && Object.hasOwnProperty.call(message, "sqlNetworkArchitecture")) writer.uint32(/* id 47, wireType 0 =*/376).int32(message.sqlNetworkArchitecture); if (message.pscServiceAttachmentLink != null && Object.hasOwnProperty.call(message, "pscServiceAttachmentLink")) @@ -102230,15 +109590,15 @@ if (message.writeEndpoint != null && Object.hasOwnProperty.call(message, "writeEndpoint")) writer.uint32(/* id 52, wireType 2 =*/418).string(message.writeEndpoint); if (message.replicationCluster != null && Object.hasOwnProperty.call(message, "replicationCluster")) - $root.google.cloud.sql.v1beta4.ReplicationCluster.encode(message.replicationCluster, writer.uint32(/* id 54, wireType 2 =*/434).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ReplicationCluster.encode(message.replicationCluster, writer.uint32(/* id 54, wireType 2 =*/434).fork(), q + 1).ldelim(); if (message.geminiConfig != null && Object.hasOwnProperty.call(message, "geminiConfig")) - $root.google.cloud.sql.v1beta4.GeminiInstanceConfig.encode(message.geminiConfig, writer.uint32(/* id 55, wireType 2 =*/442).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.GeminiInstanceConfig.encode(message.geminiConfig, writer.uint32(/* id 55, wireType 2 =*/442).fork(), q + 1).ldelim(); if (message.satisfiesPzi != null && Object.hasOwnProperty.call(message, "satisfiesPzi")) - $root.google.protobuf.BoolValue.encode(message.satisfiesPzi, writer.uint32(/* id 56, wireType 2 =*/450).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.satisfiesPzi, writer.uint32(/* id 56, wireType 2 =*/450).fork(), q + 1).ldelim(); if (message.switchTransactionLogsToCloudStorageEnabled != null && Object.hasOwnProperty.call(message, "switchTransactionLogsToCloudStorageEnabled")) - $root.google.protobuf.BoolValue.encode(message.switchTransactionLogsToCloudStorageEnabled, writer.uint32(/* id 57, wireType 2 =*/458).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.switchTransactionLogsToCloudStorageEnabled, writer.uint32(/* id 57, wireType 2 =*/458).fork(), q + 1).ldelim(); if (message.includeReplicasForMajorVersionUpgrade != null && Object.hasOwnProperty.call(message, "includeReplicasForMajorVersionUpgrade")) - $root.google.protobuf.BoolValue.encode(message.includeReplicasForMajorVersionUpgrade, writer.uint32(/* id 59, wireType 2 =*/474).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.includeReplicasForMajorVersionUpgrade, writer.uint32(/* id 59, wireType 2 =*/474).fork(), q + 1).ldelim(); if (message.tags != null && Object.hasOwnProperty.call(message, "tags")) for (var keys = Object.keys(message.tags), i = 0; i < keys.length; ++i) writer.uint32(/* id 60, wireType 2 =*/482).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.tags[keys[i]]).ldelim(); @@ -102246,10 +109606,10 @@ writer.uint32(/* id 63, wireType 0 =*/504).int32(message.nodeCount); if (message.nodes != null && message.nodes.length) for (var i = 0; i < message.nodes.length; ++i) - $root.google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig.encode(message.nodes[i], writer.uint32(/* id 64, wireType 2 =*/514).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig.encode(message.nodes[i], writer.uint32(/* id 64, wireType 2 =*/514).fork(), q + 1).ldelim(); if (message.dnsNames != null && message.dnsNames.length) for (var i = 0; i < message.dnsNames.length; ++i) - $root.google.cloud.sql.v1beta4.DnsNameMapping.encode(message.dnsNames[i], writer.uint32(/* id 67, wireType 2 =*/538).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DnsNameMapping.encode(message.dnsNames[i], writer.uint32(/* id 67, wireType 2 =*/538).fork(), q + 1).ldelim(); return writer; }; @@ -102263,7 +109623,7 @@ * @returns {$protobuf.Writer} Writer */ DatabaseInstance.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -102277,9 +109637,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DatabaseInstance.decode = function decode(reader, length, error) { + DatabaseInstance.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DatabaseInstance(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -102299,7 +109663,7 @@ break; } case 4: { - message.settings = $root.google.cloud.sql.v1beta4.Settings.decode(reader, reader.uint32()); + message.settings = $root.google.cloud.sql.v1beta4.Settings.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -102307,7 +109671,7 @@ break; } case 6: { - message.failoverReplica = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlFailoverReplica.decode(reader, reader.uint32()); + message.failoverReplica = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlFailoverReplica.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { @@ -102321,21 +109685,21 @@ break; } case 9: { - message.maxDiskSize = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.maxDiskSize = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { - message.currentDiskSize = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.currentDiskSize = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { if (!(message.ipAddresses && message.ipAddresses.length)) message.ipAddresses = []; - message.ipAddresses.push($root.google.cloud.sql.v1beta4.IpMapping.decode(reader, reader.uint32())); + message.ipAddresses.push($root.google.cloud.sql.v1beta4.IpMapping.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 12: { - message.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32()); + message.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32(), undefined, long + 1); break; } case 13: { @@ -102355,11 +109719,11 @@ break; } case 17: { - message.onPremisesConfiguration = $root.google.cloud.sql.v1beta4.OnPremisesConfiguration.decode(reader, reader.uint32()); + message.onPremisesConfiguration = $root.google.cloud.sql.v1beta4.OnPremisesConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 18: { - message.replicaConfiguration = $root.google.cloud.sql.v1beta4.ReplicaConfiguration.decode(reader, reader.uint32()); + message.replicaConfiguration = $root.google.cloud.sql.v1beta4.ReplicaConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 19: { @@ -102402,11 +109766,11 @@ break; } case 26: { - message.diskEncryptionConfiguration = $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.decode(reader, reader.uint32()); + message.diskEncryptionConfiguration = $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 27: { - message.diskEncryptionStatus = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.decode(reader, reader.uint32()); + message.diskEncryptionStatus = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.decode(reader, reader.uint32(), undefined, long + 1); break; } case 29: { @@ -102414,11 +109778,11 @@ break; } case 30: { - message.scheduledMaintenance = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlScheduledMaintenance.decode(reader, reader.uint32()); + message.scheduledMaintenance = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlScheduledMaintenance.decode(reader, reader.uint32(), undefined, long + 1); break; } case 35: { - message.satisfiesPzs = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.satisfiesPzs = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 40: { @@ -102426,11 +109790,11 @@ break; } case 38: { - message.outOfDiskReport = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlOutOfDiskReport.decode(reader, reader.uint32()); + message.outOfDiskReport = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlOutOfDiskReport.decode(reader, reader.uint32(), undefined, long + 1); break; } case 39: { - message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 41: { @@ -102446,7 +109810,7 @@ case 45: { if (!(message.upgradableDatabaseVersions && message.upgradableDatabaseVersions.length)) message.upgradableDatabaseVersions = []; - message.upgradableDatabaseVersions.push($root.google.cloud.sql.v1beta4.AvailableDatabaseVersion.decode(reader, reader.uint32())); + message.upgradableDatabaseVersions.push($root.google.cloud.sql.v1beta4.AvailableDatabaseVersion.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 47: { @@ -102470,23 +109834,23 @@ break; } case 54: { - message.replicationCluster = $root.google.cloud.sql.v1beta4.ReplicationCluster.decode(reader, reader.uint32()); + message.replicationCluster = $root.google.cloud.sql.v1beta4.ReplicationCluster.decode(reader, reader.uint32(), undefined, long + 1); break; } case 55: { - message.geminiConfig = $root.google.cloud.sql.v1beta4.GeminiInstanceConfig.decode(reader, reader.uint32()); + message.geminiConfig = $root.google.cloud.sql.v1beta4.GeminiInstanceConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 56: { - message.satisfiesPzi = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.satisfiesPzi = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 57: { - message.switchTransactionLogsToCloudStorageEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.switchTransactionLogsToCloudStorageEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 59: { - message.includeReplicasForMajorVersionUpgrade = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.includeReplicasForMajorVersionUpgrade = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 60: { @@ -102505,10 +109869,12 @@ value = reader.string(); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.tags, key); message.tags[key] = value; break; } @@ -102519,17 +109885,17 @@ case 64: { if (!(message.nodes && message.nodes.length)) message.nodes = []; - message.nodes.push($root.google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig.decode(reader, reader.uint32())); + message.nodes.push($root.google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 67: { if (!(message.dnsNames && message.dnsNames.length)) message.dnsNames = []; - message.dnsNames.push($root.google.cloud.sql.v1beta4.DnsNameMapping.decode(reader, reader.uint32())); + message.dnsNames.push($root.google.cloud.sql.v1beta4.DnsNameMapping.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -102560,14 +109926,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DatabaseInstance.verify = function verify(message) { + DatabaseInstance.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.state != null && message.hasOwnProperty("state")) + if (message.state != null && Object.hasOwnProperty.call(message, "state")) switch (message.state) { default: return "state: enum value expected"; @@ -102582,7 +109952,7 @@ case 8: break; } - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) switch (message.databaseVersion) { default: return "databaseVersion: enum value expected"; @@ -102629,6 +109999,8 @@ case 272: case 408: case 557: + case 684: + case 781: case 26: case 27: case 28: @@ -102637,56 +110009,59 @@ case 200: case 201: case 202: + case 549: + case 550: + case 551: break; } - if (message.settings != null && message.hasOwnProperty("settings")) { - var error = $root.google.cloud.sql.v1beta4.Settings.verify(message.settings); + if (message.settings != null && Object.hasOwnProperty.call(message, "settings")) { + var error = $root.google.cloud.sql.v1beta4.Settings.verify(message.settings, long + 1); if (error) return "settings." + error; } - if (message.etag != null && message.hasOwnProperty("etag")) + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) if (!$util.isString(message.etag)) return "etag: string expected"; - if (message.failoverReplica != null && message.hasOwnProperty("failoverReplica")) { - var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlFailoverReplica.verify(message.failoverReplica); + if (message.failoverReplica != null && Object.hasOwnProperty.call(message, "failoverReplica")) { + var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlFailoverReplica.verify(message.failoverReplica, long + 1); if (error) return "failoverReplica." + error; } - if (message.masterInstanceName != null && message.hasOwnProperty("masterInstanceName")) + if (message.masterInstanceName != null && Object.hasOwnProperty.call(message, "masterInstanceName")) if (!$util.isString(message.masterInstanceName)) return "masterInstanceName: string expected"; - if (message.replicaNames != null && message.hasOwnProperty("replicaNames")) { + if (message.replicaNames != null && Object.hasOwnProperty.call(message, "replicaNames")) { if (!Array.isArray(message.replicaNames)) return "replicaNames: array expected"; for (var i = 0; i < message.replicaNames.length; ++i) if (!$util.isString(message.replicaNames[i])) return "replicaNames: string[] expected"; } - if (message.maxDiskSize != null && message.hasOwnProperty("maxDiskSize")) { - var error = $root.google.protobuf.Int64Value.verify(message.maxDiskSize); + if (message.maxDiskSize != null && Object.hasOwnProperty.call(message, "maxDiskSize")) { + var error = $root.google.protobuf.Int64Value.verify(message.maxDiskSize, long + 1); if (error) return "maxDiskSize." + error; } - if (message.currentDiskSize != null && message.hasOwnProperty("currentDiskSize")) { - var error = $root.google.protobuf.Int64Value.verify(message.currentDiskSize); + if (message.currentDiskSize != null && Object.hasOwnProperty.call(message, "currentDiskSize")) { + var error = $root.google.protobuf.Int64Value.verify(message.currentDiskSize, long + 1); if (error) return "currentDiskSize." + error; } - if (message.ipAddresses != null && message.hasOwnProperty("ipAddresses")) { + if (message.ipAddresses != null && Object.hasOwnProperty.call(message, "ipAddresses")) { if (!Array.isArray(message.ipAddresses)) return "ipAddresses: array expected"; for (var i = 0; i < message.ipAddresses.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.IpMapping.verify(message.ipAddresses[i]); + var error = $root.google.cloud.sql.v1beta4.IpMapping.verify(message.ipAddresses[i], long + 1); if (error) return "ipAddresses." + error; } } - if (message.serverCaCert != null && message.hasOwnProperty("serverCaCert")) { - var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.serverCaCert); + if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) { + var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.serverCaCert, long + 1); if (error) return "serverCaCert." + error; } - if (message.instanceType != null && message.hasOwnProperty("instanceType")) + if (message.instanceType != null && Object.hasOwnProperty.call(message, "instanceType")) switch (message.instanceType) { default: return "instanceType: enum value expected"; @@ -102697,26 +110072,26 @@ case 5: break; } - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.ipv6Address != null && message.hasOwnProperty("ipv6Address")) + if (message.ipv6Address != null && Object.hasOwnProperty.call(message, "ipv6Address")) if (!$util.isString(message.ipv6Address)) return "ipv6Address: string expected"; - if (message.serviceAccountEmailAddress != null && message.hasOwnProperty("serviceAccountEmailAddress")) + if (message.serviceAccountEmailAddress != null && Object.hasOwnProperty.call(message, "serviceAccountEmailAddress")) if (!$util.isString(message.serviceAccountEmailAddress)) return "serviceAccountEmailAddress: string expected"; - if (message.onPremisesConfiguration != null && message.hasOwnProperty("onPremisesConfiguration")) { - var error = $root.google.cloud.sql.v1beta4.OnPremisesConfiguration.verify(message.onPremisesConfiguration); + if (message.onPremisesConfiguration != null && Object.hasOwnProperty.call(message, "onPremisesConfiguration")) { + var error = $root.google.cloud.sql.v1beta4.OnPremisesConfiguration.verify(message.onPremisesConfiguration, long + 1); if (error) return "onPremisesConfiguration." + error; } - if (message.replicaConfiguration != null && message.hasOwnProperty("replicaConfiguration")) { - var error = $root.google.cloud.sql.v1beta4.ReplicaConfiguration.verify(message.replicaConfiguration); + if (message.replicaConfiguration != null && Object.hasOwnProperty.call(message, "replicaConfiguration")) { + var error = $root.google.cloud.sql.v1beta4.ReplicaConfiguration.verify(message.replicaConfiguration, long + 1); if (error) return "replicaConfiguration." + error; } - if (message.backendType != null && message.hasOwnProperty("backendType")) + if (message.backendType != null && Object.hasOwnProperty.call(message, "backendType")) switch (message.backendType) { default: return "backendType: enum value expected"; @@ -102726,10 +110101,10 @@ case 3: break; } - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) if (!$util.isString(message.selfLink)) return "selfLink: string expected"; - if (message.suspensionReason != null && message.hasOwnProperty("suspensionReason")) { + if (message.suspensionReason != null && Object.hasOwnProperty.call(message, "suspensionReason")) { if (!Array.isArray(message.suspensionReason)) return "suspensionReason: array expected"; for (var i = 0; i < message.suspensionReason.length; ++i) @@ -102741,83 +110116,84 @@ case 3: case 4: case 5: + case 8: break; } } - if (message.connectionName != null && message.hasOwnProperty("connectionName")) + if (message.connectionName != null && Object.hasOwnProperty.call(message, "connectionName")) if (!$util.isString(message.connectionName)) return "connectionName: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.region != null && message.hasOwnProperty("region")) + if (message.region != null && Object.hasOwnProperty.call(message, "region")) if (!$util.isString(message.region)) return "region: string expected"; - if (message.gceZone != null && message.hasOwnProperty("gceZone")) + if (message.gceZone != null && Object.hasOwnProperty.call(message, "gceZone")) if (!$util.isString(message.gceZone)) return "gceZone: string expected"; - if (message.secondaryGceZone != null && message.hasOwnProperty("secondaryGceZone")) + if (message.secondaryGceZone != null && Object.hasOwnProperty.call(message, "secondaryGceZone")) if (!$util.isString(message.secondaryGceZone)) return "secondaryGceZone: string expected"; - if (message.diskEncryptionConfiguration != null && message.hasOwnProperty("diskEncryptionConfiguration")) { - var error = $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.verify(message.diskEncryptionConfiguration); + if (message.diskEncryptionConfiguration != null && Object.hasOwnProperty.call(message, "diskEncryptionConfiguration")) { + var error = $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.verify(message.diskEncryptionConfiguration, long + 1); if (error) return "diskEncryptionConfiguration." + error; } - if (message.diskEncryptionStatus != null && message.hasOwnProperty("diskEncryptionStatus")) { - var error = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.verify(message.diskEncryptionStatus); + if (message.diskEncryptionStatus != null && Object.hasOwnProperty.call(message, "diskEncryptionStatus")) { + var error = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.verify(message.diskEncryptionStatus, long + 1); if (error) return "diskEncryptionStatus." + error; } - if (message.rootPassword != null && message.hasOwnProperty("rootPassword")) + if (message.rootPassword != null && Object.hasOwnProperty.call(message, "rootPassword")) if (!$util.isString(message.rootPassword)) return "rootPassword: string expected"; - if (message.scheduledMaintenance != null && message.hasOwnProperty("scheduledMaintenance")) { - var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlScheduledMaintenance.verify(message.scheduledMaintenance); + if (message.scheduledMaintenance != null && Object.hasOwnProperty.call(message, "scheduledMaintenance")) { + var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlScheduledMaintenance.verify(message.scheduledMaintenance, long + 1); if (error) return "scheduledMaintenance." + error; } - if (message.satisfiesPzs != null && message.hasOwnProperty("satisfiesPzs")) { - var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzs); + if (message.satisfiesPzs != null && Object.hasOwnProperty.call(message, "satisfiesPzs")) { + var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzs, long + 1); if (error) return "satisfiesPzs." + error; } - if (message.databaseInstalledVersion != null && message.hasOwnProperty("databaseInstalledVersion")) + if (message.databaseInstalledVersion != null && Object.hasOwnProperty.call(message, "databaseInstalledVersion")) if (!$util.isString(message.databaseInstalledVersion)) return "databaseInstalledVersion: string expected"; - if (message.outOfDiskReport != null && message.hasOwnProperty("outOfDiskReport")) { + if (message.outOfDiskReport != null && Object.hasOwnProperty.call(message, "outOfDiskReport")) { properties._outOfDiskReport = 1; { - var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlOutOfDiskReport.verify(message.outOfDiskReport); + var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlOutOfDiskReport.verify(message.outOfDiskReport, long + 1); if (error) return "outOfDiskReport." + error; } } - if (message.createTime != null && message.hasOwnProperty("createTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.createTime); + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.createTime, long + 1); if (error) return "createTime." + error; } - if (message.availableMaintenanceVersions != null && message.hasOwnProperty("availableMaintenanceVersions")) { + if (message.availableMaintenanceVersions != null && Object.hasOwnProperty.call(message, "availableMaintenanceVersions")) { if (!Array.isArray(message.availableMaintenanceVersions)) return "availableMaintenanceVersions: array expected"; for (var i = 0; i < message.availableMaintenanceVersions.length; ++i) if (!$util.isString(message.availableMaintenanceVersions[i])) return "availableMaintenanceVersions: string[] expected"; } - if (message.maintenanceVersion != null && message.hasOwnProperty("maintenanceVersion")) + if (message.maintenanceVersion != null && Object.hasOwnProperty.call(message, "maintenanceVersion")) if (!$util.isString(message.maintenanceVersion)) return "maintenanceVersion: string expected"; - if (message.upgradableDatabaseVersions != null && message.hasOwnProperty("upgradableDatabaseVersions")) { + if (message.upgradableDatabaseVersions != null && Object.hasOwnProperty.call(message, "upgradableDatabaseVersions")) { if (!Array.isArray(message.upgradableDatabaseVersions)) return "upgradableDatabaseVersions: array expected"; for (var i = 0; i < message.upgradableDatabaseVersions.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.AvailableDatabaseVersion.verify(message.upgradableDatabaseVersions[i]); + var error = $root.google.cloud.sql.v1beta4.AvailableDatabaseVersion.verify(message.upgradableDatabaseVersions[i], long + 1); if (error) return "upgradableDatabaseVersions." + error; } } - if (message.sqlNetworkArchitecture != null && message.hasOwnProperty("sqlNetworkArchitecture")) { + if (message.sqlNetworkArchitecture != null && Object.hasOwnProperty.call(message, "sqlNetworkArchitecture")) { properties._sqlNetworkArchitecture = 1; switch (message.sqlNetworkArchitecture) { default: @@ -102828,64 +110204,64 @@ break; } } - if (message.pscServiceAttachmentLink != null && message.hasOwnProperty("pscServiceAttachmentLink")) { + if (message.pscServiceAttachmentLink != null && Object.hasOwnProperty.call(message, "pscServiceAttachmentLink")) { properties._pscServiceAttachmentLink = 1; if (!$util.isString(message.pscServiceAttachmentLink)) return "pscServiceAttachmentLink: string expected"; } - if (message.dnsName != null && message.hasOwnProperty("dnsName")) { + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) { properties._dnsName = 1; if (!$util.isString(message.dnsName)) return "dnsName: string expected"; } - if (message.primaryDnsName != null && message.hasOwnProperty("primaryDnsName")) { + if (message.primaryDnsName != null && Object.hasOwnProperty.call(message, "primaryDnsName")) { properties._primaryDnsName = 1; if (!$util.isString(message.primaryDnsName)) return "primaryDnsName: string expected"; } - if (message.writeEndpoint != null && message.hasOwnProperty("writeEndpoint")) { + if (message.writeEndpoint != null && Object.hasOwnProperty.call(message, "writeEndpoint")) { properties._writeEndpoint = 1; if (!$util.isString(message.writeEndpoint)) return "writeEndpoint: string expected"; } - if (message.replicationCluster != null && message.hasOwnProperty("replicationCluster")) { + if (message.replicationCluster != null && Object.hasOwnProperty.call(message, "replicationCluster")) { properties._replicationCluster = 1; { - var error = $root.google.cloud.sql.v1beta4.ReplicationCluster.verify(message.replicationCluster); + var error = $root.google.cloud.sql.v1beta4.ReplicationCluster.verify(message.replicationCluster, long + 1); if (error) return "replicationCluster." + error; } } - if (message.geminiConfig != null && message.hasOwnProperty("geminiConfig")) { + if (message.geminiConfig != null && Object.hasOwnProperty.call(message, "geminiConfig")) { properties._geminiConfig = 1; { - var error = $root.google.cloud.sql.v1beta4.GeminiInstanceConfig.verify(message.geminiConfig); + var error = $root.google.cloud.sql.v1beta4.GeminiInstanceConfig.verify(message.geminiConfig, long + 1); if (error) return "geminiConfig." + error; } } - if (message.satisfiesPzi != null && message.hasOwnProperty("satisfiesPzi")) { - var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzi); + if (message.satisfiesPzi != null && Object.hasOwnProperty.call(message, "satisfiesPzi")) { + var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzi, long + 1); if (error) return "satisfiesPzi." + error; } - if (message.switchTransactionLogsToCloudStorageEnabled != null && message.hasOwnProperty("switchTransactionLogsToCloudStorageEnabled")) { + if (message.switchTransactionLogsToCloudStorageEnabled != null && Object.hasOwnProperty.call(message, "switchTransactionLogsToCloudStorageEnabled")) { properties._switchTransactionLogsToCloudStorageEnabled = 1; { - var error = $root.google.protobuf.BoolValue.verify(message.switchTransactionLogsToCloudStorageEnabled); + var error = $root.google.protobuf.BoolValue.verify(message.switchTransactionLogsToCloudStorageEnabled, long + 1); if (error) return "switchTransactionLogsToCloudStorageEnabled." + error; } } - if (message.includeReplicasForMajorVersionUpgrade != null && message.hasOwnProperty("includeReplicasForMajorVersionUpgrade")) { + if (message.includeReplicasForMajorVersionUpgrade != null && Object.hasOwnProperty.call(message, "includeReplicasForMajorVersionUpgrade")) { properties._includeReplicasForMajorVersionUpgrade = 1; { - var error = $root.google.protobuf.BoolValue.verify(message.includeReplicasForMajorVersionUpgrade); + var error = $root.google.protobuf.BoolValue.verify(message.includeReplicasForMajorVersionUpgrade, long + 1); if (error) return "includeReplicasForMajorVersionUpgrade." + error; } } - if (message.tags != null && message.hasOwnProperty("tags")) { + if (message.tags != null && Object.hasOwnProperty.call(message, "tags")) { if (!$util.isObject(message.tags)) return "tags: object expected"; var key = Object.keys(message.tags); @@ -102893,25 +110269,25 @@ if (!$util.isString(message.tags[key[i]])) return "tags: string{k:string} expected"; } - if (message.nodeCount != null && message.hasOwnProperty("nodeCount")) { + if (message.nodeCount != null && Object.hasOwnProperty.call(message, "nodeCount")) { properties._nodeCount = 1; if (!$util.isInteger(message.nodeCount)) return "nodeCount: integer expected"; } - if (message.nodes != null && message.hasOwnProperty("nodes")) { + if (message.nodes != null && Object.hasOwnProperty.call(message, "nodes")) { if (!Array.isArray(message.nodes)) return "nodes: array expected"; for (var i = 0; i < message.nodes.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig.verify(message.nodes[i]); + var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig.verify(message.nodes[i], long + 1); if (error) return "nodes." + error; } } - if (message.dnsNames != null && message.hasOwnProperty("dnsNames")) { + if (message.dnsNames != null && Object.hasOwnProperty.call(message, "dnsNames")) { if (!Array.isArray(message.dnsNames)) return "dnsNames: array expected"; for (var i = 0; i < message.dnsNames.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.DnsNameMapping.verify(message.dnsNames[i]); + var error = $root.google.cloud.sql.v1beta4.DnsNameMapping.verify(message.dnsNames[i], long + 1); if (error) return "dnsNames." + error; } @@ -102927,9 +110303,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.DatabaseInstance} DatabaseInstance */ - DatabaseInstance.fromObject = function fromObject(object) { + DatabaseInstance.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.DatabaseInstance) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.DatabaseInstance(); if (object.kind != null) message.kind = String(object.kind); @@ -103156,6 +110538,14 @@ case 557: message.databaseVersion = 557; break; + case "POSTGRES_19": + case 684: + message.databaseVersion = 684; + break; + case "POSTGRES_20": + case 781: + message.databaseVersion = 781; + break; case "SQLSERVER_2019_STANDARD": case 26: message.databaseVersion = 26; @@ -103188,18 +110578,30 @@ case 202: message.databaseVersion = 202; break; + case "SQLSERVER_2025_STANDARD": + case 549: + message.databaseVersion = 549; + break; + case "SQLSERVER_2025_ENTERPRISE": + case 550: + message.databaseVersion = 550; + break; + case "SQLSERVER_2025_EXPRESS": + case 551: + message.databaseVersion = 551; + break; } if (object.settings != null) { - if (typeof object.settings !== "object") + if (!$util.isObject(object.settings)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.settings: object expected"); - message.settings = $root.google.cloud.sql.v1beta4.Settings.fromObject(object.settings); + message.settings = $root.google.cloud.sql.v1beta4.Settings.fromObject(object.settings, long + 1); } if (object.etag != null) message.etag = String(object.etag); if (object.failoverReplica != null) { - if (typeof object.failoverReplica !== "object") + if (!$util.isObject(object.failoverReplica)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.failoverReplica: object expected"); - message.failoverReplica = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlFailoverReplica.fromObject(object.failoverReplica); + message.failoverReplica = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlFailoverReplica.fromObject(object.failoverReplica, long + 1); } if (object.masterInstanceName != null) message.masterInstanceName = String(object.masterInstanceName); @@ -103211,29 +110613,29 @@ message.replicaNames[i] = String(object.replicaNames[i]); } if (object.maxDiskSize != null) { - if (typeof object.maxDiskSize !== "object") + if (!$util.isObject(object.maxDiskSize)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.maxDiskSize: object expected"); - message.maxDiskSize = $root.google.protobuf.Int64Value.fromObject(object.maxDiskSize); + message.maxDiskSize = $root.google.protobuf.Int64Value.fromObject(object.maxDiskSize, long + 1); } if (object.currentDiskSize != null) { - if (typeof object.currentDiskSize !== "object") + if (!$util.isObject(object.currentDiskSize)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.currentDiskSize: object expected"); - message.currentDiskSize = $root.google.protobuf.Int64Value.fromObject(object.currentDiskSize); + message.currentDiskSize = $root.google.protobuf.Int64Value.fromObject(object.currentDiskSize, long + 1); } if (object.ipAddresses) { if (!Array.isArray(object.ipAddresses)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.ipAddresses: array expected"); message.ipAddresses = []; for (var i = 0; i < object.ipAddresses.length; ++i) { - if (typeof object.ipAddresses[i] !== "object") + if (!$util.isObject(object.ipAddresses[i])) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.ipAddresses: object expected"); - message.ipAddresses[i] = $root.google.cloud.sql.v1beta4.IpMapping.fromObject(object.ipAddresses[i]); + message.ipAddresses[i] = $root.google.cloud.sql.v1beta4.IpMapping.fromObject(object.ipAddresses[i], long + 1); } } if (object.serverCaCert != null) { - if (typeof object.serverCaCert !== "object") + if (!$util.isObject(object.serverCaCert)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.serverCaCert: object expected"); - message.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.serverCaCert); + message.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.serverCaCert, long + 1); } switch (object.instanceType) { default: @@ -103270,14 +110672,14 @@ if (object.serviceAccountEmailAddress != null) message.serviceAccountEmailAddress = String(object.serviceAccountEmailAddress); if (object.onPremisesConfiguration != null) { - if (typeof object.onPremisesConfiguration !== "object") + if (!$util.isObject(object.onPremisesConfiguration)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.onPremisesConfiguration: object expected"); - message.onPremisesConfiguration = $root.google.cloud.sql.v1beta4.OnPremisesConfiguration.fromObject(object.onPremisesConfiguration); + message.onPremisesConfiguration = $root.google.cloud.sql.v1beta4.OnPremisesConfiguration.fromObject(object.onPremisesConfiguration, long + 1); } if (object.replicaConfiguration != null) { - if (typeof object.replicaConfiguration !== "object") + if (!$util.isObject(object.replicaConfiguration)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.replicaConfiguration: object expected"); - message.replicaConfiguration = $root.google.cloud.sql.v1beta4.ReplicaConfiguration.fromObject(object.replicaConfiguration); + message.replicaConfiguration = $root.google.cloud.sql.v1beta4.ReplicaConfiguration.fromObject(object.replicaConfiguration, long + 1); } switch (object.backendType) { default: @@ -103336,6 +110738,10 @@ case 5: message.suspensionReason[i] = 5; break; + case "PROJECT_ABUSE": + case 8: + message.suspensionReason[i] = 8; + break; } } if (object.connectionName != null) @@ -103349,38 +110755,38 @@ if (object.secondaryGceZone != null) message.secondaryGceZone = String(object.secondaryGceZone); if (object.diskEncryptionConfiguration != null) { - if (typeof object.diskEncryptionConfiguration !== "object") + if (!$util.isObject(object.diskEncryptionConfiguration)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.diskEncryptionConfiguration: object expected"); - message.diskEncryptionConfiguration = $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.fromObject(object.diskEncryptionConfiguration); + message.diskEncryptionConfiguration = $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.fromObject(object.diskEncryptionConfiguration, long + 1); } if (object.diskEncryptionStatus != null) { - if (typeof object.diskEncryptionStatus !== "object") + if (!$util.isObject(object.diskEncryptionStatus)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.diskEncryptionStatus: object expected"); - message.diskEncryptionStatus = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.fromObject(object.diskEncryptionStatus); + message.diskEncryptionStatus = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.fromObject(object.diskEncryptionStatus, long + 1); } if (object.rootPassword != null) message.rootPassword = String(object.rootPassword); if (object.scheduledMaintenance != null) { - if (typeof object.scheduledMaintenance !== "object") + if (!$util.isObject(object.scheduledMaintenance)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.scheduledMaintenance: object expected"); - message.scheduledMaintenance = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlScheduledMaintenance.fromObject(object.scheduledMaintenance); + message.scheduledMaintenance = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlScheduledMaintenance.fromObject(object.scheduledMaintenance, long + 1); } if (object.satisfiesPzs != null) { - if (typeof object.satisfiesPzs !== "object") + if (!$util.isObject(object.satisfiesPzs)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.satisfiesPzs: object expected"); - message.satisfiesPzs = $root.google.protobuf.BoolValue.fromObject(object.satisfiesPzs); + message.satisfiesPzs = $root.google.protobuf.BoolValue.fromObject(object.satisfiesPzs, long + 1); } if (object.databaseInstalledVersion != null) message.databaseInstalledVersion = String(object.databaseInstalledVersion); if (object.outOfDiskReport != null) { - if (typeof object.outOfDiskReport !== "object") + if (!$util.isObject(object.outOfDiskReport)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.outOfDiskReport: object expected"); - message.outOfDiskReport = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlOutOfDiskReport.fromObject(object.outOfDiskReport); + message.outOfDiskReport = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlOutOfDiskReport.fromObject(object.outOfDiskReport, long + 1); } if (object.createTime != null) { - if (typeof object.createTime !== "object") + if (!$util.isObject(object.createTime)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.createTime: object expected"); - message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime); + message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime, long + 1); } if (object.availableMaintenanceVersions) { if (!Array.isArray(object.availableMaintenanceVersions)) @@ -103396,9 +110802,9 @@ throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.upgradableDatabaseVersions: array expected"); message.upgradableDatabaseVersions = []; for (var i = 0; i < object.upgradableDatabaseVersions.length; ++i) { - if (typeof object.upgradableDatabaseVersions[i] !== "object") + if (!$util.isObject(object.upgradableDatabaseVersions[i])) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.upgradableDatabaseVersions: object expected"); - message.upgradableDatabaseVersions[i] = $root.google.cloud.sql.v1beta4.AvailableDatabaseVersion.fromObject(object.upgradableDatabaseVersions[i]); + message.upgradableDatabaseVersions[i] = $root.google.cloud.sql.v1beta4.AvailableDatabaseVersion.fromObject(object.upgradableDatabaseVersions[i], long + 1); } } switch (object.sqlNetworkArchitecture) { @@ -103430,36 +110836,39 @@ if (object.writeEndpoint != null) message.writeEndpoint = String(object.writeEndpoint); if (object.replicationCluster != null) { - if (typeof object.replicationCluster !== "object") + if (!$util.isObject(object.replicationCluster)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.replicationCluster: object expected"); - message.replicationCluster = $root.google.cloud.sql.v1beta4.ReplicationCluster.fromObject(object.replicationCluster); + message.replicationCluster = $root.google.cloud.sql.v1beta4.ReplicationCluster.fromObject(object.replicationCluster, long + 1); } if (object.geminiConfig != null) { - if (typeof object.geminiConfig !== "object") + if (!$util.isObject(object.geminiConfig)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.geminiConfig: object expected"); - message.geminiConfig = $root.google.cloud.sql.v1beta4.GeminiInstanceConfig.fromObject(object.geminiConfig); + message.geminiConfig = $root.google.cloud.sql.v1beta4.GeminiInstanceConfig.fromObject(object.geminiConfig, long + 1); } if (object.satisfiesPzi != null) { - if (typeof object.satisfiesPzi !== "object") + if (!$util.isObject(object.satisfiesPzi)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.satisfiesPzi: object expected"); - message.satisfiesPzi = $root.google.protobuf.BoolValue.fromObject(object.satisfiesPzi); + message.satisfiesPzi = $root.google.protobuf.BoolValue.fromObject(object.satisfiesPzi, long + 1); } if (object.switchTransactionLogsToCloudStorageEnabled != null) { - if (typeof object.switchTransactionLogsToCloudStorageEnabled !== "object") + if (!$util.isObject(object.switchTransactionLogsToCloudStorageEnabled)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.switchTransactionLogsToCloudStorageEnabled: object expected"); - message.switchTransactionLogsToCloudStorageEnabled = $root.google.protobuf.BoolValue.fromObject(object.switchTransactionLogsToCloudStorageEnabled); + message.switchTransactionLogsToCloudStorageEnabled = $root.google.protobuf.BoolValue.fromObject(object.switchTransactionLogsToCloudStorageEnabled, long + 1); } if (object.includeReplicasForMajorVersionUpgrade != null) { - if (typeof object.includeReplicasForMajorVersionUpgrade !== "object") + if (!$util.isObject(object.includeReplicasForMajorVersionUpgrade)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.includeReplicasForMajorVersionUpgrade: object expected"); - message.includeReplicasForMajorVersionUpgrade = $root.google.protobuf.BoolValue.fromObject(object.includeReplicasForMajorVersionUpgrade); + message.includeReplicasForMajorVersionUpgrade = $root.google.protobuf.BoolValue.fromObject(object.includeReplicasForMajorVersionUpgrade, long + 1); } if (object.tags) { - if (typeof object.tags !== "object") + if (!$util.isObject(object.tags)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.tags: object expected"); message.tags = {}; - for (var keys = Object.keys(object.tags), i = 0; i < keys.length; ++i) + for (var keys = Object.keys(object.tags), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.tags, keys[i]); message.tags[keys[i]] = String(object.tags[keys[i]]); + } } if (object.nodeCount != null) message.nodeCount = object.nodeCount | 0; @@ -103468,9 +110877,9 @@ throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.nodes: array expected"); message.nodes = []; for (var i = 0; i < object.nodes.length; ++i) { - if (typeof object.nodes[i] !== "object") + if (!$util.isObject(object.nodes[i])) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.nodes: object expected"); - message.nodes[i] = $root.google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig.fromObject(object.nodes[i]); + message.nodes[i] = $root.google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig.fromObject(object.nodes[i], long + 1); } } if (object.dnsNames) { @@ -103478,9 +110887,9 @@ throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.dnsNames: array expected"); message.dnsNames = []; for (var i = 0; i < object.dnsNames.length; ++i) { - if (typeof object.dnsNames[i] !== "object") + if (!$util.isObject(object.dnsNames[i])) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.dnsNames: object expected"); - message.dnsNames[i] = $root.google.cloud.sql.v1beta4.DnsNameMapping.fromObject(object.dnsNames[i]); + message.dnsNames[i] = $root.google.cloud.sql.v1beta4.DnsNameMapping.fromObject(object.dnsNames[i], long + 1); } } return message; @@ -103495,9 +110904,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DatabaseInstance.toObject = function toObject(message, options) { + DatabaseInstance.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.replicaNames = []; @@ -103544,152 +110957,155 @@ object.maintenanceVersion = ""; object.satisfiesPzi = null; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.state != null && message.hasOwnProperty("state")) + if (message.state != null && Object.hasOwnProperty.call(message, "state")) object.state = options.enums === String ? $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlInstanceState[message.state] === undefined ? message.state : $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlInstanceState[message.state] : message.state; - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) object.databaseVersion = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlDatabaseVersion[message.databaseVersion] === undefined ? message.databaseVersion : $root.google.cloud.sql.v1beta4.SqlDatabaseVersion[message.databaseVersion] : message.databaseVersion; - if (message.settings != null && message.hasOwnProperty("settings")) - object.settings = $root.google.cloud.sql.v1beta4.Settings.toObject(message.settings, options); - if (message.etag != null && message.hasOwnProperty("etag")) + if (message.settings != null && Object.hasOwnProperty.call(message, "settings")) + object.settings = $root.google.cloud.sql.v1beta4.Settings.toObject(message.settings, options, q + 1); + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) object.etag = message.etag; - if (message.failoverReplica != null && message.hasOwnProperty("failoverReplica")) - object.failoverReplica = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlFailoverReplica.toObject(message.failoverReplica, options); - if (message.masterInstanceName != null && message.hasOwnProperty("masterInstanceName")) + if (message.failoverReplica != null && Object.hasOwnProperty.call(message, "failoverReplica")) + object.failoverReplica = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlFailoverReplica.toObject(message.failoverReplica, options, q + 1); + if (message.masterInstanceName != null && Object.hasOwnProperty.call(message, "masterInstanceName")) object.masterInstanceName = message.masterInstanceName; if (message.replicaNames && message.replicaNames.length) { object.replicaNames = []; for (var j = 0; j < message.replicaNames.length; ++j) object.replicaNames[j] = message.replicaNames[j]; } - if (message.maxDiskSize != null && message.hasOwnProperty("maxDiskSize")) - object.maxDiskSize = $root.google.protobuf.Int64Value.toObject(message.maxDiskSize, options); - if (message.currentDiskSize != null && message.hasOwnProperty("currentDiskSize")) - object.currentDiskSize = $root.google.protobuf.Int64Value.toObject(message.currentDiskSize, options); + if (message.maxDiskSize != null && Object.hasOwnProperty.call(message, "maxDiskSize")) + object.maxDiskSize = $root.google.protobuf.Int64Value.toObject(message.maxDiskSize, options, q + 1); + if (message.currentDiskSize != null && Object.hasOwnProperty.call(message, "currentDiskSize")) + object.currentDiskSize = $root.google.protobuf.Int64Value.toObject(message.currentDiskSize, options, q + 1); if (message.ipAddresses && message.ipAddresses.length) { object.ipAddresses = []; for (var j = 0; j < message.ipAddresses.length; ++j) - object.ipAddresses[j] = $root.google.cloud.sql.v1beta4.IpMapping.toObject(message.ipAddresses[j], options); + object.ipAddresses[j] = $root.google.cloud.sql.v1beta4.IpMapping.toObject(message.ipAddresses[j], options, q + 1); } - if (message.serverCaCert != null && message.hasOwnProperty("serverCaCert")) - object.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.serverCaCert, options); - if (message.instanceType != null && message.hasOwnProperty("instanceType")) + if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) + object.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.serverCaCert, options, q + 1); + if (message.instanceType != null && Object.hasOwnProperty.call(message, "instanceType")) object.instanceType = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlInstanceType[message.instanceType] === undefined ? message.instanceType : $root.google.cloud.sql.v1beta4.SqlInstanceType[message.instanceType] : message.instanceType; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.ipv6Address != null && message.hasOwnProperty("ipv6Address")) + if (message.ipv6Address != null && Object.hasOwnProperty.call(message, "ipv6Address")) object.ipv6Address = message.ipv6Address; - if (message.serviceAccountEmailAddress != null && message.hasOwnProperty("serviceAccountEmailAddress")) + if (message.serviceAccountEmailAddress != null && Object.hasOwnProperty.call(message, "serviceAccountEmailAddress")) object.serviceAccountEmailAddress = message.serviceAccountEmailAddress; - if (message.onPremisesConfiguration != null && message.hasOwnProperty("onPremisesConfiguration")) - object.onPremisesConfiguration = $root.google.cloud.sql.v1beta4.OnPremisesConfiguration.toObject(message.onPremisesConfiguration, options); - if (message.replicaConfiguration != null && message.hasOwnProperty("replicaConfiguration")) - object.replicaConfiguration = $root.google.cloud.sql.v1beta4.ReplicaConfiguration.toObject(message.replicaConfiguration, options); - if (message.backendType != null && message.hasOwnProperty("backendType")) + if (message.onPremisesConfiguration != null && Object.hasOwnProperty.call(message, "onPremisesConfiguration")) + object.onPremisesConfiguration = $root.google.cloud.sql.v1beta4.OnPremisesConfiguration.toObject(message.onPremisesConfiguration, options, q + 1); + if (message.replicaConfiguration != null && Object.hasOwnProperty.call(message, "replicaConfiguration")) + object.replicaConfiguration = $root.google.cloud.sql.v1beta4.ReplicaConfiguration.toObject(message.replicaConfiguration, options, q + 1); + if (message.backendType != null && Object.hasOwnProperty.call(message, "backendType")) object.backendType = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlBackendType[message.backendType] === undefined ? message.backendType : $root.google.cloud.sql.v1beta4.SqlBackendType[message.backendType] : message.backendType; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) object.selfLink = message.selfLink; if (message.suspensionReason && message.suspensionReason.length) { object.suspensionReason = []; for (var j = 0; j < message.suspensionReason.length; ++j) object.suspensionReason[j] = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlSuspensionReason[message.suspensionReason[j]] === undefined ? message.suspensionReason[j] : $root.google.cloud.sql.v1beta4.SqlSuspensionReason[message.suspensionReason[j]] : message.suspensionReason[j]; } - if (message.connectionName != null && message.hasOwnProperty("connectionName")) + if (message.connectionName != null && Object.hasOwnProperty.call(message, "connectionName")) object.connectionName = message.connectionName; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.region != null && message.hasOwnProperty("region")) + if (message.region != null && Object.hasOwnProperty.call(message, "region")) object.region = message.region; - if (message.gceZone != null && message.hasOwnProperty("gceZone")) + if (message.gceZone != null && Object.hasOwnProperty.call(message, "gceZone")) object.gceZone = message.gceZone; - if (message.diskEncryptionConfiguration != null && message.hasOwnProperty("diskEncryptionConfiguration")) - object.diskEncryptionConfiguration = $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.toObject(message.diskEncryptionConfiguration, options); - if (message.diskEncryptionStatus != null && message.hasOwnProperty("diskEncryptionStatus")) - object.diskEncryptionStatus = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.toObject(message.diskEncryptionStatus, options); - if (message.rootPassword != null && message.hasOwnProperty("rootPassword")) + if (message.diskEncryptionConfiguration != null && Object.hasOwnProperty.call(message, "diskEncryptionConfiguration")) + object.diskEncryptionConfiguration = $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.toObject(message.diskEncryptionConfiguration, options, q + 1); + if (message.diskEncryptionStatus != null && Object.hasOwnProperty.call(message, "diskEncryptionStatus")) + object.diskEncryptionStatus = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.toObject(message.diskEncryptionStatus, options, q + 1); + if (message.rootPassword != null && Object.hasOwnProperty.call(message, "rootPassword")) object.rootPassword = message.rootPassword; - if (message.scheduledMaintenance != null && message.hasOwnProperty("scheduledMaintenance")) - object.scheduledMaintenance = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlScheduledMaintenance.toObject(message.scheduledMaintenance, options); - if (message.secondaryGceZone != null && message.hasOwnProperty("secondaryGceZone")) + if (message.scheduledMaintenance != null && Object.hasOwnProperty.call(message, "scheduledMaintenance")) + object.scheduledMaintenance = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlScheduledMaintenance.toObject(message.scheduledMaintenance, options, q + 1); + if (message.secondaryGceZone != null && Object.hasOwnProperty.call(message, "secondaryGceZone")) object.secondaryGceZone = message.secondaryGceZone; - if (message.satisfiesPzs != null && message.hasOwnProperty("satisfiesPzs")) - object.satisfiesPzs = $root.google.protobuf.BoolValue.toObject(message.satisfiesPzs, options); - if (message.outOfDiskReport != null && message.hasOwnProperty("outOfDiskReport")) { - object.outOfDiskReport = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlOutOfDiskReport.toObject(message.outOfDiskReport, options); + if (message.satisfiesPzs != null && Object.hasOwnProperty.call(message, "satisfiesPzs")) + object.satisfiesPzs = $root.google.protobuf.BoolValue.toObject(message.satisfiesPzs, options, q + 1); + if (message.outOfDiskReport != null && Object.hasOwnProperty.call(message, "outOfDiskReport")) { + object.outOfDiskReport = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlOutOfDiskReport.toObject(message.outOfDiskReport, options, q + 1); if (options.oneofs) object._outOfDiskReport = "outOfDiskReport"; } - if (message.createTime != null && message.hasOwnProperty("createTime")) - object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options); - if (message.databaseInstalledVersion != null && message.hasOwnProperty("databaseInstalledVersion")) + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) + object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options, q + 1); + if (message.databaseInstalledVersion != null && Object.hasOwnProperty.call(message, "databaseInstalledVersion")) object.databaseInstalledVersion = message.databaseInstalledVersion; if (message.availableMaintenanceVersions && message.availableMaintenanceVersions.length) { object.availableMaintenanceVersions = []; for (var j = 0; j < message.availableMaintenanceVersions.length; ++j) object.availableMaintenanceVersions[j] = message.availableMaintenanceVersions[j]; } - if (message.maintenanceVersion != null && message.hasOwnProperty("maintenanceVersion")) + if (message.maintenanceVersion != null && Object.hasOwnProperty.call(message, "maintenanceVersion")) object.maintenanceVersion = message.maintenanceVersion; if (message.upgradableDatabaseVersions && message.upgradableDatabaseVersions.length) { object.upgradableDatabaseVersions = []; for (var j = 0; j < message.upgradableDatabaseVersions.length; ++j) - object.upgradableDatabaseVersions[j] = $root.google.cloud.sql.v1beta4.AvailableDatabaseVersion.toObject(message.upgradableDatabaseVersions[j], options); + object.upgradableDatabaseVersions[j] = $root.google.cloud.sql.v1beta4.AvailableDatabaseVersion.toObject(message.upgradableDatabaseVersions[j], options, q + 1); } - if (message.sqlNetworkArchitecture != null && message.hasOwnProperty("sqlNetworkArchitecture")) { + if (message.sqlNetworkArchitecture != null && Object.hasOwnProperty.call(message, "sqlNetworkArchitecture")) { object.sqlNetworkArchitecture = options.enums === String ? $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlNetworkArchitecture[message.sqlNetworkArchitecture] === undefined ? message.sqlNetworkArchitecture : $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlNetworkArchitecture[message.sqlNetworkArchitecture] : message.sqlNetworkArchitecture; if (options.oneofs) object._sqlNetworkArchitecture = "sqlNetworkArchitecture"; } - if (message.pscServiceAttachmentLink != null && message.hasOwnProperty("pscServiceAttachmentLink")) { + if (message.pscServiceAttachmentLink != null && Object.hasOwnProperty.call(message, "pscServiceAttachmentLink")) { object.pscServiceAttachmentLink = message.pscServiceAttachmentLink; if (options.oneofs) object._pscServiceAttachmentLink = "pscServiceAttachmentLink"; } - if (message.dnsName != null && message.hasOwnProperty("dnsName")) { + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) { object.dnsName = message.dnsName; if (options.oneofs) object._dnsName = "dnsName"; } - if (message.primaryDnsName != null && message.hasOwnProperty("primaryDnsName")) { + if (message.primaryDnsName != null && Object.hasOwnProperty.call(message, "primaryDnsName")) { object.primaryDnsName = message.primaryDnsName; if (options.oneofs) object._primaryDnsName = "primaryDnsName"; } - if (message.writeEndpoint != null && message.hasOwnProperty("writeEndpoint")) { + if (message.writeEndpoint != null && Object.hasOwnProperty.call(message, "writeEndpoint")) { object.writeEndpoint = message.writeEndpoint; if (options.oneofs) object._writeEndpoint = "writeEndpoint"; } - if (message.replicationCluster != null && message.hasOwnProperty("replicationCluster")) { - object.replicationCluster = $root.google.cloud.sql.v1beta4.ReplicationCluster.toObject(message.replicationCluster, options); + if (message.replicationCluster != null && Object.hasOwnProperty.call(message, "replicationCluster")) { + object.replicationCluster = $root.google.cloud.sql.v1beta4.ReplicationCluster.toObject(message.replicationCluster, options, q + 1); if (options.oneofs) object._replicationCluster = "replicationCluster"; } - if (message.geminiConfig != null && message.hasOwnProperty("geminiConfig")) { - object.geminiConfig = $root.google.cloud.sql.v1beta4.GeminiInstanceConfig.toObject(message.geminiConfig, options); + if (message.geminiConfig != null && Object.hasOwnProperty.call(message, "geminiConfig")) { + object.geminiConfig = $root.google.cloud.sql.v1beta4.GeminiInstanceConfig.toObject(message.geminiConfig, options, q + 1); if (options.oneofs) object._geminiConfig = "geminiConfig"; } - if (message.satisfiesPzi != null && message.hasOwnProperty("satisfiesPzi")) - object.satisfiesPzi = $root.google.protobuf.BoolValue.toObject(message.satisfiesPzi, options); - if (message.switchTransactionLogsToCloudStorageEnabled != null && message.hasOwnProperty("switchTransactionLogsToCloudStorageEnabled")) { - object.switchTransactionLogsToCloudStorageEnabled = $root.google.protobuf.BoolValue.toObject(message.switchTransactionLogsToCloudStorageEnabled, options); + if (message.satisfiesPzi != null && Object.hasOwnProperty.call(message, "satisfiesPzi")) + object.satisfiesPzi = $root.google.protobuf.BoolValue.toObject(message.satisfiesPzi, options, q + 1); + if (message.switchTransactionLogsToCloudStorageEnabled != null && Object.hasOwnProperty.call(message, "switchTransactionLogsToCloudStorageEnabled")) { + object.switchTransactionLogsToCloudStorageEnabled = $root.google.protobuf.BoolValue.toObject(message.switchTransactionLogsToCloudStorageEnabled, options, q + 1); if (options.oneofs) object._switchTransactionLogsToCloudStorageEnabled = "switchTransactionLogsToCloudStorageEnabled"; } - if (message.includeReplicasForMajorVersionUpgrade != null && message.hasOwnProperty("includeReplicasForMajorVersionUpgrade")) { - object.includeReplicasForMajorVersionUpgrade = $root.google.protobuf.BoolValue.toObject(message.includeReplicasForMajorVersionUpgrade, options); + if (message.includeReplicasForMajorVersionUpgrade != null && Object.hasOwnProperty.call(message, "includeReplicasForMajorVersionUpgrade")) { + object.includeReplicasForMajorVersionUpgrade = $root.google.protobuf.BoolValue.toObject(message.includeReplicasForMajorVersionUpgrade, options, q + 1); if (options.oneofs) object._includeReplicasForMajorVersionUpgrade = "includeReplicasForMajorVersionUpgrade"; } var keys2; if (message.tags && (keys2 = Object.keys(message.tags)).length) { object.tags = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.tags, keys2[j]); object.tags[keys2[j]] = message.tags[keys2[j]]; + } } - if (message.nodeCount != null && message.hasOwnProperty("nodeCount")) { + if (message.nodeCount != null && Object.hasOwnProperty.call(message, "nodeCount")) { object.nodeCount = message.nodeCount; if (options.oneofs) object._nodeCount = "nodeCount"; @@ -103697,12 +111113,12 @@ if (message.nodes && message.nodes.length) { object.nodes = []; for (var j = 0; j < message.nodes.length; ++j) - object.nodes[j] = $root.google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig.toObject(message.nodes[j], options); + object.nodes[j] = $root.google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig.toObject(message.nodes[j], options, q + 1); } if (message.dnsNames && message.dnsNames.length) { object.dnsNames = []; for (var j = 0; j < message.dnsNames.length; ++j) - object.dnsNames[j] = $root.google.cloud.sql.v1beta4.DnsNameMapping.toObject(message.dnsNames[j], options); + object.dnsNames[j] = $root.google.cloud.sql.v1beta4.DnsNameMapping.toObject(message.dnsNames[j], options, q + 1); } return object; }; @@ -103782,7 +111198,7 @@ function SqlFailoverReplica(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -103823,13 +111239,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlFailoverReplica.encode = function encode(message, writer) { + SqlFailoverReplica.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.available != null && Object.hasOwnProperty.call(message, "available")) - $root.google.protobuf.BoolValue.encode(message.available, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.available, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -103843,7 +111263,7 @@ * @returns {$protobuf.Writer} Writer */ SqlFailoverReplica.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -103857,9 +111277,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlFailoverReplica.decode = function decode(reader, length, error) { + SqlFailoverReplica.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlFailoverReplica(); while (reader.pos < end) { var tag = reader.uint32(); @@ -103871,11 +111295,11 @@ break; } case 2: { - message.available = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.available = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -103906,14 +111330,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlFailoverReplica.verify = function verify(message) { + SqlFailoverReplica.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.available != null && message.hasOwnProperty("available")) { - var error = $root.google.protobuf.BoolValue.verify(message.available); + if (message.available != null && Object.hasOwnProperty.call(message, "available")) { + var error = $root.google.protobuf.BoolValue.verify(message.available, long + 1); if (error) return "available." + error; } @@ -103928,16 +111356,22 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.DatabaseInstance.SqlFailoverReplica} SqlFailoverReplica */ - SqlFailoverReplica.fromObject = function fromObject(object) { + SqlFailoverReplica.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlFailoverReplica) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.SqlFailoverReplica: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlFailoverReplica(); if (object.name != null) message.name = String(object.name); if (object.available != null) { - if (typeof object.available !== "object") + if (!$util.isObject(object.available)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.SqlFailoverReplica.available: object expected"); - message.available = $root.google.protobuf.BoolValue.fromObject(object.available); + message.available = $root.google.protobuf.BoolValue.fromObject(object.available, long + 1); } return message; }; @@ -103951,18 +111385,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlFailoverReplica.toObject = function toObject(message, options) { + SqlFailoverReplica.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; object.available = null; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.available != null && message.hasOwnProperty("available")) - object.available = $root.google.protobuf.BoolValue.toObject(message.available, options); + if (message.available != null && Object.hasOwnProperty.call(message, "available")) + object.available = $root.google.protobuf.BoolValue.toObject(message.available, options, q + 1); return object; }; @@ -104018,7 +111456,7 @@ function SqlScheduledMaintenance(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -104084,17 +111522,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlScheduledMaintenance.encode = function encode(message, writer) { + SqlScheduledMaintenance.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) - $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.canDefer != null && Object.hasOwnProperty.call(message, "canDefer")) writer.uint32(/* id 2, wireType 0 =*/16).bool(message.canDefer); if (message.canReschedule != null && Object.hasOwnProperty.call(message, "canReschedule")) writer.uint32(/* id 3, wireType 0 =*/24).bool(message.canReschedule); if (message.scheduleDeadlineTime != null && Object.hasOwnProperty.call(message, "scheduleDeadlineTime")) - $root.google.protobuf.Timestamp.encode(message.scheduleDeadlineTime, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.scheduleDeadlineTime, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); return writer; }; @@ -104108,7 +111550,7 @@ * @returns {$protobuf.Writer} Writer */ SqlScheduledMaintenance.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -104122,9 +111564,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlScheduledMaintenance.decode = function decode(reader, length, error) { + SqlScheduledMaintenance.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlScheduledMaintenance(); while (reader.pos < end) { var tag = reader.uint32(); @@ -104132,7 +111578,7 @@ break; switch (tag >>> 3) { case 1: { - message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -104144,11 +111590,11 @@ break; } case 4: { - message.scheduleDeadlineTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.scheduleDeadlineTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -104179,25 +111625,29 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlScheduledMaintenance.verify = function verify(message) { + SqlScheduledMaintenance.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.startTime != null && message.hasOwnProperty("startTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.startTime); + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.startTime, long + 1); if (error) return "startTime." + error; } - if (message.canDefer != null && message.hasOwnProperty("canDefer")) + if (message.canDefer != null && Object.hasOwnProperty.call(message, "canDefer")) if (typeof message.canDefer !== "boolean") return "canDefer: boolean expected"; - if (message.canReschedule != null && message.hasOwnProperty("canReschedule")) + if (message.canReschedule != null && Object.hasOwnProperty.call(message, "canReschedule")) if (typeof message.canReschedule !== "boolean") return "canReschedule: boolean expected"; - if (message.scheduleDeadlineTime != null && message.hasOwnProperty("scheduleDeadlineTime")) { + if (message.scheduleDeadlineTime != null && Object.hasOwnProperty.call(message, "scheduleDeadlineTime")) { properties._scheduleDeadlineTime = 1; { - var error = $root.google.protobuf.Timestamp.verify(message.scheduleDeadlineTime); + var error = $root.google.protobuf.Timestamp.verify(message.scheduleDeadlineTime, long + 1); if (error) return "scheduleDeadlineTime." + error; } @@ -104213,23 +111663,29 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.DatabaseInstance.SqlScheduledMaintenance} SqlScheduledMaintenance */ - SqlScheduledMaintenance.fromObject = function fromObject(object) { + SqlScheduledMaintenance.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlScheduledMaintenance) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.SqlScheduledMaintenance: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlScheduledMaintenance(); if (object.startTime != null) { - if (typeof object.startTime !== "object") + if (!$util.isObject(object.startTime)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.SqlScheduledMaintenance.startTime: object expected"); - message.startTime = $root.google.protobuf.Timestamp.fromObject(object.startTime); + message.startTime = $root.google.protobuf.Timestamp.fromObject(object.startTime, long + 1); } if (object.canDefer != null) message.canDefer = Boolean(object.canDefer); if (object.canReschedule != null) message.canReschedule = Boolean(object.canReschedule); if (object.scheduleDeadlineTime != null) { - if (typeof object.scheduleDeadlineTime !== "object") + if (!$util.isObject(object.scheduleDeadlineTime)) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.SqlScheduledMaintenance.scheduleDeadlineTime: object expected"); - message.scheduleDeadlineTime = $root.google.protobuf.Timestamp.fromObject(object.scheduleDeadlineTime); + message.scheduleDeadlineTime = $root.google.protobuf.Timestamp.fromObject(object.scheduleDeadlineTime, long + 1); } return message; }; @@ -104243,23 +111699,27 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlScheduledMaintenance.toObject = function toObject(message, options) { + SqlScheduledMaintenance.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.startTime = null; object.canDefer = false; object.canReschedule = false; } - if (message.startTime != null && message.hasOwnProperty("startTime")) - object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options); - if (message.canDefer != null && message.hasOwnProperty("canDefer")) + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) + object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options, q + 1); + if (message.canDefer != null && Object.hasOwnProperty.call(message, "canDefer")) object.canDefer = message.canDefer; - if (message.canReschedule != null && message.hasOwnProperty("canReschedule")) + if (message.canReschedule != null && Object.hasOwnProperty.call(message, "canReschedule")) object.canReschedule = message.canReschedule; - if (message.scheduleDeadlineTime != null && message.hasOwnProperty("scheduleDeadlineTime")) { - object.scheduleDeadlineTime = $root.google.protobuf.Timestamp.toObject(message.scheduleDeadlineTime, options); + if (message.scheduleDeadlineTime != null && Object.hasOwnProperty.call(message, "scheduleDeadlineTime")) { + object.scheduleDeadlineTime = $root.google.protobuf.Timestamp.toObject(message.scheduleDeadlineTime, options, q + 1); if (options.oneofs) object._scheduleDeadlineTime = "scheduleDeadlineTime"; } @@ -104316,7 +111776,7 @@ function SqlOutOfDiskReport(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -104372,9 +111832,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlOutOfDiskReport.encode = function encode(message, writer) { + SqlOutOfDiskReport.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.sqlOutOfDiskState != null && Object.hasOwnProperty.call(message, "sqlOutOfDiskState")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.sqlOutOfDiskState); if (message.sqlMinRecommendedIncreaseSizeGb != null && Object.hasOwnProperty.call(message, "sqlMinRecommendedIncreaseSizeGb")) @@ -104392,7 +111856,7 @@ * @returns {$protobuf.Writer} Writer */ SqlOutOfDiskReport.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -104406,9 +111870,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlOutOfDiskReport.decode = function decode(reader, length, error) { + SqlOutOfDiskReport.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlOutOfDiskReport(); while (reader.pos < end) { var tag = reader.uint32(); @@ -104424,7 +111892,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -104455,11 +111923,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlOutOfDiskReport.verify = function verify(message) { + SqlOutOfDiskReport.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.sqlOutOfDiskState != null && message.hasOwnProperty("sqlOutOfDiskState")) { + if (message.sqlOutOfDiskState != null && Object.hasOwnProperty.call(message, "sqlOutOfDiskState")) { properties._sqlOutOfDiskState = 1; switch (message.sqlOutOfDiskState) { default: @@ -104470,7 +111942,7 @@ break; } } - if (message.sqlMinRecommendedIncreaseSizeGb != null && message.hasOwnProperty("sqlMinRecommendedIncreaseSizeGb")) { + if (message.sqlMinRecommendedIncreaseSizeGb != null && Object.hasOwnProperty.call(message, "sqlMinRecommendedIncreaseSizeGb")) { properties._sqlMinRecommendedIncreaseSizeGb = 1; if (!$util.isInteger(message.sqlMinRecommendedIncreaseSizeGb)) return "sqlMinRecommendedIncreaseSizeGb: integer expected"; @@ -104486,9 +111958,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.DatabaseInstance.SqlOutOfDiskReport} SqlOutOfDiskReport */ - SqlOutOfDiskReport.fromObject = function fromObject(object) { + SqlOutOfDiskReport.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlOutOfDiskReport) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.SqlOutOfDiskReport: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlOutOfDiskReport(); switch (object.sqlOutOfDiskState) { default: @@ -104524,16 +112002,20 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlOutOfDiskReport.toObject = function toObject(message, options) { + SqlOutOfDiskReport.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.sqlOutOfDiskState != null && message.hasOwnProperty("sqlOutOfDiskState")) { + if (message.sqlOutOfDiskState != null && Object.hasOwnProperty.call(message, "sqlOutOfDiskState")) { object.sqlOutOfDiskState = options.enums === String ? $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlOutOfDiskReport.SqlOutOfDiskState[message.sqlOutOfDiskState] === undefined ? message.sqlOutOfDiskState : $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlOutOfDiskReport.SqlOutOfDiskState[message.sqlOutOfDiskState] : message.sqlOutOfDiskState; if (options.oneofs) object._sqlOutOfDiskState = "sqlOutOfDiskState"; } - if (message.sqlMinRecommendedIncreaseSizeGb != null && message.hasOwnProperty("sqlMinRecommendedIncreaseSizeGb")) { + if (message.sqlMinRecommendedIncreaseSizeGb != null && Object.hasOwnProperty.call(message, "sqlMinRecommendedIncreaseSizeGb")) { object.sqlMinRecommendedIncreaseSizeGb = message.sqlMinRecommendedIncreaseSizeGb; if (options.oneofs) object._sqlMinRecommendedIncreaseSizeGb = "sqlMinRecommendedIncreaseSizeGb"; @@ -104632,7 +112114,7 @@ this.pscAutoConnections = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -104754,28 +112236,32 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PoolNodeConfig.encode = function encode(message, writer) { + PoolNodeConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.gceZone != null && Object.hasOwnProperty.call(message, "gceZone")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.gceZone); if (message.ipAddresses != null && message.ipAddresses.length) for (var i = 0; i < message.ipAddresses.length; ++i) - $root.google.cloud.sql.v1beta4.IpMapping.encode(message.ipAddresses[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.IpMapping.encode(message.ipAddresses[i], writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.dnsName); if (message.state != null && Object.hasOwnProperty.call(message, "state")) writer.uint32(/* id 5, wireType 0 =*/40).int32(message.state); if (message.dnsNames != null && message.dnsNames.length) for (var i = 0; i < message.dnsNames.length; ++i) - $root.google.cloud.sql.v1beta4.DnsNameMapping.encode(message.dnsNames[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DnsNameMapping.encode(message.dnsNames[i], writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.pscServiceAttachmentLink != null && Object.hasOwnProperty.call(message, "pscServiceAttachmentLink")) writer.uint32(/* id 7, wireType 2 =*/58).string(message.pscServiceAttachmentLink); if (message.pscAutoConnections != null && message.pscAutoConnections.length) for (var i = 0; i < message.pscAutoConnections.length; ++i) - $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.encode(message.pscAutoConnections[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.encode(message.pscAutoConnections[i], writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); return writer; }; @@ -104789,7 +112275,7 @@ * @returns {$protobuf.Writer} Writer */ PoolNodeConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -104803,9 +112289,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PoolNodeConfig.decode = function decode(reader, length, error) { + PoolNodeConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -104823,7 +112313,7 @@ case 3: { if (!(message.ipAddresses && message.ipAddresses.length)) message.ipAddresses = []; - message.ipAddresses.push($root.google.cloud.sql.v1beta4.IpMapping.decode(reader, reader.uint32())); + message.ipAddresses.push($root.google.cloud.sql.v1beta4.IpMapping.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 4: { @@ -104837,7 +112327,7 @@ case 6: { if (!(message.dnsNames && message.dnsNames.length)) message.dnsNames = []; - message.dnsNames.push($root.google.cloud.sql.v1beta4.DnsNameMapping.decode(reader, reader.uint32())); + message.dnsNames.push($root.google.cloud.sql.v1beta4.DnsNameMapping.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 7: { @@ -104847,11 +112337,11 @@ case 8: { if (!(message.pscAutoConnections && message.pscAutoConnections.length)) message.pscAutoConnections = []; - message.pscAutoConnections.push($root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.decode(reader, reader.uint32())); + message.pscAutoConnections.push($root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -104882,35 +112372,39 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PoolNodeConfig.verify = function verify(message) { + PoolNodeConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.name != null && message.hasOwnProperty("name")) { + if (message.name != null && Object.hasOwnProperty.call(message, "name")) { properties._name = 1; if (!$util.isString(message.name)) return "name: string expected"; } - if (message.gceZone != null && message.hasOwnProperty("gceZone")) { + if (message.gceZone != null && Object.hasOwnProperty.call(message, "gceZone")) { properties._gceZone = 1; if (!$util.isString(message.gceZone)) return "gceZone: string expected"; } - if (message.ipAddresses != null && message.hasOwnProperty("ipAddresses")) { + if (message.ipAddresses != null && Object.hasOwnProperty.call(message, "ipAddresses")) { if (!Array.isArray(message.ipAddresses)) return "ipAddresses: array expected"; for (var i = 0; i < message.ipAddresses.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.IpMapping.verify(message.ipAddresses[i]); + var error = $root.google.cloud.sql.v1beta4.IpMapping.verify(message.ipAddresses[i], long + 1); if (error) return "ipAddresses." + error; } } - if (message.dnsName != null && message.hasOwnProperty("dnsName")) { + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) { properties._dnsName = 1; if (!$util.isString(message.dnsName)) return "dnsName: string expected"; } - if (message.state != null && message.hasOwnProperty("state")) { + if (message.state != null && Object.hasOwnProperty.call(message, "state")) { properties._state = 1; switch (message.state) { default: @@ -104927,25 +112421,25 @@ break; } } - if (message.dnsNames != null && message.hasOwnProperty("dnsNames")) { + if (message.dnsNames != null && Object.hasOwnProperty.call(message, "dnsNames")) { if (!Array.isArray(message.dnsNames)) return "dnsNames: array expected"; for (var i = 0; i < message.dnsNames.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.DnsNameMapping.verify(message.dnsNames[i]); + var error = $root.google.cloud.sql.v1beta4.DnsNameMapping.verify(message.dnsNames[i], long + 1); if (error) return "dnsNames." + error; } } - if (message.pscServiceAttachmentLink != null && message.hasOwnProperty("pscServiceAttachmentLink")) { + if (message.pscServiceAttachmentLink != null && Object.hasOwnProperty.call(message, "pscServiceAttachmentLink")) { properties._pscServiceAttachmentLink = 1; if (!$util.isString(message.pscServiceAttachmentLink)) return "pscServiceAttachmentLink: string expected"; } - if (message.pscAutoConnections != null && message.hasOwnProperty("pscAutoConnections")) { + if (message.pscAutoConnections != null && Object.hasOwnProperty.call(message, "pscAutoConnections")) { if (!Array.isArray(message.pscAutoConnections)) return "pscAutoConnections: array expected"; for (var i = 0; i < message.pscAutoConnections.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.verify(message.pscAutoConnections[i]); + var error = $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.verify(message.pscAutoConnections[i], long + 1); if (error) return "pscAutoConnections." + error; } @@ -104961,9 +112455,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig} PoolNodeConfig */ - PoolNodeConfig.fromObject = function fromObject(object) { + PoolNodeConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig(); if (object.name != null) message.name = String(object.name); @@ -104974,9 +112474,9 @@ throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig.ipAddresses: array expected"); message.ipAddresses = []; for (var i = 0; i < object.ipAddresses.length; ++i) { - if (typeof object.ipAddresses[i] !== "object") + if (!$util.isObject(object.ipAddresses[i])) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig.ipAddresses: object expected"); - message.ipAddresses[i] = $root.google.cloud.sql.v1beta4.IpMapping.fromObject(object.ipAddresses[i]); + message.ipAddresses[i] = $root.google.cloud.sql.v1beta4.IpMapping.fromObject(object.ipAddresses[i], long + 1); } } if (object.dnsName != null) @@ -105030,9 +112530,9 @@ throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig.dnsNames: array expected"); message.dnsNames = []; for (var i = 0; i < object.dnsNames.length; ++i) { - if (typeof object.dnsNames[i] !== "object") + if (!$util.isObject(object.dnsNames[i])) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig.dnsNames: object expected"); - message.dnsNames[i] = $root.google.cloud.sql.v1beta4.DnsNameMapping.fromObject(object.dnsNames[i]); + message.dnsNames[i] = $root.google.cloud.sql.v1beta4.DnsNameMapping.fromObject(object.dnsNames[i], long + 1); } } if (object.pscServiceAttachmentLink != null) @@ -105042,9 +112542,9 @@ throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig.pscAutoConnections: array expected"); message.pscAutoConnections = []; for (var i = 0; i < object.pscAutoConnections.length; ++i) { - if (typeof object.pscAutoConnections[i] !== "object") + if (!$util.isObject(object.pscAutoConnections[i])) throw TypeError(".google.cloud.sql.v1beta4.DatabaseInstance.PoolNodeConfig.pscAutoConnections: object expected"); - message.pscAutoConnections[i] = $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.fromObject(object.pscAutoConnections[i]); + message.pscAutoConnections[i] = $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.fromObject(object.pscAutoConnections[i], long + 1); } } return message; @@ -105059,21 +112559,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PoolNodeConfig.toObject = function toObject(message, options) { + PoolNodeConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.ipAddresses = []; object.dnsNames = []; object.pscAutoConnections = []; } - if (message.name != null && message.hasOwnProperty("name")) { + if (message.name != null && Object.hasOwnProperty.call(message, "name")) { object.name = message.name; if (options.oneofs) object._name = "name"; } - if (message.gceZone != null && message.hasOwnProperty("gceZone")) { + if (message.gceZone != null && Object.hasOwnProperty.call(message, "gceZone")) { object.gceZone = message.gceZone; if (options.oneofs) object._gceZone = "gceZone"; @@ -105081,14 +112585,14 @@ if (message.ipAddresses && message.ipAddresses.length) { object.ipAddresses = []; for (var j = 0; j < message.ipAddresses.length; ++j) - object.ipAddresses[j] = $root.google.cloud.sql.v1beta4.IpMapping.toObject(message.ipAddresses[j], options); + object.ipAddresses[j] = $root.google.cloud.sql.v1beta4.IpMapping.toObject(message.ipAddresses[j], options, q + 1); } - if (message.dnsName != null && message.hasOwnProperty("dnsName")) { + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) { object.dnsName = message.dnsName; if (options.oneofs) object._dnsName = "dnsName"; } - if (message.state != null && message.hasOwnProperty("state")) { + if (message.state != null && Object.hasOwnProperty.call(message, "state")) { object.state = options.enums === String ? $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlInstanceState[message.state] === undefined ? message.state : $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlInstanceState[message.state] : message.state; if (options.oneofs) object._state = "state"; @@ -105096,9 +112600,9 @@ if (message.dnsNames && message.dnsNames.length) { object.dnsNames = []; for (var j = 0; j < message.dnsNames.length; ++j) - object.dnsNames[j] = $root.google.cloud.sql.v1beta4.DnsNameMapping.toObject(message.dnsNames[j], options); + object.dnsNames[j] = $root.google.cloud.sql.v1beta4.DnsNameMapping.toObject(message.dnsNames[j], options, q + 1); } - if (message.pscServiceAttachmentLink != null && message.hasOwnProperty("pscServiceAttachmentLink")) { + if (message.pscServiceAttachmentLink != null && Object.hasOwnProperty.call(message, "pscServiceAttachmentLink")) { object.pscServiceAttachmentLink = message.pscServiceAttachmentLink; if (options.oneofs) object._pscServiceAttachmentLink = "pscServiceAttachmentLink"; @@ -105106,7 +112610,7 @@ if (message.pscAutoConnections && message.pscAutoConnections.length) { object.pscAutoConnections = []; for (var j = 0; j < message.pscAutoConnections.length; ++j) - object.pscAutoConnections[j] = $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.toObject(message.pscAutoConnections[j], options); + object.pscAutoConnections[j] = $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.toObject(message.pscAutoConnections[j], options, q + 1); } return object; }; @@ -105166,7 +112670,7 @@ function DnsNameMapping(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -105223,9 +112727,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DnsNameMapping.encode = function encode(message, writer) { + DnsNameMapping.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.connectionType != null && Object.hasOwnProperty.call(message, "connectionType")) @@ -105247,7 +112755,7 @@ * @returns {$protobuf.Writer} Writer */ DnsNameMapping.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -105261,9 +112769,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DnsNameMapping.decode = function decode(reader, length, error) { + DnsNameMapping.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DnsNameMapping(); while (reader.pos < end) { var tag = reader.uint32(); @@ -105287,7 +112799,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -105318,13 +112830,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DnsNameMapping.verify = function verify(message) { + DnsNameMapping.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.connectionType != null && message.hasOwnProperty("connectionType")) + if (message.connectionType != null && Object.hasOwnProperty.call(message, "connectionType")) switch (message.connectionType) { default: return "connectionType: enum value expected"; @@ -105334,7 +112850,7 @@ case 3: break; } - if (message.dnsScope != null && message.hasOwnProperty("dnsScope")) + if (message.dnsScope != null && Object.hasOwnProperty.call(message, "dnsScope")) switch (message.dnsScope) { default: return "dnsScope: enum value expected"; @@ -105343,7 +112859,7 @@ case 2: break; } - if (message.recordManager != null && message.hasOwnProperty("recordManager")) + if (message.recordManager != null && Object.hasOwnProperty.call(message, "recordManager")) switch (message.recordManager) { default: return "recordManager: enum value expected"; @@ -105363,9 +112879,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.DnsNameMapping} DnsNameMapping */ - DnsNameMapping.fromObject = function fromObject(object) { + DnsNameMapping.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.DnsNameMapping) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DnsNameMapping: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.DnsNameMapping(); if (object.name != null) message.name = String(object.name); @@ -105445,9 +112967,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DnsNameMapping.toObject = function toObject(message, options) { + DnsNameMapping.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; @@ -105455,13 +112981,13 @@ object.dnsScope = options.enums === String ? "DNS_SCOPE_UNSPECIFIED" : 0; object.recordManager = options.enums === String ? "RECORD_MANAGER_UNSPECIFIED" : 0; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.connectionType != null && message.hasOwnProperty("connectionType")) + if (message.connectionType != null && Object.hasOwnProperty.call(message, "connectionType")) object.connectionType = options.enums === String ? $root.google.cloud.sql.v1beta4.DnsNameMapping.ConnectionType[message.connectionType] === undefined ? message.connectionType : $root.google.cloud.sql.v1beta4.DnsNameMapping.ConnectionType[message.connectionType] : message.connectionType; - if (message.dnsScope != null && message.hasOwnProperty("dnsScope")) + if (message.dnsScope != null && Object.hasOwnProperty.call(message, "dnsScope")) object.dnsScope = options.enums === String ? $root.google.cloud.sql.v1beta4.DnsNameMapping.DnsScope[message.dnsScope] === undefined ? message.dnsScope : $root.google.cloud.sql.v1beta4.DnsNameMapping.DnsScope[message.dnsScope] : message.dnsScope; - if (message.recordManager != null && message.hasOwnProperty("recordManager")) + if (message.recordManager != null && Object.hasOwnProperty.call(message, "recordManager")) object.recordManager = options.enums === String ? $root.google.cloud.sql.v1beta4.DnsNameMapping.RecordManager[message.recordManager] === undefined ? message.recordManager : $root.google.cloud.sql.v1beta4.DnsNameMapping.RecordManager[message.recordManager] : message.recordManager; return object; }; @@ -105570,7 +113096,7 @@ function GeminiInstanceConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -105682,9 +113208,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GeminiInstanceConfig.encode = function encode(message, writer) { + GeminiInstanceConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.entitled != null && Object.hasOwnProperty.call(message, "entitled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.entitled); if (message.googleVacuumMgmtEnabled != null && Object.hasOwnProperty.call(message, "googleVacuumMgmtEnabled")) @@ -105710,7 +113240,7 @@ * @returns {$protobuf.Writer} Writer */ GeminiInstanceConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -105724,9 +113254,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GeminiInstanceConfig.decode = function decode(reader, length, error) { + GeminiInstanceConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.GeminiInstanceConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -105758,7 +113292,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -105789,36 +113323,40 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GeminiInstanceConfig.verify = function verify(message) { + GeminiInstanceConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.entitled != null && message.hasOwnProperty("entitled")) { + if (message.entitled != null && Object.hasOwnProperty.call(message, "entitled")) { properties._entitled = 1; if (typeof message.entitled !== "boolean") return "entitled: boolean expected"; } - if (message.googleVacuumMgmtEnabled != null && message.hasOwnProperty("googleVacuumMgmtEnabled")) { + if (message.googleVacuumMgmtEnabled != null && Object.hasOwnProperty.call(message, "googleVacuumMgmtEnabled")) { properties._googleVacuumMgmtEnabled = 1; if (typeof message.googleVacuumMgmtEnabled !== "boolean") return "googleVacuumMgmtEnabled: boolean expected"; } - if (message.oomSessionCancelEnabled != null && message.hasOwnProperty("oomSessionCancelEnabled")) { + if (message.oomSessionCancelEnabled != null && Object.hasOwnProperty.call(message, "oomSessionCancelEnabled")) { properties._oomSessionCancelEnabled = 1; if (typeof message.oomSessionCancelEnabled !== "boolean") return "oomSessionCancelEnabled: boolean expected"; } - if (message.activeQueryEnabled != null && message.hasOwnProperty("activeQueryEnabled")) { + if (message.activeQueryEnabled != null && Object.hasOwnProperty.call(message, "activeQueryEnabled")) { properties._activeQueryEnabled = 1; if (typeof message.activeQueryEnabled !== "boolean") return "activeQueryEnabled: boolean expected"; } - if (message.indexAdvisorEnabled != null && message.hasOwnProperty("indexAdvisorEnabled")) { + if (message.indexAdvisorEnabled != null && Object.hasOwnProperty.call(message, "indexAdvisorEnabled")) { properties._indexAdvisorEnabled = 1; if (typeof message.indexAdvisorEnabled !== "boolean") return "indexAdvisorEnabled: boolean expected"; } - if (message.flagRecommenderEnabled != null && message.hasOwnProperty("flagRecommenderEnabled")) { + if (message.flagRecommenderEnabled != null && Object.hasOwnProperty.call(message, "flagRecommenderEnabled")) { properties._flagRecommenderEnabled = 1; if (typeof message.flagRecommenderEnabled !== "boolean") return "flagRecommenderEnabled: boolean expected"; @@ -105834,9 +113372,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.GeminiInstanceConfig} GeminiInstanceConfig */ - GeminiInstanceConfig.fromObject = function fromObject(object) { + GeminiInstanceConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.GeminiInstanceConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.GeminiInstanceConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.GeminiInstanceConfig(); if (object.entitled != null) message.entitled = Boolean(object.entitled); @@ -105862,36 +113406,40 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GeminiInstanceConfig.toObject = function toObject(message, options) { + GeminiInstanceConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.entitled != null && message.hasOwnProperty("entitled")) { + if (message.entitled != null && Object.hasOwnProperty.call(message, "entitled")) { object.entitled = message.entitled; if (options.oneofs) object._entitled = "entitled"; } - if (message.googleVacuumMgmtEnabled != null && message.hasOwnProperty("googleVacuumMgmtEnabled")) { + if (message.googleVacuumMgmtEnabled != null && Object.hasOwnProperty.call(message, "googleVacuumMgmtEnabled")) { object.googleVacuumMgmtEnabled = message.googleVacuumMgmtEnabled; if (options.oneofs) object._googleVacuumMgmtEnabled = "googleVacuumMgmtEnabled"; } - if (message.oomSessionCancelEnabled != null && message.hasOwnProperty("oomSessionCancelEnabled")) { + if (message.oomSessionCancelEnabled != null && Object.hasOwnProperty.call(message, "oomSessionCancelEnabled")) { object.oomSessionCancelEnabled = message.oomSessionCancelEnabled; if (options.oneofs) object._oomSessionCancelEnabled = "oomSessionCancelEnabled"; } - if (message.activeQueryEnabled != null && message.hasOwnProperty("activeQueryEnabled")) { + if (message.activeQueryEnabled != null && Object.hasOwnProperty.call(message, "activeQueryEnabled")) { object.activeQueryEnabled = message.activeQueryEnabled; if (options.oneofs) object._activeQueryEnabled = "activeQueryEnabled"; } - if (message.indexAdvisorEnabled != null && message.hasOwnProperty("indexAdvisorEnabled")) { + if (message.indexAdvisorEnabled != null && Object.hasOwnProperty.call(message, "indexAdvisorEnabled")) { object.indexAdvisorEnabled = message.indexAdvisorEnabled; if (options.oneofs) object._indexAdvisorEnabled = "indexAdvisorEnabled"; } - if (message.flagRecommenderEnabled != null && message.hasOwnProperty("flagRecommenderEnabled")) { + if (message.flagRecommenderEnabled != null && Object.hasOwnProperty.call(message, "flagRecommenderEnabled")) { object.flagRecommenderEnabled = message.flagRecommenderEnabled; if (options.oneofs) object._flagRecommenderEnabled = "flagRecommenderEnabled"; @@ -105950,7 +113498,7 @@ function ReplicationCluster(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -106020,9 +113568,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ReplicationCluster.encode = function encode(message, writer) { + ReplicationCluster.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.psaWriteEndpoint != null && Object.hasOwnProperty.call(message, "psaWriteEndpoint")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.psaWriteEndpoint); if (message.failoverDrReplicaName != null && Object.hasOwnProperty.call(message, "failoverDrReplicaName")) @@ -106042,7 +113594,7 @@ * @returns {$protobuf.Writer} Writer */ ReplicationCluster.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -106056,9 +113608,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ReplicationCluster.decode = function decode(reader, length, error) { + ReplicationCluster.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ReplicationCluster(); while (reader.pos < end) { var tag = reader.uint32(); @@ -106078,7 +113634,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -106109,21 +113665,25 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ReplicationCluster.verify = function verify(message) { + ReplicationCluster.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.psaWriteEndpoint != null && message.hasOwnProperty("psaWriteEndpoint")) { + if (message.psaWriteEndpoint != null && Object.hasOwnProperty.call(message, "psaWriteEndpoint")) { properties._psaWriteEndpoint = 1; if (!$util.isString(message.psaWriteEndpoint)) return "psaWriteEndpoint: string expected"; } - if (message.failoverDrReplicaName != null && message.hasOwnProperty("failoverDrReplicaName")) { + if (message.failoverDrReplicaName != null && Object.hasOwnProperty.call(message, "failoverDrReplicaName")) { properties._failoverDrReplicaName = 1; if (!$util.isString(message.failoverDrReplicaName)) return "failoverDrReplicaName: string expected"; } - if (message.drReplica != null && message.hasOwnProperty("drReplica")) { + if (message.drReplica != null && Object.hasOwnProperty.call(message, "drReplica")) { properties._drReplica = 1; if (typeof message.drReplica !== "boolean") return "drReplica: boolean expected"; @@ -106139,9 +113699,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ReplicationCluster} ReplicationCluster */ - ReplicationCluster.fromObject = function fromObject(object) { + ReplicationCluster.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ReplicationCluster) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ReplicationCluster: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ReplicationCluster(); if (object.psaWriteEndpoint != null) message.psaWriteEndpoint = String(object.psaWriteEndpoint); @@ -106161,21 +113727,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ReplicationCluster.toObject = function toObject(message, options) { + ReplicationCluster.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.psaWriteEndpoint != null && message.hasOwnProperty("psaWriteEndpoint")) { + if (message.psaWriteEndpoint != null && Object.hasOwnProperty.call(message, "psaWriteEndpoint")) { object.psaWriteEndpoint = message.psaWriteEndpoint; if (options.oneofs) object._psaWriteEndpoint = "psaWriteEndpoint"; } - if (message.failoverDrReplicaName != null && message.hasOwnProperty("failoverDrReplicaName")) { + if (message.failoverDrReplicaName != null && Object.hasOwnProperty.call(message, "failoverDrReplicaName")) { object.failoverDrReplicaName = message.failoverDrReplicaName; if (options.oneofs) object._failoverDrReplicaName = "failoverDrReplicaName"; } - if (message.drReplica != null && message.hasOwnProperty("drReplica")) { + if (message.drReplica != null && Object.hasOwnProperty.call(message, "drReplica")) { object.drReplica = message.drReplica; if (options.oneofs) object._drReplica = "drReplica"; @@ -106234,7 +113804,7 @@ function AvailableDatabaseVersion(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -106304,9 +113874,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - AvailableDatabaseVersion.encode = function encode(message, writer) { + AvailableDatabaseVersion.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.majorVersion != null && Object.hasOwnProperty.call(message, "majorVersion")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.majorVersion); if (message.name != null && Object.hasOwnProperty.call(message, "name")) @@ -106326,7 +113900,7 @@ * @returns {$protobuf.Writer} Writer */ AvailableDatabaseVersion.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -106340,9 +113914,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AvailableDatabaseVersion.decode = function decode(reader, length, error) { + AvailableDatabaseVersion.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.AvailableDatabaseVersion(); while (reader.pos < end) { var tag = reader.uint32(); @@ -106362,7 +113940,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -106393,21 +113971,25 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - AvailableDatabaseVersion.verify = function verify(message) { + AvailableDatabaseVersion.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.majorVersion != null && message.hasOwnProperty("majorVersion")) { + if (message.majorVersion != null && Object.hasOwnProperty.call(message, "majorVersion")) { properties._majorVersion = 1; if (!$util.isString(message.majorVersion)) return "majorVersion: string expected"; } - if (message.name != null && message.hasOwnProperty("name")) { + if (message.name != null && Object.hasOwnProperty.call(message, "name")) { properties._name = 1; if (!$util.isString(message.name)) return "name: string expected"; } - if (message.displayName != null && message.hasOwnProperty("displayName")) { + if (message.displayName != null && Object.hasOwnProperty.call(message, "displayName")) { properties._displayName = 1; if (!$util.isString(message.displayName)) return "displayName: string expected"; @@ -106423,9 +114005,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.AvailableDatabaseVersion} AvailableDatabaseVersion */ - AvailableDatabaseVersion.fromObject = function fromObject(object) { + AvailableDatabaseVersion.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.AvailableDatabaseVersion) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.AvailableDatabaseVersion: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.AvailableDatabaseVersion(); if (object.majorVersion != null) message.majorVersion = String(object.majorVersion); @@ -106445,21 +114033,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - AvailableDatabaseVersion.toObject = function toObject(message, options) { + AvailableDatabaseVersion.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.majorVersion != null && message.hasOwnProperty("majorVersion")) { + if (message.majorVersion != null && Object.hasOwnProperty.call(message, "majorVersion")) { object.majorVersion = message.majorVersion; if (options.oneofs) object._majorVersion = "majorVersion"; } - if (message.name != null && message.hasOwnProperty("name")) { + if (message.name != null && Object.hasOwnProperty.call(message, "name")) { object.name = message.name; if (options.oneofs) object._name = "name"; } - if (message.displayName != null && message.hasOwnProperty("displayName")) { + if (message.displayName != null && Object.hasOwnProperty.call(message, "displayName")) { object.displayName = message.displayName; if (options.oneofs) object._displayName = "displayName"; @@ -106518,7 +114110,7 @@ this.items = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -106559,14 +114151,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DatabasesListResponse.encode = function encode(message, writer) { + DatabasesListResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.items != null && message.items.length) for (var i = 0; i < message.items.length; ++i) - $root.google.cloud.sql.v1beta4.Database.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.Database.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -106580,7 +114176,7 @@ * @returns {$protobuf.Writer} Writer */ DatabasesListResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -106594,9 +114190,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DatabasesListResponse.decode = function decode(reader, length, error) { + DatabasesListResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DatabasesListResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -106610,11 +114210,11 @@ case 2: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.sql.v1beta4.Database.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.sql.v1beta4.Database.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -106645,17 +114245,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DatabasesListResponse.verify = function verify(message) { + DatabasesListResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.items != null && message.hasOwnProperty("items")) { + if (message.items != null && Object.hasOwnProperty.call(message, "items")) { if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.Database.verify(message.items[i]); + var error = $root.google.cloud.sql.v1beta4.Database.verify(message.items[i], long + 1); if (error) return "items." + error; } @@ -106671,9 +114275,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.DatabasesListResponse} DatabasesListResponse */ - DatabasesListResponse.fromObject = function fromObject(object) { + DatabasesListResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.DatabasesListResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DatabasesListResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.DatabasesListResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -106682,9 +114292,9 @@ throw TypeError(".google.cloud.sql.v1beta4.DatabasesListResponse.items: array expected"); message.items = []; for (var i = 0; i < object.items.length; ++i) { - if (typeof object.items[i] !== "object") + if (!$util.isObject(object.items[i])) throw TypeError(".google.cloud.sql.v1beta4.DatabasesListResponse.items: object expected"); - message.items[i] = $root.google.cloud.sql.v1beta4.Database.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.sql.v1beta4.Database.fromObject(object.items[i], long + 1); } } return message; @@ -106699,20 +114309,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DatabasesListResponse.toObject = function toObject(message, options) { + DatabasesListResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.items = []; if (options.defaults) object.kind = ""; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.items && message.items.length) { object.items = []; for (var j = 0; j < message.items.length; ++j) - object.items[j] = $root.google.cloud.sql.v1beta4.Database.toObject(message.items[j], options); + object.items[j] = $root.google.cloud.sql.v1beta4.Database.toObject(message.items[j], options, q + 1); } return object; }; @@ -106767,7 +114381,7 @@ function DemoteMasterConfiguration(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -106808,13 +114422,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DemoteMasterConfiguration.encode = function encode(message, writer) { + DemoteMasterConfiguration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.mysqlReplicaConfiguration != null && Object.hasOwnProperty.call(message, "mysqlReplicaConfiguration")) - $root.google.cloud.sql.v1beta4.DemoteMasterMySqlReplicaConfiguration.encode(message.mysqlReplicaConfiguration, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DemoteMasterMySqlReplicaConfiguration.encode(message.mysqlReplicaConfiguration, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -106828,7 +114446,7 @@ * @returns {$protobuf.Writer} Writer */ DemoteMasterConfiguration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -106842,9 +114460,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DemoteMasterConfiguration.decode = function decode(reader, length, error) { + DemoteMasterConfiguration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DemoteMasterConfiguration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -106856,11 +114478,11 @@ break; } case 2: { - message.mysqlReplicaConfiguration = $root.google.cloud.sql.v1beta4.DemoteMasterMySqlReplicaConfiguration.decode(reader, reader.uint32()); + message.mysqlReplicaConfiguration = $root.google.cloud.sql.v1beta4.DemoteMasterMySqlReplicaConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -106891,14 +114513,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DemoteMasterConfiguration.verify = function verify(message) { + DemoteMasterConfiguration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.mysqlReplicaConfiguration != null && message.hasOwnProperty("mysqlReplicaConfiguration")) { - var error = $root.google.cloud.sql.v1beta4.DemoteMasterMySqlReplicaConfiguration.verify(message.mysqlReplicaConfiguration); + if (message.mysqlReplicaConfiguration != null && Object.hasOwnProperty.call(message, "mysqlReplicaConfiguration")) { + var error = $root.google.cloud.sql.v1beta4.DemoteMasterMySqlReplicaConfiguration.verify(message.mysqlReplicaConfiguration, long + 1); if (error) return "mysqlReplicaConfiguration." + error; } @@ -106913,16 +114539,22 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.DemoteMasterConfiguration} DemoteMasterConfiguration */ - DemoteMasterConfiguration.fromObject = function fromObject(object) { + DemoteMasterConfiguration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.DemoteMasterConfiguration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DemoteMasterConfiguration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.DemoteMasterConfiguration(); if (object.kind != null) message.kind = String(object.kind); if (object.mysqlReplicaConfiguration != null) { - if (typeof object.mysqlReplicaConfiguration !== "object") + if (!$util.isObject(object.mysqlReplicaConfiguration)) throw TypeError(".google.cloud.sql.v1beta4.DemoteMasterConfiguration.mysqlReplicaConfiguration: object expected"); - message.mysqlReplicaConfiguration = $root.google.cloud.sql.v1beta4.DemoteMasterMySqlReplicaConfiguration.fromObject(object.mysqlReplicaConfiguration); + message.mysqlReplicaConfiguration = $root.google.cloud.sql.v1beta4.DemoteMasterMySqlReplicaConfiguration.fromObject(object.mysqlReplicaConfiguration, long + 1); } return message; }; @@ -106936,18 +114568,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DemoteMasterConfiguration.toObject = function toObject(message, options) { + DemoteMasterConfiguration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.mysqlReplicaConfiguration = null; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.mysqlReplicaConfiguration != null && message.hasOwnProperty("mysqlReplicaConfiguration")) - object.mysqlReplicaConfiguration = $root.google.cloud.sql.v1beta4.DemoteMasterMySqlReplicaConfiguration.toObject(message.mysqlReplicaConfiguration, options); + if (message.mysqlReplicaConfiguration != null && Object.hasOwnProperty.call(message, "mysqlReplicaConfiguration")) + object.mysqlReplicaConfiguration = $root.google.cloud.sql.v1beta4.DemoteMasterMySqlReplicaConfiguration.toObject(message.mysqlReplicaConfiguration, options, q + 1); return object; }; @@ -107004,7 +114640,7 @@ function DemoteMasterContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -107069,17 +114705,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DemoteMasterContext.encode = function encode(message, writer) { + DemoteMasterContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.verifyGtidConsistency != null && Object.hasOwnProperty.call(message, "verifyGtidConsistency")) - $root.google.protobuf.BoolValue.encode(message.verifyGtidConsistency, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.verifyGtidConsistency, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.masterInstanceName != null && Object.hasOwnProperty.call(message, "masterInstanceName")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.masterInstanceName); if (message.replicaConfiguration != null && Object.hasOwnProperty.call(message, "replicaConfiguration")) - $root.google.cloud.sql.v1beta4.DemoteMasterConfiguration.encode(message.replicaConfiguration, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DemoteMasterConfiguration.encode(message.replicaConfiguration, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.skipReplicationSetup != null && Object.hasOwnProperty.call(message, "skipReplicationSetup")) writer.uint32(/* id 5, wireType 0 =*/40).bool(message.skipReplicationSetup); return writer; @@ -107095,7 +114735,7 @@ * @returns {$protobuf.Writer} Writer */ DemoteMasterContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -107109,9 +114749,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DemoteMasterContext.decode = function decode(reader, length, error) { + DemoteMasterContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DemoteMasterContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -107123,7 +114767,7 @@ break; } case 2: { - message.verifyGtidConsistency = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.verifyGtidConsistency = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -107131,7 +114775,7 @@ break; } case 4: { - message.replicaConfiguration = $root.google.cloud.sql.v1beta4.DemoteMasterConfiguration.decode(reader, reader.uint32()); + message.replicaConfiguration = $root.google.cloud.sql.v1beta4.DemoteMasterConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -107139,7 +114783,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -107170,26 +114814,30 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DemoteMasterContext.verify = function verify(message) { + DemoteMasterContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.verifyGtidConsistency != null && message.hasOwnProperty("verifyGtidConsistency")) { - var error = $root.google.protobuf.BoolValue.verify(message.verifyGtidConsistency); + if (message.verifyGtidConsistency != null && Object.hasOwnProperty.call(message, "verifyGtidConsistency")) { + var error = $root.google.protobuf.BoolValue.verify(message.verifyGtidConsistency, long + 1); if (error) return "verifyGtidConsistency." + error; } - if (message.masterInstanceName != null && message.hasOwnProperty("masterInstanceName")) + if (message.masterInstanceName != null && Object.hasOwnProperty.call(message, "masterInstanceName")) if (!$util.isString(message.masterInstanceName)) return "masterInstanceName: string expected"; - if (message.replicaConfiguration != null && message.hasOwnProperty("replicaConfiguration")) { - var error = $root.google.cloud.sql.v1beta4.DemoteMasterConfiguration.verify(message.replicaConfiguration); + if (message.replicaConfiguration != null && Object.hasOwnProperty.call(message, "replicaConfiguration")) { + var error = $root.google.cloud.sql.v1beta4.DemoteMasterConfiguration.verify(message.replicaConfiguration, long + 1); if (error) return "replicaConfiguration." + error; } - if (message.skipReplicationSetup != null && message.hasOwnProperty("skipReplicationSetup")) + if (message.skipReplicationSetup != null && Object.hasOwnProperty.call(message, "skipReplicationSetup")) if (typeof message.skipReplicationSetup !== "boolean") return "skipReplicationSetup: boolean expected"; return null; @@ -107203,23 +114851,29 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.DemoteMasterContext} DemoteMasterContext */ - DemoteMasterContext.fromObject = function fromObject(object) { + DemoteMasterContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.DemoteMasterContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DemoteMasterContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.DemoteMasterContext(); if (object.kind != null) message.kind = String(object.kind); if (object.verifyGtidConsistency != null) { - if (typeof object.verifyGtidConsistency !== "object") + if (!$util.isObject(object.verifyGtidConsistency)) throw TypeError(".google.cloud.sql.v1beta4.DemoteMasterContext.verifyGtidConsistency: object expected"); - message.verifyGtidConsistency = $root.google.protobuf.BoolValue.fromObject(object.verifyGtidConsistency); + message.verifyGtidConsistency = $root.google.protobuf.BoolValue.fromObject(object.verifyGtidConsistency, long + 1); } if (object.masterInstanceName != null) message.masterInstanceName = String(object.masterInstanceName); if (object.replicaConfiguration != null) { - if (typeof object.replicaConfiguration !== "object") + if (!$util.isObject(object.replicaConfiguration)) throw TypeError(".google.cloud.sql.v1beta4.DemoteMasterContext.replicaConfiguration: object expected"); - message.replicaConfiguration = $root.google.cloud.sql.v1beta4.DemoteMasterConfiguration.fromObject(object.replicaConfiguration); + message.replicaConfiguration = $root.google.cloud.sql.v1beta4.DemoteMasterConfiguration.fromObject(object.replicaConfiguration, long + 1); } if (object.skipReplicationSetup != null) message.skipReplicationSetup = Boolean(object.skipReplicationSetup); @@ -107235,9 +114889,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DemoteMasterContext.toObject = function toObject(message, options) { + DemoteMasterContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -107246,15 +114904,15 @@ object.replicaConfiguration = null; object.skipReplicationSetup = false; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.verifyGtidConsistency != null && message.hasOwnProperty("verifyGtidConsistency")) - object.verifyGtidConsistency = $root.google.protobuf.BoolValue.toObject(message.verifyGtidConsistency, options); - if (message.masterInstanceName != null && message.hasOwnProperty("masterInstanceName")) + if (message.verifyGtidConsistency != null && Object.hasOwnProperty.call(message, "verifyGtidConsistency")) + object.verifyGtidConsistency = $root.google.protobuf.BoolValue.toObject(message.verifyGtidConsistency, options, q + 1); + if (message.masterInstanceName != null && Object.hasOwnProperty.call(message, "masterInstanceName")) object.masterInstanceName = message.masterInstanceName; - if (message.replicaConfiguration != null && message.hasOwnProperty("replicaConfiguration")) - object.replicaConfiguration = $root.google.cloud.sql.v1beta4.DemoteMasterConfiguration.toObject(message.replicaConfiguration, options); - if (message.skipReplicationSetup != null && message.hasOwnProperty("skipReplicationSetup")) + if (message.replicaConfiguration != null && Object.hasOwnProperty.call(message, "replicaConfiguration")) + object.replicaConfiguration = $root.google.cloud.sql.v1beta4.DemoteMasterConfiguration.toObject(message.replicaConfiguration, options, q + 1); + if (message.skipReplicationSetup != null && Object.hasOwnProperty.call(message, "skipReplicationSetup")) object.skipReplicationSetup = message.skipReplicationSetup; return object; }; @@ -107313,7 +114971,7 @@ function DemoteMasterMySqlReplicaConfiguration(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -107386,9 +115044,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DemoteMasterMySqlReplicaConfiguration.encode = function encode(message, writer) { + DemoteMasterMySqlReplicaConfiguration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.username != null && Object.hasOwnProperty.call(message, "username")) @@ -107414,7 +115076,7 @@ * @returns {$protobuf.Writer} Writer */ DemoteMasterMySqlReplicaConfiguration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -107428,9 +115090,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DemoteMasterMySqlReplicaConfiguration.decode = function decode(reader, length, error) { + DemoteMasterMySqlReplicaConfiguration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DemoteMasterMySqlReplicaConfiguration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -107462,7 +115128,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -107493,25 +115159,29 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DemoteMasterMySqlReplicaConfiguration.verify = function verify(message) { + DemoteMasterMySqlReplicaConfiguration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.username != null && message.hasOwnProperty("username")) + if (message.username != null && Object.hasOwnProperty.call(message, "username")) if (!$util.isString(message.username)) return "username: string expected"; - if (message.password != null && message.hasOwnProperty("password")) + if (message.password != null && Object.hasOwnProperty.call(message, "password")) if (!$util.isString(message.password)) return "password: string expected"; - if (message.clientKey != null && message.hasOwnProperty("clientKey")) + if (message.clientKey != null && Object.hasOwnProperty.call(message, "clientKey")) if (!$util.isString(message.clientKey)) return "clientKey: string expected"; - if (message.clientCertificate != null && message.hasOwnProperty("clientCertificate")) + if (message.clientCertificate != null && Object.hasOwnProperty.call(message, "clientCertificate")) if (!$util.isString(message.clientCertificate)) return "clientCertificate: string expected"; - if (message.caCertificate != null && message.hasOwnProperty("caCertificate")) + if (message.caCertificate != null && Object.hasOwnProperty.call(message, "caCertificate")) if (!$util.isString(message.caCertificate)) return "caCertificate: string expected"; return null; @@ -107525,9 +115195,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.DemoteMasterMySqlReplicaConfiguration} DemoteMasterMySqlReplicaConfiguration */ - DemoteMasterMySqlReplicaConfiguration.fromObject = function fromObject(object) { + DemoteMasterMySqlReplicaConfiguration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.DemoteMasterMySqlReplicaConfiguration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DemoteMasterMySqlReplicaConfiguration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.DemoteMasterMySqlReplicaConfiguration(); if (object.kind != null) message.kind = String(object.kind); @@ -107553,9 +115229,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DemoteMasterMySqlReplicaConfiguration.toObject = function toObject(message, options) { + DemoteMasterMySqlReplicaConfiguration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -107565,17 +115245,17 @@ object.clientCertificate = ""; object.caCertificate = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.username != null && message.hasOwnProperty("username")) + if (message.username != null && Object.hasOwnProperty.call(message, "username")) object.username = message.username; - if (message.password != null && message.hasOwnProperty("password")) + if (message.password != null && Object.hasOwnProperty.call(message, "password")) object.password = message.password; - if (message.clientKey != null && message.hasOwnProperty("clientKey")) + if (message.clientKey != null && Object.hasOwnProperty.call(message, "clientKey")) object.clientKey = message.clientKey; - if (message.clientCertificate != null && message.hasOwnProperty("clientCertificate")) + if (message.clientCertificate != null && Object.hasOwnProperty.call(message, "clientCertificate")) object.clientCertificate = message.clientCertificate; - if (message.caCertificate != null && message.hasOwnProperty("caCertificate")) + if (message.caCertificate != null && Object.hasOwnProperty.call(message, "caCertificate")) object.caCertificate = message.caCertificate; return object; }; @@ -107630,7 +115310,7 @@ function DemoteContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -107671,9 +115351,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DemoteContext.encode = function encode(message, writer) { + DemoteContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.sourceRepresentativeInstanceName != null && Object.hasOwnProperty.call(message, "sourceRepresentativeInstanceName")) @@ -107691,7 +115375,7 @@ * @returns {$protobuf.Writer} Writer */ DemoteContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -107705,9 +115389,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DemoteContext.decode = function decode(reader, length, error) { + DemoteContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DemoteContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -107723,7 +115411,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -107754,13 +115442,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DemoteContext.verify = function verify(message) { + DemoteContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.sourceRepresentativeInstanceName != null && message.hasOwnProperty("sourceRepresentativeInstanceName")) + if (message.sourceRepresentativeInstanceName != null && Object.hasOwnProperty.call(message, "sourceRepresentativeInstanceName")) if (!$util.isString(message.sourceRepresentativeInstanceName)) return "sourceRepresentativeInstanceName: string expected"; return null; @@ -107774,9 +115466,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.DemoteContext} DemoteContext */ - DemoteContext.fromObject = function fromObject(object) { + DemoteContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.DemoteContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DemoteContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.DemoteContext(); if (object.kind != null) message.kind = String(object.kind); @@ -107794,17 +115492,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DemoteContext.toObject = function toObject(message, options) { + DemoteContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.sourceRepresentativeInstanceName = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.sourceRepresentativeInstanceName != null && message.hasOwnProperty("sourceRepresentativeInstanceName")) + if (message.sourceRepresentativeInstanceName != null && Object.hasOwnProperty.call(message, "sourceRepresentativeInstanceName")) object.sourceRepresentativeInstanceName = message.sourceRepresentativeInstanceName; return object; }; @@ -107887,7 +115589,7 @@ this.databases = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -107984,9 +115686,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ExportContext.encode = function encode(message, writer) { + ExportContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.uri != null && Object.hasOwnProperty.call(message, "uri")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.uri); if (message.databases != null && message.databases.length) @@ -107995,17 +115701,17 @@ if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.kind); if (message.sqlExportOptions != null && Object.hasOwnProperty.call(message, "sqlExportOptions")) - $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.encode(message.sqlExportOptions, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.encode(message.sqlExportOptions, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.csvExportOptions != null && Object.hasOwnProperty.call(message, "csvExportOptions")) - $root.google.cloud.sql.v1beta4.ExportContext.SqlCsvExportOptions.encode(message.csvExportOptions, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ExportContext.SqlCsvExportOptions.encode(message.csvExportOptions, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.fileType != null && Object.hasOwnProperty.call(message, "fileType")) writer.uint32(/* id 6, wireType 0 =*/48).int32(message.fileType); if (message.offload != null && Object.hasOwnProperty.call(message, "offload")) - $root.google.protobuf.BoolValue.encode(message.offload, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.offload, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); if (message.bakExportOptions != null && Object.hasOwnProperty.call(message, "bakExportOptions")) - $root.google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions.encode(message.bakExportOptions, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions.encode(message.bakExportOptions, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); if (message.tdeExportOptions != null && Object.hasOwnProperty.call(message, "tdeExportOptions")) - $root.google.cloud.sql.v1beta4.ExportContext.SqlTdeExportOptions.encode(message.tdeExportOptions, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ExportContext.SqlTdeExportOptions.encode(message.tdeExportOptions, writer.uint32(/* id 10, wireType 2 =*/82).fork(), q + 1).ldelim(); return writer; }; @@ -108019,7 +115725,7 @@ * @returns {$protobuf.Writer} Writer */ ExportContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -108033,9 +115739,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExportContext.decode = function decode(reader, length, error) { + ExportContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ExportContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -108057,11 +115767,11 @@ break; } case 4: { - message.sqlExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.decode(reader, reader.uint32()); + message.sqlExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.csvExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlCsvExportOptions.decode(reader, reader.uint32()); + message.csvExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlCsvExportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { @@ -108069,19 +115779,19 @@ break; } case 8: { - message.offload = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.offload = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { - message.bakExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions.decode(reader, reader.uint32()); + message.bakExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { - message.tdeExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlTdeExportOptions.decode(reader, reader.uint32()); + message.tdeExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlTdeExportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -108112,33 +115822,37 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ExportContext.verify = function verify(message) { + ExportContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.uri != null && message.hasOwnProperty("uri")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.uri != null && Object.hasOwnProperty.call(message, "uri")) if (!$util.isString(message.uri)) return "uri: string expected"; - if (message.databases != null && message.hasOwnProperty("databases")) { + if (message.databases != null && Object.hasOwnProperty.call(message, "databases")) { if (!Array.isArray(message.databases)) return "databases: array expected"; for (var i = 0; i < message.databases.length; ++i) if (!$util.isString(message.databases[i])) return "databases: string[] expected"; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.sqlExportOptions != null && message.hasOwnProperty("sqlExportOptions")) { - var error = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.verify(message.sqlExportOptions); + if (message.sqlExportOptions != null && Object.hasOwnProperty.call(message, "sqlExportOptions")) { + var error = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.verify(message.sqlExportOptions, long + 1); if (error) return "sqlExportOptions." + error; } - if (message.csvExportOptions != null && message.hasOwnProperty("csvExportOptions")) { - var error = $root.google.cloud.sql.v1beta4.ExportContext.SqlCsvExportOptions.verify(message.csvExportOptions); + if (message.csvExportOptions != null && Object.hasOwnProperty.call(message, "csvExportOptions")) { + var error = $root.google.cloud.sql.v1beta4.ExportContext.SqlCsvExportOptions.verify(message.csvExportOptions, long + 1); if (error) return "csvExportOptions." + error; } - if (message.fileType != null && message.hasOwnProperty("fileType")) + if (message.fileType != null && Object.hasOwnProperty.call(message, "fileType")) switch (message.fileType) { default: return "fileType: enum value expected"; @@ -108149,18 +115863,18 @@ case 8: break; } - if (message.offload != null && message.hasOwnProperty("offload")) { - var error = $root.google.protobuf.BoolValue.verify(message.offload); + if (message.offload != null && Object.hasOwnProperty.call(message, "offload")) { + var error = $root.google.protobuf.BoolValue.verify(message.offload, long + 1); if (error) return "offload." + error; } - if (message.bakExportOptions != null && message.hasOwnProperty("bakExportOptions")) { - var error = $root.google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions.verify(message.bakExportOptions); + if (message.bakExportOptions != null && Object.hasOwnProperty.call(message, "bakExportOptions")) { + var error = $root.google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions.verify(message.bakExportOptions, long + 1); if (error) return "bakExportOptions." + error; } - if (message.tdeExportOptions != null && message.hasOwnProperty("tdeExportOptions")) { - var error = $root.google.cloud.sql.v1beta4.ExportContext.SqlTdeExportOptions.verify(message.tdeExportOptions); + if (message.tdeExportOptions != null && Object.hasOwnProperty.call(message, "tdeExportOptions")) { + var error = $root.google.cloud.sql.v1beta4.ExportContext.SqlTdeExportOptions.verify(message.tdeExportOptions, long + 1); if (error) return "tdeExportOptions." + error; } @@ -108175,9 +115889,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ExportContext} ExportContext */ - ExportContext.fromObject = function fromObject(object) { + ExportContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ExportContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ExportContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ExportContext(); if (object.uri != null) message.uri = String(object.uri); @@ -108191,14 +115911,14 @@ if (object.kind != null) message.kind = String(object.kind); if (object.sqlExportOptions != null) { - if (typeof object.sqlExportOptions !== "object") + if (!$util.isObject(object.sqlExportOptions)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.sqlExportOptions: object expected"); - message.sqlExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.fromObject(object.sqlExportOptions); + message.sqlExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.fromObject(object.sqlExportOptions, long + 1); } if (object.csvExportOptions != null) { - if (typeof object.csvExportOptions !== "object") + if (!$util.isObject(object.csvExportOptions)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.csvExportOptions: object expected"); - message.csvExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlCsvExportOptions.fromObject(object.csvExportOptions); + message.csvExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlCsvExportOptions.fromObject(object.csvExportOptions, long + 1); } switch (object.fileType) { default: @@ -108229,19 +115949,19 @@ break; } if (object.offload != null) { - if (typeof object.offload !== "object") + if (!$util.isObject(object.offload)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.offload: object expected"); - message.offload = $root.google.protobuf.BoolValue.fromObject(object.offload); + message.offload = $root.google.protobuf.BoolValue.fromObject(object.offload, long + 1); } if (object.bakExportOptions != null) { - if (typeof object.bakExportOptions !== "object") + if (!$util.isObject(object.bakExportOptions)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.bakExportOptions: object expected"); - message.bakExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions.fromObject(object.bakExportOptions); + message.bakExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions.fromObject(object.bakExportOptions, long + 1); } if (object.tdeExportOptions != null) { - if (typeof object.tdeExportOptions !== "object") + if (!$util.isObject(object.tdeExportOptions)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.tdeExportOptions: object expected"); - message.tdeExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlTdeExportOptions.fromObject(object.tdeExportOptions); + message.tdeExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlTdeExportOptions.fromObject(object.tdeExportOptions, long + 1); } return message; }; @@ -108255,9 +115975,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ExportContext.toObject = function toObject(message, options) { + ExportContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.databases = []; @@ -108271,27 +115995,27 @@ object.bakExportOptions = null; object.tdeExportOptions = null; } - if (message.uri != null && message.hasOwnProperty("uri")) + if (message.uri != null && Object.hasOwnProperty.call(message, "uri")) object.uri = message.uri; if (message.databases && message.databases.length) { object.databases = []; for (var j = 0; j < message.databases.length; ++j) object.databases[j] = message.databases[j]; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.sqlExportOptions != null && message.hasOwnProperty("sqlExportOptions")) - object.sqlExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.toObject(message.sqlExportOptions, options); - if (message.csvExportOptions != null && message.hasOwnProperty("csvExportOptions")) - object.csvExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlCsvExportOptions.toObject(message.csvExportOptions, options); - if (message.fileType != null && message.hasOwnProperty("fileType")) + if (message.sqlExportOptions != null && Object.hasOwnProperty.call(message, "sqlExportOptions")) + object.sqlExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.toObject(message.sqlExportOptions, options, q + 1); + if (message.csvExportOptions != null && Object.hasOwnProperty.call(message, "csvExportOptions")) + object.csvExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlCsvExportOptions.toObject(message.csvExportOptions, options, q + 1); + if (message.fileType != null && Object.hasOwnProperty.call(message, "fileType")) object.fileType = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlFileType[message.fileType] === undefined ? message.fileType : $root.google.cloud.sql.v1beta4.SqlFileType[message.fileType] : message.fileType; - if (message.offload != null && message.hasOwnProperty("offload")) - object.offload = $root.google.protobuf.BoolValue.toObject(message.offload, options); - if (message.bakExportOptions != null && message.hasOwnProperty("bakExportOptions")) - object.bakExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions.toObject(message.bakExportOptions, options); - if (message.tdeExportOptions != null && message.hasOwnProperty("tdeExportOptions")) - object.tdeExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlTdeExportOptions.toObject(message.tdeExportOptions, options); + if (message.offload != null && Object.hasOwnProperty.call(message, "offload")) + object.offload = $root.google.protobuf.BoolValue.toObject(message.offload, options, q + 1); + if (message.bakExportOptions != null && Object.hasOwnProperty.call(message, "bakExportOptions")) + object.bakExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions.toObject(message.bakExportOptions, options, q + 1); + if (message.tdeExportOptions != null && Object.hasOwnProperty.call(message, "tdeExportOptions")) + object.tdeExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlTdeExportOptions.toObject(message.tdeExportOptions, options, q + 1); return object; }; @@ -108345,7 +116069,7 @@ function SqlCsvExportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -108410,9 +116134,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlCsvExportOptions.encode = function encode(message, writer) { + SqlCsvExportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.selectQuery != null && Object.hasOwnProperty.call(message, "selectQuery")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.selectQuery); if (message.escapeCharacter != null && Object.hasOwnProperty.call(message, "escapeCharacter")) @@ -108436,7 +116164,7 @@ * @returns {$protobuf.Writer} Writer */ SqlCsvExportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -108450,9 +116178,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlCsvExportOptions.decode = function decode(reader, length, error) { + SqlCsvExportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ExportContext.SqlCsvExportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -108480,7 +116212,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -108511,22 +116243,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlCsvExportOptions.verify = function verify(message) { + SqlCsvExportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.selectQuery != null && message.hasOwnProperty("selectQuery")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.selectQuery != null && Object.hasOwnProperty.call(message, "selectQuery")) if (!$util.isString(message.selectQuery)) return "selectQuery: string expected"; - if (message.escapeCharacter != null && message.hasOwnProperty("escapeCharacter")) + if (message.escapeCharacter != null && Object.hasOwnProperty.call(message, "escapeCharacter")) if (!$util.isString(message.escapeCharacter)) return "escapeCharacter: string expected"; - if (message.quoteCharacter != null && message.hasOwnProperty("quoteCharacter")) + if (message.quoteCharacter != null && Object.hasOwnProperty.call(message, "quoteCharacter")) if (!$util.isString(message.quoteCharacter)) return "quoteCharacter: string expected"; - if (message.fieldsTerminatedBy != null && message.hasOwnProperty("fieldsTerminatedBy")) + if (message.fieldsTerminatedBy != null && Object.hasOwnProperty.call(message, "fieldsTerminatedBy")) if (!$util.isString(message.fieldsTerminatedBy)) return "fieldsTerminatedBy: string expected"; - if (message.linesTerminatedBy != null && message.hasOwnProperty("linesTerminatedBy")) + if (message.linesTerminatedBy != null && Object.hasOwnProperty.call(message, "linesTerminatedBy")) if (!$util.isString(message.linesTerminatedBy)) return "linesTerminatedBy: string expected"; return null; @@ -108540,9 +116276,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ExportContext.SqlCsvExportOptions} SqlCsvExportOptions */ - SqlCsvExportOptions.fromObject = function fromObject(object) { + SqlCsvExportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ExportContext.SqlCsvExportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlCsvExportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ExportContext.SqlCsvExportOptions(); if (object.selectQuery != null) message.selectQuery = String(object.selectQuery); @@ -108566,9 +116308,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlCsvExportOptions.toObject = function toObject(message, options) { + SqlCsvExportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.selectQuery = ""; @@ -108577,15 +116323,15 @@ object.fieldsTerminatedBy = ""; object.linesTerminatedBy = ""; } - if (message.selectQuery != null && message.hasOwnProperty("selectQuery")) + if (message.selectQuery != null && Object.hasOwnProperty.call(message, "selectQuery")) object.selectQuery = message.selectQuery; - if (message.escapeCharacter != null && message.hasOwnProperty("escapeCharacter")) + if (message.escapeCharacter != null && Object.hasOwnProperty.call(message, "escapeCharacter")) object.escapeCharacter = message.escapeCharacter; - if (message.quoteCharacter != null && message.hasOwnProperty("quoteCharacter")) + if (message.quoteCharacter != null && Object.hasOwnProperty.call(message, "quoteCharacter")) object.quoteCharacter = message.quoteCharacter; - if (message.fieldsTerminatedBy != null && message.hasOwnProperty("fieldsTerminatedBy")) + if (message.fieldsTerminatedBy != null && Object.hasOwnProperty.call(message, "fieldsTerminatedBy")) object.fieldsTerminatedBy = message.fieldsTerminatedBy; - if (message.linesTerminatedBy != null && message.hasOwnProperty("linesTerminatedBy")) + if (message.linesTerminatedBy != null && Object.hasOwnProperty.call(message, "linesTerminatedBy")) object.linesTerminatedBy = message.linesTerminatedBy; return object; }; @@ -108645,7 +116391,7 @@ this.tables = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -108718,22 +116464,26 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlExportOptions.encode = function encode(message, writer) { + SqlExportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.tables != null && message.tables.length) for (var i = 0; i < message.tables.length; ++i) writer.uint32(/* id 1, wireType 2 =*/10).string(message.tables[i]); if (message.schemaOnly != null && Object.hasOwnProperty.call(message, "schemaOnly")) - $root.google.protobuf.BoolValue.encode(message.schemaOnly, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.schemaOnly, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.mysqlExportOptions != null && Object.hasOwnProperty.call(message, "mysqlExportOptions")) - $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.MysqlExportOptions.encode(message.mysqlExportOptions, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.MysqlExportOptions.encode(message.mysqlExportOptions, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.threads != null && Object.hasOwnProperty.call(message, "threads")) - $root.google.protobuf.Int32Value.encode(message.threads, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.threads, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.parallel != null && Object.hasOwnProperty.call(message, "parallel")) - $root.google.protobuf.BoolValue.encode(message.parallel, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.parallel, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.postgresExportOptions != null && Object.hasOwnProperty.call(message, "postgresExportOptions")) - $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions.encode(message.postgresExportOptions, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions.encode(message.postgresExportOptions, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); return writer; }; @@ -108747,7 +116497,7 @@ * @returns {$protobuf.Writer} Writer */ SqlExportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -108761,9 +116511,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlExportOptions.decode = function decode(reader, length, error) { + SqlExportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -108777,27 +116531,27 @@ break; } case 2: { - message.schemaOnly = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.schemaOnly = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { - message.mysqlExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.MysqlExportOptions.decode(reader, reader.uint32()); + message.mysqlExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.MysqlExportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { - message.threads = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.threads = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.parallel = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.parallel = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.postgresExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions.decode(reader, reader.uint32()); + message.postgresExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -108828,38 +116582,42 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlExportOptions.verify = function verify(message) { + SqlExportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.tables != null && message.hasOwnProperty("tables")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.tables != null && Object.hasOwnProperty.call(message, "tables")) { if (!Array.isArray(message.tables)) return "tables: array expected"; for (var i = 0; i < message.tables.length; ++i) if (!$util.isString(message.tables[i])) return "tables: string[] expected"; } - if (message.schemaOnly != null && message.hasOwnProperty("schemaOnly")) { - var error = $root.google.protobuf.BoolValue.verify(message.schemaOnly); + if (message.schemaOnly != null && Object.hasOwnProperty.call(message, "schemaOnly")) { + var error = $root.google.protobuf.BoolValue.verify(message.schemaOnly, long + 1); if (error) return "schemaOnly." + error; } - if (message.mysqlExportOptions != null && message.hasOwnProperty("mysqlExportOptions")) { - var error = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.MysqlExportOptions.verify(message.mysqlExportOptions); + if (message.mysqlExportOptions != null && Object.hasOwnProperty.call(message, "mysqlExportOptions")) { + var error = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.MysqlExportOptions.verify(message.mysqlExportOptions, long + 1); if (error) return "mysqlExportOptions." + error; } - if (message.threads != null && message.hasOwnProperty("threads")) { - var error = $root.google.protobuf.Int32Value.verify(message.threads); + if (message.threads != null && Object.hasOwnProperty.call(message, "threads")) { + var error = $root.google.protobuf.Int32Value.verify(message.threads, long + 1); if (error) return "threads." + error; } - if (message.parallel != null && message.hasOwnProperty("parallel")) { - var error = $root.google.protobuf.BoolValue.verify(message.parallel); + if (message.parallel != null && Object.hasOwnProperty.call(message, "parallel")) { + var error = $root.google.protobuf.BoolValue.verify(message.parallel, long + 1); if (error) return "parallel." + error; } - if (message.postgresExportOptions != null && message.hasOwnProperty("postgresExportOptions")) { - var error = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions.verify(message.postgresExportOptions); + if (message.postgresExportOptions != null && Object.hasOwnProperty.call(message, "postgresExportOptions")) { + var error = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions.verify(message.postgresExportOptions, long + 1); if (error) return "postgresExportOptions." + error; } @@ -108874,9 +116632,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ExportContext.SqlExportOptions} SqlExportOptions */ - SqlExportOptions.fromObject = function fromObject(object) { + SqlExportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlExportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions(); if (object.tables) { if (!Array.isArray(object.tables)) @@ -108886,29 +116650,29 @@ message.tables[i] = String(object.tables[i]); } if (object.schemaOnly != null) { - if (typeof object.schemaOnly !== "object") + if (!$util.isObject(object.schemaOnly)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.schemaOnly: object expected"); - message.schemaOnly = $root.google.protobuf.BoolValue.fromObject(object.schemaOnly); + message.schemaOnly = $root.google.protobuf.BoolValue.fromObject(object.schemaOnly, long + 1); } if (object.mysqlExportOptions != null) { - if (typeof object.mysqlExportOptions !== "object") + if (!$util.isObject(object.mysqlExportOptions)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.mysqlExportOptions: object expected"); - message.mysqlExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.MysqlExportOptions.fromObject(object.mysqlExportOptions); + message.mysqlExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.MysqlExportOptions.fromObject(object.mysqlExportOptions, long + 1); } if (object.threads != null) { - if (typeof object.threads !== "object") + if (!$util.isObject(object.threads)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.threads: object expected"); - message.threads = $root.google.protobuf.Int32Value.fromObject(object.threads); + message.threads = $root.google.protobuf.Int32Value.fromObject(object.threads, long + 1); } if (object.parallel != null) { - if (typeof object.parallel !== "object") + if (!$util.isObject(object.parallel)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.parallel: object expected"); - message.parallel = $root.google.protobuf.BoolValue.fromObject(object.parallel); + message.parallel = $root.google.protobuf.BoolValue.fromObject(object.parallel, long + 1); } if (object.postgresExportOptions != null) { - if (typeof object.postgresExportOptions !== "object") + if (!$util.isObject(object.postgresExportOptions)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.postgresExportOptions: object expected"); - message.postgresExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions.fromObject(object.postgresExportOptions); + message.postgresExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions.fromObject(object.postgresExportOptions, long + 1); } return message; }; @@ -108922,9 +116686,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlExportOptions.toObject = function toObject(message, options) { + SqlExportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.tables = []; @@ -108940,16 +116708,16 @@ for (var j = 0; j < message.tables.length; ++j) object.tables[j] = message.tables[j]; } - if (message.schemaOnly != null && message.hasOwnProperty("schemaOnly")) - object.schemaOnly = $root.google.protobuf.BoolValue.toObject(message.schemaOnly, options); - if (message.mysqlExportOptions != null && message.hasOwnProperty("mysqlExportOptions")) - object.mysqlExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.MysqlExportOptions.toObject(message.mysqlExportOptions, options); - if (message.threads != null && message.hasOwnProperty("threads")) - object.threads = $root.google.protobuf.Int32Value.toObject(message.threads, options); - if (message.parallel != null && message.hasOwnProperty("parallel")) - object.parallel = $root.google.protobuf.BoolValue.toObject(message.parallel, options); - if (message.postgresExportOptions != null && message.hasOwnProperty("postgresExportOptions")) - object.postgresExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions.toObject(message.postgresExportOptions, options); + if (message.schemaOnly != null && Object.hasOwnProperty.call(message, "schemaOnly")) + object.schemaOnly = $root.google.protobuf.BoolValue.toObject(message.schemaOnly, options, q + 1); + if (message.mysqlExportOptions != null && Object.hasOwnProperty.call(message, "mysqlExportOptions")) + object.mysqlExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.MysqlExportOptions.toObject(message.mysqlExportOptions, options, q + 1); + if (message.threads != null && Object.hasOwnProperty.call(message, "threads")) + object.threads = $root.google.protobuf.Int32Value.toObject(message.threads, options, q + 1); + if (message.parallel != null && Object.hasOwnProperty.call(message, "parallel")) + object.parallel = $root.google.protobuf.BoolValue.toObject(message.parallel, options, q + 1); + if (message.postgresExportOptions != null && Object.hasOwnProperty.call(message, "postgresExportOptions")) + object.postgresExportOptions = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions.toObject(message.postgresExportOptions, options, q + 1); return object; }; @@ -108999,7 +116767,7 @@ function MysqlExportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -109032,11 +116800,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MysqlExportOptions.encode = function encode(message, writer) { + MysqlExportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.masterData != null && Object.hasOwnProperty.call(message, "masterData")) - $root.google.protobuf.Int32Value.encode(message.masterData, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.masterData, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -109050,7 +116822,7 @@ * @returns {$protobuf.Writer} Writer */ MysqlExportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -109064,9 +116836,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MysqlExportOptions.decode = function decode(reader, length, error) { + MysqlExportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.MysqlExportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -109074,11 +116850,11 @@ break; switch (tag >>> 3) { case 1: { - message.masterData = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.masterData = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -109109,11 +116885,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MysqlExportOptions.verify = function verify(message) { + MysqlExportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.masterData != null && message.hasOwnProperty("masterData")) { - var error = $root.google.protobuf.Int32Value.verify(message.masterData); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.masterData != null && Object.hasOwnProperty.call(message, "masterData")) { + var error = $root.google.protobuf.Int32Value.verify(message.masterData, long + 1); if (error) return "masterData." + error; } @@ -109128,14 +116908,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.MysqlExportOptions} MysqlExportOptions */ - MysqlExportOptions.fromObject = function fromObject(object) { + MysqlExportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.MysqlExportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.MysqlExportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.MysqlExportOptions(); if (object.masterData != null) { - if (typeof object.masterData !== "object") + if (!$util.isObject(object.masterData)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.MysqlExportOptions.masterData: object expected"); - message.masterData = $root.google.protobuf.Int32Value.fromObject(object.masterData); + message.masterData = $root.google.protobuf.Int32Value.fromObject(object.masterData, long + 1); } return message; }; @@ -109149,14 +116935,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MysqlExportOptions.toObject = function toObject(message, options) { + MysqlExportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.masterData = null; - if (message.masterData != null && message.hasOwnProperty("masterData")) - object.masterData = $root.google.protobuf.Int32Value.toObject(message.masterData, options); + if (message.masterData != null && Object.hasOwnProperty.call(message, "masterData")) + object.masterData = $root.google.protobuf.Int32Value.toObject(message.masterData, options, q + 1); return object; }; @@ -109210,7 +117000,7 @@ function PostgresExportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -109251,13 +117041,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PostgresExportOptions.encode = function encode(message, writer) { + PostgresExportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.clean != null && Object.hasOwnProperty.call(message, "clean")) - $root.google.protobuf.BoolValue.encode(message.clean, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.clean, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.ifExists != null && Object.hasOwnProperty.call(message, "ifExists")) - $root.google.protobuf.BoolValue.encode(message.ifExists, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.ifExists, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -109271,7 +117065,7 @@ * @returns {$protobuf.Writer} Writer */ PostgresExportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -109285,9 +117079,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PostgresExportOptions.decode = function decode(reader, length, error) { + PostgresExportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -109295,15 +117093,15 @@ break; switch (tag >>> 3) { case 1: { - message.clean = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.clean = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.ifExists = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.ifExists = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -109334,16 +117132,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PostgresExportOptions.verify = function verify(message) { + PostgresExportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.clean != null && message.hasOwnProperty("clean")) { - var error = $root.google.protobuf.BoolValue.verify(message.clean); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.clean != null && Object.hasOwnProperty.call(message, "clean")) { + var error = $root.google.protobuf.BoolValue.verify(message.clean, long + 1); if (error) return "clean." + error; } - if (message.ifExists != null && message.hasOwnProperty("ifExists")) { - var error = $root.google.protobuf.BoolValue.verify(message.ifExists); + if (message.ifExists != null && Object.hasOwnProperty.call(message, "ifExists")) { + var error = $root.google.protobuf.BoolValue.verify(message.ifExists, long + 1); if (error) return "ifExists." + error; } @@ -109358,19 +117160,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions} PostgresExportOptions */ - PostgresExportOptions.fromObject = function fromObject(object) { + PostgresExportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions(); if (object.clean != null) { - if (typeof object.clean !== "object") + if (!$util.isObject(object.clean)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions.clean: object expected"); - message.clean = $root.google.protobuf.BoolValue.fromObject(object.clean); + message.clean = $root.google.protobuf.BoolValue.fromObject(object.clean, long + 1); } if (object.ifExists != null) { - if (typeof object.ifExists !== "object") + if (!$util.isObject(object.ifExists)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions.ifExists: object expected"); - message.ifExists = $root.google.protobuf.BoolValue.fromObject(object.ifExists); + message.ifExists = $root.google.protobuf.BoolValue.fromObject(object.ifExists, long + 1); } return message; }; @@ -109384,18 +117192,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PostgresExportOptions.toObject = function toObject(message, options) { + PostgresExportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.clean = null; object.ifExists = null; } - if (message.clean != null && message.hasOwnProperty("clean")) - object.clean = $root.google.protobuf.BoolValue.toObject(message.clean, options); - if (message.ifExists != null && message.hasOwnProperty("ifExists")) - object.ifExists = $root.google.protobuf.BoolValue.toObject(message.ifExists, options); + if (message.clean != null && Object.hasOwnProperty.call(message, "clean")) + object.clean = $root.google.protobuf.BoolValue.toObject(message.clean, options, q + 1); + if (message.ifExists != null && Object.hasOwnProperty.call(message, "ifExists")) + object.ifExists = $root.google.protobuf.BoolValue.toObject(message.ifExists, options, q + 1); return object; }; @@ -109457,7 +117269,7 @@ function SqlBakExportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -109538,23 +117350,27 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlBakExportOptions.encode = function encode(message, writer) { + SqlBakExportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.striped != null && Object.hasOwnProperty.call(message, "striped")) - $root.google.protobuf.BoolValue.encode(message.striped, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.striped, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.stripeCount != null && Object.hasOwnProperty.call(message, "stripeCount")) - $root.google.protobuf.Int32Value.encode(message.stripeCount, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.stripeCount, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.bakType != null && Object.hasOwnProperty.call(message, "bakType")) writer.uint32(/* id 4, wireType 0 =*/32).int32(message.bakType); if (message.copyOnly != null && Object.hasOwnProperty.call(message, "copyOnly")) - $root.google.protobuf.BoolValue.encode(message.copyOnly, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.copyOnly, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.differentialBase != null && Object.hasOwnProperty.call(message, "differentialBase")) - $root.google.protobuf.BoolValue.encode(message.differentialBase, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.differentialBase, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.exportLogStartTime != null && Object.hasOwnProperty.call(message, "exportLogStartTime")) - $root.google.protobuf.Timestamp.encode(message.exportLogStartTime, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.exportLogStartTime, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.exportLogEndTime != null && Object.hasOwnProperty.call(message, "exportLogEndTime")) - $root.google.protobuf.Timestamp.encode(message.exportLogEndTime, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.exportLogEndTime, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); return writer; }; @@ -109568,7 +117384,7 @@ * @returns {$protobuf.Writer} Writer */ SqlBakExportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -109582,9 +117398,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlBakExportOptions.decode = function decode(reader, length, error) { + SqlBakExportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -109592,11 +117412,11 @@ break; switch (tag >>> 3) { case 1: { - message.striped = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.striped = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.stripeCount = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.stripeCount = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { @@ -109604,23 +117424,23 @@ break; } case 5: { - message.copyOnly = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.copyOnly = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.differentialBase = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.differentialBase = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { - message.exportLogStartTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.exportLogStartTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.exportLogEndTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.exportLogEndTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -109651,20 +117471,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlBakExportOptions.verify = function verify(message) { + SqlBakExportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.striped != null && message.hasOwnProperty("striped")) { - var error = $root.google.protobuf.BoolValue.verify(message.striped); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.striped != null && Object.hasOwnProperty.call(message, "striped")) { + var error = $root.google.protobuf.BoolValue.verify(message.striped, long + 1); if (error) return "striped." + error; } - if (message.stripeCount != null && message.hasOwnProperty("stripeCount")) { - var error = $root.google.protobuf.Int32Value.verify(message.stripeCount); + if (message.stripeCount != null && Object.hasOwnProperty.call(message, "stripeCount")) { + var error = $root.google.protobuf.Int32Value.verify(message.stripeCount, long + 1); if (error) return "stripeCount." + error; } - if (message.bakType != null && message.hasOwnProperty("bakType")) + if (message.bakType != null && Object.hasOwnProperty.call(message, "bakType")) switch (message.bakType) { default: return "bakType: enum value expected"; @@ -109674,23 +117498,23 @@ case 3: break; } - if (message.copyOnly != null && message.hasOwnProperty("copyOnly")) { - var error = $root.google.protobuf.BoolValue.verify(message.copyOnly); + if (message.copyOnly != null && Object.hasOwnProperty.call(message, "copyOnly")) { + var error = $root.google.protobuf.BoolValue.verify(message.copyOnly, long + 1); if (error) return "copyOnly." + error; } - if (message.differentialBase != null && message.hasOwnProperty("differentialBase")) { - var error = $root.google.protobuf.BoolValue.verify(message.differentialBase); + if (message.differentialBase != null && Object.hasOwnProperty.call(message, "differentialBase")) { + var error = $root.google.protobuf.BoolValue.verify(message.differentialBase, long + 1); if (error) return "differentialBase." + error; } - if (message.exportLogStartTime != null && message.hasOwnProperty("exportLogStartTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.exportLogStartTime); + if (message.exportLogStartTime != null && Object.hasOwnProperty.call(message, "exportLogStartTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.exportLogStartTime, long + 1); if (error) return "exportLogStartTime." + error; } - if (message.exportLogEndTime != null && message.hasOwnProperty("exportLogEndTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.exportLogEndTime); + if (message.exportLogEndTime != null && Object.hasOwnProperty.call(message, "exportLogEndTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.exportLogEndTime, long + 1); if (error) return "exportLogEndTime." + error; } @@ -109705,19 +117529,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions} SqlBakExportOptions */ - SqlBakExportOptions.fromObject = function fromObject(object) { + SqlBakExportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions(); if (object.striped != null) { - if (typeof object.striped !== "object") + if (!$util.isObject(object.striped)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions.striped: object expected"); - message.striped = $root.google.protobuf.BoolValue.fromObject(object.striped); + message.striped = $root.google.protobuf.BoolValue.fromObject(object.striped, long + 1); } if (object.stripeCount != null) { - if (typeof object.stripeCount !== "object") + if (!$util.isObject(object.stripeCount)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions.stripeCount: object expected"); - message.stripeCount = $root.google.protobuf.Int32Value.fromObject(object.stripeCount); + message.stripeCount = $root.google.protobuf.Int32Value.fromObject(object.stripeCount, long + 1); } switch (object.bakType) { default: @@ -109744,24 +117574,24 @@ break; } if (object.copyOnly != null) { - if (typeof object.copyOnly !== "object") + if (!$util.isObject(object.copyOnly)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions.copyOnly: object expected"); - message.copyOnly = $root.google.protobuf.BoolValue.fromObject(object.copyOnly); + message.copyOnly = $root.google.protobuf.BoolValue.fromObject(object.copyOnly, long + 1); } if (object.differentialBase != null) { - if (typeof object.differentialBase !== "object") + if (!$util.isObject(object.differentialBase)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions.differentialBase: object expected"); - message.differentialBase = $root.google.protobuf.BoolValue.fromObject(object.differentialBase); + message.differentialBase = $root.google.protobuf.BoolValue.fromObject(object.differentialBase, long + 1); } if (object.exportLogStartTime != null) { - if (typeof object.exportLogStartTime !== "object") + if (!$util.isObject(object.exportLogStartTime)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions.exportLogStartTime: object expected"); - message.exportLogStartTime = $root.google.protobuf.Timestamp.fromObject(object.exportLogStartTime); + message.exportLogStartTime = $root.google.protobuf.Timestamp.fromObject(object.exportLogStartTime, long + 1); } if (object.exportLogEndTime != null) { - if (typeof object.exportLogEndTime !== "object") + if (!$util.isObject(object.exportLogEndTime)) throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlBakExportOptions.exportLogEndTime: object expected"); - message.exportLogEndTime = $root.google.protobuf.Timestamp.fromObject(object.exportLogEndTime); + message.exportLogEndTime = $root.google.protobuf.Timestamp.fromObject(object.exportLogEndTime, long + 1); } return message; }; @@ -109775,9 +117605,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlBakExportOptions.toObject = function toObject(message, options) { + SqlBakExportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.striped = null; @@ -109788,20 +117622,20 @@ object.exportLogStartTime = null; object.exportLogEndTime = null; } - if (message.striped != null && message.hasOwnProperty("striped")) - object.striped = $root.google.protobuf.BoolValue.toObject(message.striped, options); - if (message.stripeCount != null && message.hasOwnProperty("stripeCount")) - object.stripeCount = $root.google.protobuf.Int32Value.toObject(message.stripeCount, options); - if (message.bakType != null && message.hasOwnProperty("bakType")) + if (message.striped != null && Object.hasOwnProperty.call(message, "striped")) + object.striped = $root.google.protobuf.BoolValue.toObject(message.striped, options, q + 1); + if (message.stripeCount != null && Object.hasOwnProperty.call(message, "stripeCount")) + object.stripeCount = $root.google.protobuf.Int32Value.toObject(message.stripeCount, options, q + 1); + if (message.bakType != null && Object.hasOwnProperty.call(message, "bakType")) object.bakType = options.enums === String ? $root.google.cloud.sql.v1beta4.BakType[message.bakType] === undefined ? message.bakType : $root.google.cloud.sql.v1beta4.BakType[message.bakType] : message.bakType; - if (message.copyOnly != null && message.hasOwnProperty("copyOnly")) - object.copyOnly = $root.google.protobuf.BoolValue.toObject(message.copyOnly, options); - if (message.differentialBase != null && message.hasOwnProperty("differentialBase")) - object.differentialBase = $root.google.protobuf.BoolValue.toObject(message.differentialBase, options); - if (message.exportLogStartTime != null && message.hasOwnProperty("exportLogStartTime")) - object.exportLogStartTime = $root.google.protobuf.Timestamp.toObject(message.exportLogStartTime, options); - if (message.exportLogEndTime != null && message.hasOwnProperty("exportLogEndTime")) - object.exportLogEndTime = $root.google.protobuf.Timestamp.toObject(message.exportLogEndTime, options); + if (message.copyOnly != null && Object.hasOwnProperty.call(message, "copyOnly")) + object.copyOnly = $root.google.protobuf.BoolValue.toObject(message.copyOnly, options, q + 1); + if (message.differentialBase != null && Object.hasOwnProperty.call(message, "differentialBase")) + object.differentialBase = $root.google.protobuf.BoolValue.toObject(message.differentialBase, options, q + 1); + if (message.exportLogStartTime != null && Object.hasOwnProperty.call(message, "exportLogStartTime")) + object.exportLogStartTime = $root.google.protobuf.Timestamp.toObject(message.exportLogStartTime, options, q + 1); + if (message.exportLogEndTime != null && Object.hasOwnProperty.call(message, "exportLogEndTime")) + object.exportLogEndTime = $root.google.protobuf.Timestamp.toObject(message.exportLogEndTime, options, q + 1); return object; }; @@ -109857,7 +117691,7 @@ function SqlTdeExportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -109914,9 +117748,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlTdeExportOptions.encode = function encode(message, writer) { + SqlTdeExportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.certificatePath != null && Object.hasOwnProperty.call(message, "certificatePath")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.certificatePath); if (message.privateKeyPath != null && Object.hasOwnProperty.call(message, "privateKeyPath")) @@ -109938,7 +117776,7 @@ * @returns {$protobuf.Writer} Writer */ SqlTdeExportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -109952,9 +117790,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlTdeExportOptions.decode = function decode(reader, length, error) { + SqlTdeExportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ExportContext.SqlTdeExportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -109978,7 +117820,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -110009,19 +117851,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlTdeExportOptions.verify = function verify(message) { + SqlTdeExportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.certificatePath != null && message.hasOwnProperty("certificatePath")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.certificatePath != null && Object.hasOwnProperty.call(message, "certificatePath")) if (!$util.isString(message.certificatePath)) return "certificatePath: string expected"; - if (message.privateKeyPath != null && message.hasOwnProperty("privateKeyPath")) + if (message.privateKeyPath != null && Object.hasOwnProperty.call(message, "privateKeyPath")) if (!$util.isString(message.privateKeyPath)) return "privateKeyPath: string expected"; - if (message.privateKeyPassword != null && message.hasOwnProperty("privateKeyPassword")) + if (message.privateKeyPassword != null && Object.hasOwnProperty.call(message, "privateKeyPassword")) if (!$util.isString(message.privateKeyPassword)) return "privateKeyPassword: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; return null; @@ -110035,9 +117881,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ExportContext.SqlTdeExportOptions} SqlTdeExportOptions */ - SqlTdeExportOptions.fromObject = function fromObject(object) { + SqlTdeExportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ExportContext.SqlTdeExportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ExportContext.SqlTdeExportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ExportContext.SqlTdeExportOptions(); if (object.certificatePath != null) message.certificatePath = String(object.certificatePath); @@ -110059,9 +117911,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlTdeExportOptions.toObject = function toObject(message, options) { + SqlTdeExportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.certificatePath = ""; @@ -110069,13 +117925,13 @@ object.privateKeyPassword = ""; object.name = ""; } - if (message.certificatePath != null && message.hasOwnProperty("certificatePath")) + if (message.certificatePath != null && Object.hasOwnProperty.call(message, "certificatePath")) object.certificatePath = message.certificatePath; - if (message.privateKeyPath != null && message.hasOwnProperty("privateKeyPath")) + if (message.privateKeyPath != null && Object.hasOwnProperty.call(message, "privateKeyPath")) object.privateKeyPath = message.privateKeyPath; - if (message.privateKeyPassword != null && message.hasOwnProperty("privateKeyPassword")) + if (message.privateKeyPassword != null && Object.hasOwnProperty.call(message, "privateKeyPassword")) object.privateKeyPassword = message.privateKeyPassword; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; return object; }; @@ -110133,7 +117989,7 @@ function FailoverContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -110174,9 +118030,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FailoverContext.encode = function encode(message, writer) { + FailoverContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.settingsVersion != null && Object.hasOwnProperty.call(message, "settingsVersion")) writer.uint32(/* id 1, wireType 0 =*/8).int64(message.settingsVersion); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -110194,7 +118054,7 @@ * @returns {$protobuf.Writer} Writer */ FailoverContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -110208,9 +118068,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FailoverContext.decode = function decode(reader, length, error) { + FailoverContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.FailoverContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -110226,7 +118090,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -110257,13 +118121,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FailoverContext.verify = function verify(message) { + FailoverContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.settingsVersion != null && message.hasOwnProperty("settingsVersion")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.settingsVersion != null && Object.hasOwnProperty.call(message, "settingsVersion")) if (!$util.isInteger(message.settingsVersion) && !(message.settingsVersion && $util.isInteger(message.settingsVersion.low) && $util.isInteger(message.settingsVersion.high))) return "settingsVersion: integer|Long expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -110277,13 +118145,19 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.FailoverContext} FailoverContext */ - FailoverContext.fromObject = function fromObject(object) { + FailoverContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.FailoverContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.FailoverContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.FailoverContext(); if (object.settingsVersion != null) if ($util.Long) - (message.settingsVersion = $util.Long.fromValue(object.settingsVersion)).unsigned = false; + message.settingsVersion = $util.Long.fromValue(object.settingsVersion, false); else if (typeof object.settingsVersion === "string") message.settingsVersion = parseInt(object.settingsVersion, 10); else if (typeof object.settingsVersion === "number") @@ -110304,24 +118178,30 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FailoverContext.toObject = function toObject(message, options) { + FailoverContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { if ($util.Long) { var long = new $util.Long(0, 0, false); - object.settingsVersion = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.settingsVersion = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.settingsVersion = options.longs === String ? "0" : 0; + object.settingsVersion = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.kind = ""; } - if (message.settingsVersion != null && message.hasOwnProperty("settingsVersion")) - if (typeof message.settingsVersion === "number") + if (message.settingsVersion != null && Object.hasOwnProperty.call(message, "settingsVersion")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.settingsVersion = typeof message.settingsVersion === "number" ? BigInt(message.settingsVersion) : $util.Long.fromBits(message.settingsVersion.low >>> 0, message.settingsVersion.high >>> 0, false).toBigInt(); + else if (typeof message.settingsVersion === "number") object.settingsVersion = options.longs === String ? String(message.settingsVersion) : message.settingsVersion; else object.settingsVersion = options.longs === String ? $util.Long.prototype.toString.call(message.settingsVersion) : options.longs === Number ? new $util.LongBits(message.settingsVersion.low >>> 0, message.settingsVersion.high >>> 0).toNumber() : message.settingsVersion; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -110390,7 +118270,7 @@ this.allowedIntValues = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -110533,9 +118413,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Flag.encode = function encode(message, writer) { + Flag.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.type != null && Object.hasOwnProperty.call(message, "type")) @@ -110550,15 +118434,15 @@ for (var i = 0; i < message.allowedStringValues.length; ++i) writer.uint32(/* id 4, wireType 2 =*/34).string(message.allowedStringValues[i]); if (message.minValue != null && Object.hasOwnProperty.call(message, "minValue")) - $root.google.protobuf.Int64Value.encode(message.minValue, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.minValue, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.maxValue != null && Object.hasOwnProperty.call(message, "maxValue")) - $root.google.protobuf.Int64Value.encode(message.maxValue, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.maxValue, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.requiresRestart != null && Object.hasOwnProperty.call(message, "requiresRestart")) - $root.google.protobuf.BoolValue.encode(message.requiresRestart, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.requiresRestart, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 8, wireType 2 =*/66).string(message.kind); if (message.inBeta != null && Object.hasOwnProperty.call(message, "inBeta")) - $root.google.protobuf.BoolValue.encode(message.inBeta, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.inBeta, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); if (message.allowedIntValues != null && message.allowedIntValues.length) { writer.uint32(/* id 10, wireType 2 =*/82).fork(); for (var i = 0; i < message.allowedIntValues.length; ++i) @@ -110570,7 +118454,7 @@ if (message.recommendedStringValue != null && Object.hasOwnProperty.call(message, "recommendedStringValue")) writer.uint32(/* id 16, wireType 2 =*/130).string(message.recommendedStringValue); if (message.recommendedIntValue != null && Object.hasOwnProperty.call(message, "recommendedIntValue")) - $root.google.protobuf.Int64Value.encode(message.recommendedIntValue, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.recommendedIntValue, writer.uint32(/* id 17, wireType 2 =*/138).fork(), q + 1).ldelim(); return writer; }; @@ -110584,7 +118468,7 @@ * @returns {$protobuf.Writer} Writer */ Flag.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -110598,9 +118482,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Flag.decode = function decode(reader, length, error) { + Flag.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.Flag(); while (reader.pos < end) { var tag = reader.uint32(); @@ -110633,15 +118521,15 @@ break; } case 5: { - message.minValue = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.minValue = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.maxValue = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.maxValue = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { - message.requiresRestart = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.requiresRestart = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { @@ -110649,7 +118537,7 @@ break; } case 9: { - message.inBeta = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.inBeta = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { @@ -110672,11 +118560,11 @@ break; } case 17: { - message.recommendedIntValue = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.recommendedIntValue = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -110707,14 +118595,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Flag.verify = function verify(message) { + Flag.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) switch (message.type) { default: return "type: enum value expected"; @@ -110728,7 +118620,7 @@ case 7: break; } - if (message.appliesTo != null && message.hasOwnProperty("appliesTo")) { + if (message.appliesTo != null && Object.hasOwnProperty.call(message, "appliesTo")) { if (!Array.isArray(message.appliesTo)) return "appliesTo: array expected"; for (var i = 0; i < message.appliesTo.length; ++i) @@ -110778,6 +118670,8 @@ case 272: case 408: case 557: + case 684: + case 781: case 26: case 27: case 28: @@ -110786,47 +118680,50 @@ case 200: case 201: case 202: + case 549: + case 550: + case 551: break; } } - if (message.allowedStringValues != null && message.hasOwnProperty("allowedStringValues")) { + if (message.allowedStringValues != null && Object.hasOwnProperty.call(message, "allowedStringValues")) { if (!Array.isArray(message.allowedStringValues)) return "allowedStringValues: array expected"; for (var i = 0; i < message.allowedStringValues.length; ++i) if (!$util.isString(message.allowedStringValues[i])) return "allowedStringValues: string[] expected"; } - if (message.minValue != null && message.hasOwnProperty("minValue")) { - var error = $root.google.protobuf.Int64Value.verify(message.minValue); + if (message.minValue != null && Object.hasOwnProperty.call(message, "minValue")) { + var error = $root.google.protobuf.Int64Value.verify(message.minValue, long + 1); if (error) return "minValue." + error; } - if (message.maxValue != null && message.hasOwnProperty("maxValue")) { - var error = $root.google.protobuf.Int64Value.verify(message.maxValue); + if (message.maxValue != null && Object.hasOwnProperty.call(message, "maxValue")) { + var error = $root.google.protobuf.Int64Value.verify(message.maxValue, long + 1); if (error) return "maxValue." + error; } - if (message.requiresRestart != null && message.hasOwnProperty("requiresRestart")) { - var error = $root.google.protobuf.BoolValue.verify(message.requiresRestart); + if (message.requiresRestart != null && Object.hasOwnProperty.call(message, "requiresRestart")) { + var error = $root.google.protobuf.BoolValue.verify(message.requiresRestart, long + 1); if (error) return "requiresRestart." + error; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.inBeta != null && message.hasOwnProperty("inBeta")) { - var error = $root.google.protobuf.BoolValue.verify(message.inBeta); + if (message.inBeta != null && Object.hasOwnProperty.call(message, "inBeta")) { + var error = $root.google.protobuf.BoolValue.verify(message.inBeta, long + 1); if (error) return "inBeta." + error; } - if (message.allowedIntValues != null && message.hasOwnProperty("allowedIntValues")) { + if (message.allowedIntValues != null && Object.hasOwnProperty.call(message, "allowedIntValues")) { if (!Array.isArray(message.allowedIntValues)) return "allowedIntValues: array expected"; for (var i = 0; i < message.allowedIntValues.length; ++i) if (!$util.isInteger(message.allowedIntValues[i]) && !(message.allowedIntValues[i] && $util.isInteger(message.allowedIntValues[i].low) && $util.isInteger(message.allowedIntValues[i].high))) return "allowedIntValues: integer|Long[] expected"; } - if (message.flagScope != null && message.hasOwnProperty("flagScope")) + if (message.flagScope != null && Object.hasOwnProperty.call(message, "flagScope")) switch (message.flagScope) { default: return "flagScope: enum value expected"; @@ -110835,17 +118732,17 @@ case 2: break; } - if (message.recommendedStringValue != null && message.hasOwnProperty("recommendedStringValue")) { + if (message.recommendedStringValue != null && Object.hasOwnProperty.call(message, "recommendedStringValue")) { properties.recommendedValue = 1; if (!$util.isString(message.recommendedStringValue)) return "recommendedStringValue: string expected"; } - if (message.recommendedIntValue != null && message.hasOwnProperty("recommendedIntValue")) { + if (message.recommendedIntValue != null && Object.hasOwnProperty.call(message, "recommendedIntValue")) { if (properties.recommendedValue === 1) return "recommendedValue: multiple values"; properties.recommendedValue = 1; { - var error = $root.google.protobuf.Int64Value.verify(message.recommendedIntValue); + var error = $root.google.protobuf.Int64Value.verify(message.recommendedIntValue, long + 1); if (error) return "recommendedIntValue." + error; } @@ -110861,9 +118758,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.Flag} Flag */ - Flag.fromObject = function fromObject(object) { + Flag.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.Flag) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.Flag: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.Flag(); if (object.name != null) message.name = String(object.name); @@ -111090,6 +118993,14 @@ case 557: message.appliesTo[i] = 557; break; + case "POSTGRES_19": + case 684: + message.appliesTo[i] = 684; + break; + case "POSTGRES_20": + case 781: + message.appliesTo[i] = 781; + break; case "SQLSERVER_2019_STANDARD": case 26: message.appliesTo[i] = 26; @@ -111122,6 +119033,18 @@ case 202: message.appliesTo[i] = 202; break; + case "SQLSERVER_2025_STANDARD": + case 549: + message.appliesTo[i] = 549; + break; + case "SQLSERVER_2025_ENTERPRISE": + case 550: + message.appliesTo[i] = 550; + break; + case "SQLSERVER_2025_EXPRESS": + case 551: + message.appliesTo[i] = 551; + break; } } if (object.allowedStringValues) { @@ -111132,26 +119055,26 @@ message.allowedStringValues[i] = String(object.allowedStringValues[i]); } if (object.minValue != null) { - if (typeof object.minValue !== "object") + if (!$util.isObject(object.minValue)) throw TypeError(".google.cloud.sql.v1beta4.Flag.minValue: object expected"); - message.minValue = $root.google.protobuf.Int64Value.fromObject(object.minValue); + message.minValue = $root.google.protobuf.Int64Value.fromObject(object.minValue, long + 1); } if (object.maxValue != null) { - if (typeof object.maxValue !== "object") + if (!$util.isObject(object.maxValue)) throw TypeError(".google.cloud.sql.v1beta4.Flag.maxValue: object expected"); - message.maxValue = $root.google.protobuf.Int64Value.fromObject(object.maxValue); + message.maxValue = $root.google.protobuf.Int64Value.fromObject(object.maxValue, long + 1); } if (object.requiresRestart != null) { - if (typeof object.requiresRestart !== "object") + if (!$util.isObject(object.requiresRestart)) throw TypeError(".google.cloud.sql.v1beta4.Flag.requiresRestart: object expected"); - message.requiresRestart = $root.google.protobuf.BoolValue.fromObject(object.requiresRestart); + message.requiresRestart = $root.google.protobuf.BoolValue.fromObject(object.requiresRestart, long + 1); } if (object.kind != null) message.kind = String(object.kind); if (object.inBeta != null) { - if (typeof object.inBeta !== "object") + if (!$util.isObject(object.inBeta)) throw TypeError(".google.cloud.sql.v1beta4.Flag.inBeta: object expected"); - message.inBeta = $root.google.protobuf.BoolValue.fromObject(object.inBeta); + message.inBeta = $root.google.protobuf.BoolValue.fromObject(object.inBeta, long + 1); } if (object.allowedIntValues) { if (!Array.isArray(object.allowedIntValues)) @@ -111159,7 +119082,7 @@ message.allowedIntValues = []; for (var i = 0; i < object.allowedIntValues.length; ++i) if ($util.Long) - (message.allowedIntValues[i] = $util.Long.fromValue(object.allowedIntValues[i])).unsigned = false; + message.allowedIntValues[i] = $util.Long.fromValue(object.allowedIntValues[i], false); else if (typeof object.allowedIntValues[i] === "string") message.allowedIntValues[i] = parseInt(object.allowedIntValues[i], 10); else if (typeof object.allowedIntValues[i] === "number") @@ -111190,9 +119113,9 @@ if (object.recommendedStringValue != null) message.recommendedStringValue = String(object.recommendedStringValue); if (object.recommendedIntValue != null) { - if (typeof object.recommendedIntValue !== "object") + if (!$util.isObject(object.recommendedIntValue)) throw TypeError(".google.cloud.sql.v1beta4.Flag.recommendedIntValue: object expected"); - message.recommendedIntValue = $root.google.protobuf.Int64Value.fromObject(object.recommendedIntValue); + message.recommendedIntValue = $root.google.protobuf.Int64Value.fromObject(object.recommendedIntValue, long + 1); } return message; }; @@ -111206,9 +119129,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Flag.toObject = function toObject(message, options) { + Flag.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.appliesTo = []; @@ -111225,9 +119152,9 @@ object.inBeta = null; object.flagScope = options.enums === String ? "SQL_FLAG_SCOPE_UNSPECIFIED" : 0; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlFlagType[message.type] === undefined ? message.type : $root.google.cloud.sql.v1beta4.SqlFlagType[message.type] : message.type; if (message.appliesTo && message.appliesTo.length) { object.appliesTo = []; @@ -111239,33 +119166,35 @@ for (var j = 0; j < message.allowedStringValues.length; ++j) object.allowedStringValues[j] = message.allowedStringValues[j]; } - if (message.minValue != null && message.hasOwnProperty("minValue")) - object.minValue = $root.google.protobuf.Int64Value.toObject(message.minValue, options); - if (message.maxValue != null && message.hasOwnProperty("maxValue")) - object.maxValue = $root.google.protobuf.Int64Value.toObject(message.maxValue, options); - if (message.requiresRestart != null && message.hasOwnProperty("requiresRestart")) - object.requiresRestart = $root.google.protobuf.BoolValue.toObject(message.requiresRestart, options); - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.minValue != null && Object.hasOwnProperty.call(message, "minValue")) + object.minValue = $root.google.protobuf.Int64Value.toObject(message.minValue, options, q + 1); + if (message.maxValue != null && Object.hasOwnProperty.call(message, "maxValue")) + object.maxValue = $root.google.protobuf.Int64Value.toObject(message.maxValue, options, q + 1); + if (message.requiresRestart != null && Object.hasOwnProperty.call(message, "requiresRestart")) + object.requiresRestart = $root.google.protobuf.BoolValue.toObject(message.requiresRestart, options, q + 1); + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.inBeta != null && message.hasOwnProperty("inBeta")) - object.inBeta = $root.google.protobuf.BoolValue.toObject(message.inBeta, options); + if (message.inBeta != null && Object.hasOwnProperty.call(message, "inBeta")) + object.inBeta = $root.google.protobuf.BoolValue.toObject(message.inBeta, options, q + 1); if (message.allowedIntValues && message.allowedIntValues.length) { object.allowedIntValues = []; for (var j = 0; j < message.allowedIntValues.length; ++j) - if (typeof message.allowedIntValues[j] === "number") + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.allowedIntValues[j] = typeof message.allowedIntValues[j] === "number" ? BigInt(message.allowedIntValues[j]) : $util.Long.fromBits(message.allowedIntValues[j].low >>> 0, message.allowedIntValues[j].high >>> 0, false).toBigInt(); + else if (typeof message.allowedIntValues[j] === "number") object.allowedIntValues[j] = options.longs === String ? String(message.allowedIntValues[j]) : message.allowedIntValues[j]; else object.allowedIntValues[j] = options.longs === String ? $util.Long.prototype.toString.call(message.allowedIntValues[j]) : options.longs === Number ? new $util.LongBits(message.allowedIntValues[j].low >>> 0, message.allowedIntValues[j].high >>> 0).toNumber() : message.allowedIntValues[j]; } - if (message.flagScope != null && message.hasOwnProperty("flagScope")) + if (message.flagScope != null && Object.hasOwnProperty.call(message, "flagScope")) object.flagScope = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlFlagScope[message.flagScope] === undefined ? message.flagScope : $root.google.cloud.sql.v1beta4.SqlFlagScope[message.flagScope] : message.flagScope; - if (message.recommendedStringValue != null && message.hasOwnProperty("recommendedStringValue")) { + if (message.recommendedStringValue != null && Object.hasOwnProperty.call(message, "recommendedStringValue")) { object.recommendedStringValue = message.recommendedStringValue; if (options.oneofs) object.recommendedValue = "recommendedStringValue"; } - if (message.recommendedIntValue != null && message.hasOwnProperty("recommendedIntValue")) { - object.recommendedIntValue = $root.google.protobuf.Int64Value.toObject(message.recommendedIntValue, options); + if (message.recommendedIntValue != null && Object.hasOwnProperty.call(message, "recommendedIntValue")) { + object.recommendedIntValue = $root.google.protobuf.Int64Value.toObject(message.recommendedIntValue, options, q + 1); if (options.oneofs) object.recommendedValue = "recommendedIntValue"; } @@ -111323,7 +119252,7 @@ this.items = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -111364,14 +119293,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FlagsListResponse.encode = function encode(message, writer) { + FlagsListResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.items != null && message.items.length) for (var i = 0; i < message.items.length; ++i) - $root.google.cloud.sql.v1beta4.Flag.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.Flag.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -111385,7 +119318,7 @@ * @returns {$protobuf.Writer} Writer */ FlagsListResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -111399,9 +119332,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FlagsListResponse.decode = function decode(reader, length, error) { + FlagsListResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.FlagsListResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -111415,11 +119352,11 @@ case 2: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.sql.v1beta4.Flag.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.sql.v1beta4.Flag.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -111450,17 +119387,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FlagsListResponse.verify = function verify(message) { + FlagsListResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.items != null && message.hasOwnProperty("items")) { + if (message.items != null && Object.hasOwnProperty.call(message, "items")) { if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.Flag.verify(message.items[i]); + var error = $root.google.cloud.sql.v1beta4.Flag.verify(message.items[i], long + 1); if (error) return "items." + error; } @@ -111476,9 +119417,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.FlagsListResponse} FlagsListResponse */ - FlagsListResponse.fromObject = function fromObject(object) { + FlagsListResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.FlagsListResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.FlagsListResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.FlagsListResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -111487,9 +119434,9 @@ throw TypeError(".google.cloud.sql.v1beta4.FlagsListResponse.items: array expected"); message.items = []; for (var i = 0; i < object.items.length; ++i) { - if (typeof object.items[i] !== "object") + if (!$util.isObject(object.items[i])) throw TypeError(".google.cloud.sql.v1beta4.FlagsListResponse.items: object expected"); - message.items[i] = $root.google.cloud.sql.v1beta4.Flag.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.sql.v1beta4.Flag.fromObject(object.items[i], long + 1); } } return message; @@ -111504,20 +119451,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FlagsListResponse.toObject = function toObject(message, options) { + FlagsListResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.items = []; if (options.defaults) object.kind = ""; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.items && message.items.length) { object.items = []; for (var j = 0; j < message.items.length; ++j) - object.items[j] = $root.google.cloud.sql.v1beta4.Flag.toObject(message.items[j], options); + object.items[j] = $root.google.cloud.sql.v1beta4.Flag.toObject(message.items[j], options, q + 1); } return object; }; @@ -111579,7 +119530,7 @@ function ImportContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -111676,9 +119627,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ImportContext.encode = function encode(message, writer) { + ImportContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.uri != null && Object.hasOwnProperty.call(message, "uri")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.uri); if (message.database != null && Object.hasOwnProperty.call(message, "database")) @@ -111688,15 +119643,15 @@ if (message.fileType != null && Object.hasOwnProperty.call(message, "fileType")) writer.uint32(/* id 4, wireType 0 =*/32).int32(message.fileType); if (message.csvImportOptions != null && Object.hasOwnProperty.call(message, "csvImportOptions")) - $root.google.cloud.sql.v1beta4.ImportContext.SqlCsvImportOptions.encode(message.csvImportOptions, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ImportContext.SqlCsvImportOptions.encode(message.csvImportOptions, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.importUser != null && Object.hasOwnProperty.call(message, "importUser")) writer.uint32(/* id 6, wireType 2 =*/50).string(message.importUser); if (message.bakImportOptions != null && Object.hasOwnProperty.call(message, "bakImportOptions")) - $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.encode(message.bakImportOptions, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.encode(message.bakImportOptions, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.sqlImportOptions != null && Object.hasOwnProperty.call(message, "sqlImportOptions")) - $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.encode(message.sqlImportOptions, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.encode(message.sqlImportOptions, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); if (message.tdeImportOptions != null && Object.hasOwnProperty.call(message, "tdeImportOptions")) - $root.google.cloud.sql.v1beta4.ImportContext.SqlTdeImportOptions.encode(message.tdeImportOptions, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ImportContext.SqlTdeImportOptions.encode(message.tdeImportOptions, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); return writer; }; @@ -111710,7 +119665,7 @@ * @returns {$protobuf.Writer} Writer */ ImportContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -111724,9 +119679,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ImportContext.decode = function decode(reader, length, error) { + ImportContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ImportContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -111750,7 +119709,7 @@ break; } case 5: { - message.csvImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlCsvImportOptions.decode(reader, reader.uint32()); + message.csvImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlCsvImportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { @@ -111758,19 +119717,19 @@ break; } case 7: { - message.bakImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.decode(reader, reader.uint32()); + message.bakImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.sqlImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.decode(reader, reader.uint32()); + message.sqlImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { - message.tdeImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlTdeImportOptions.decode(reader, reader.uint32()); + message.tdeImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlTdeImportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -111801,19 +119760,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ImportContext.verify = function verify(message) { + ImportContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.uri != null && message.hasOwnProperty("uri")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.uri != null && Object.hasOwnProperty.call(message, "uri")) if (!$util.isString(message.uri)) return "uri: string expected"; - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) if (!$util.isString(message.database)) return "database: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.fileType != null && message.hasOwnProperty("fileType")) + if (message.fileType != null && Object.hasOwnProperty.call(message, "fileType")) switch (message.fileType) { default: return "fileType: enum value expected"; @@ -111824,26 +119787,26 @@ case 8: break; } - if (message.csvImportOptions != null && message.hasOwnProperty("csvImportOptions")) { - var error = $root.google.cloud.sql.v1beta4.ImportContext.SqlCsvImportOptions.verify(message.csvImportOptions); + if (message.csvImportOptions != null && Object.hasOwnProperty.call(message, "csvImportOptions")) { + var error = $root.google.cloud.sql.v1beta4.ImportContext.SqlCsvImportOptions.verify(message.csvImportOptions, long + 1); if (error) return "csvImportOptions." + error; } - if (message.importUser != null && message.hasOwnProperty("importUser")) + if (message.importUser != null && Object.hasOwnProperty.call(message, "importUser")) if (!$util.isString(message.importUser)) return "importUser: string expected"; - if (message.bakImportOptions != null && message.hasOwnProperty("bakImportOptions")) { - var error = $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.verify(message.bakImportOptions); + if (message.bakImportOptions != null && Object.hasOwnProperty.call(message, "bakImportOptions")) { + var error = $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.verify(message.bakImportOptions, long + 1); if (error) return "bakImportOptions." + error; } - if (message.sqlImportOptions != null && message.hasOwnProperty("sqlImportOptions")) { - var error = $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.verify(message.sqlImportOptions); + if (message.sqlImportOptions != null && Object.hasOwnProperty.call(message, "sqlImportOptions")) { + var error = $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.verify(message.sqlImportOptions, long + 1); if (error) return "sqlImportOptions." + error; } - if (message.tdeImportOptions != null && message.hasOwnProperty("tdeImportOptions")) { - var error = $root.google.cloud.sql.v1beta4.ImportContext.SqlTdeImportOptions.verify(message.tdeImportOptions); + if (message.tdeImportOptions != null && Object.hasOwnProperty.call(message, "tdeImportOptions")) { + var error = $root.google.cloud.sql.v1beta4.ImportContext.SqlTdeImportOptions.verify(message.tdeImportOptions, long + 1); if (error) return "tdeImportOptions." + error; } @@ -111858,9 +119821,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ImportContext} ImportContext */ - ImportContext.fromObject = function fromObject(object) { + ImportContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ImportContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ImportContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ImportContext(); if (object.uri != null) message.uri = String(object.uri); @@ -111897,26 +119866,26 @@ break; } if (object.csvImportOptions != null) { - if (typeof object.csvImportOptions !== "object") + if (!$util.isObject(object.csvImportOptions)) throw TypeError(".google.cloud.sql.v1beta4.ImportContext.csvImportOptions: object expected"); - message.csvImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlCsvImportOptions.fromObject(object.csvImportOptions); + message.csvImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlCsvImportOptions.fromObject(object.csvImportOptions, long + 1); } if (object.importUser != null) message.importUser = String(object.importUser); if (object.bakImportOptions != null) { - if (typeof object.bakImportOptions !== "object") + if (!$util.isObject(object.bakImportOptions)) throw TypeError(".google.cloud.sql.v1beta4.ImportContext.bakImportOptions: object expected"); - message.bakImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.fromObject(object.bakImportOptions); + message.bakImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.fromObject(object.bakImportOptions, long + 1); } if (object.sqlImportOptions != null) { - if (typeof object.sqlImportOptions !== "object") + if (!$util.isObject(object.sqlImportOptions)) throw TypeError(".google.cloud.sql.v1beta4.ImportContext.sqlImportOptions: object expected"); - message.sqlImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.fromObject(object.sqlImportOptions); + message.sqlImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.fromObject(object.sqlImportOptions, long + 1); } if (object.tdeImportOptions != null) { - if (typeof object.tdeImportOptions !== "object") + if (!$util.isObject(object.tdeImportOptions)) throw TypeError(".google.cloud.sql.v1beta4.ImportContext.tdeImportOptions: object expected"); - message.tdeImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlTdeImportOptions.fromObject(object.tdeImportOptions); + message.tdeImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlTdeImportOptions.fromObject(object.tdeImportOptions, long + 1); } return message; }; @@ -111930,9 +119899,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ImportContext.toObject = function toObject(message, options) { + ImportContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.uri = ""; @@ -111945,24 +119918,24 @@ object.sqlImportOptions = null; object.tdeImportOptions = null; } - if (message.uri != null && message.hasOwnProperty("uri")) + if (message.uri != null && Object.hasOwnProperty.call(message, "uri")) object.uri = message.uri; - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) object.database = message.database; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.fileType != null && message.hasOwnProperty("fileType")) + if (message.fileType != null && Object.hasOwnProperty.call(message, "fileType")) object.fileType = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlFileType[message.fileType] === undefined ? message.fileType : $root.google.cloud.sql.v1beta4.SqlFileType[message.fileType] : message.fileType; - if (message.csvImportOptions != null && message.hasOwnProperty("csvImportOptions")) - object.csvImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlCsvImportOptions.toObject(message.csvImportOptions, options); - if (message.importUser != null && message.hasOwnProperty("importUser")) + if (message.csvImportOptions != null && Object.hasOwnProperty.call(message, "csvImportOptions")) + object.csvImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlCsvImportOptions.toObject(message.csvImportOptions, options, q + 1); + if (message.importUser != null && Object.hasOwnProperty.call(message, "importUser")) object.importUser = message.importUser; - if (message.bakImportOptions != null && message.hasOwnProperty("bakImportOptions")) - object.bakImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.toObject(message.bakImportOptions, options); - if (message.sqlImportOptions != null && message.hasOwnProperty("sqlImportOptions")) - object.sqlImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.toObject(message.sqlImportOptions, options); - if (message.tdeImportOptions != null && message.hasOwnProperty("tdeImportOptions")) - object.tdeImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlTdeImportOptions.toObject(message.tdeImportOptions, options); + if (message.bakImportOptions != null && Object.hasOwnProperty.call(message, "bakImportOptions")) + object.bakImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.toObject(message.bakImportOptions, options, q + 1); + if (message.sqlImportOptions != null && Object.hasOwnProperty.call(message, "sqlImportOptions")) + object.sqlImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.toObject(message.sqlImportOptions, options, q + 1); + if (message.tdeImportOptions != null && Object.hasOwnProperty.call(message, "tdeImportOptions")) + object.tdeImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlTdeImportOptions.toObject(message.tdeImportOptions, options, q + 1); return object; }; @@ -112014,7 +119987,7 @@ function SqlImportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -112063,15 +120036,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlImportOptions.encode = function encode(message, writer) { + SqlImportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.threads != null && Object.hasOwnProperty.call(message, "threads")) - $root.google.protobuf.Int32Value.encode(message.threads, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.threads, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.parallel != null && Object.hasOwnProperty.call(message, "parallel")) - $root.google.protobuf.BoolValue.encode(message.parallel, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.parallel, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.postgresImportOptions != null && Object.hasOwnProperty.call(message, "postgresImportOptions")) - $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions.encode(message.postgresImportOptions, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions.encode(message.postgresImportOptions, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -112085,7 +120062,7 @@ * @returns {$protobuf.Writer} Writer */ SqlImportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -112099,9 +120076,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlImportOptions.decode = function decode(reader, length, error) { + SqlImportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -112109,19 +120090,19 @@ break; switch (tag >>> 3) { case 1: { - message.threads = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.threads = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.parallel = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.parallel = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { - message.postgresImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions.decode(reader, reader.uint32()); + message.postgresImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -112152,21 +120133,25 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlImportOptions.verify = function verify(message) { + SqlImportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.threads != null && message.hasOwnProperty("threads")) { - var error = $root.google.protobuf.Int32Value.verify(message.threads); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.threads != null && Object.hasOwnProperty.call(message, "threads")) { + var error = $root.google.protobuf.Int32Value.verify(message.threads, long + 1); if (error) return "threads." + error; } - if (message.parallel != null && message.hasOwnProperty("parallel")) { - var error = $root.google.protobuf.BoolValue.verify(message.parallel); + if (message.parallel != null && Object.hasOwnProperty.call(message, "parallel")) { + var error = $root.google.protobuf.BoolValue.verify(message.parallel, long + 1); if (error) return "parallel." + error; } - if (message.postgresImportOptions != null && message.hasOwnProperty("postgresImportOptions")) { - var error = $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions.verify(message.postgresImportOptions); + if (message.postgresImportOptions != null && Object.hasOwnProperty.call(message, "postgresImportOptions")) { + var error = $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions.verify(message.postgresImportOptions, long + 1); if (error) return "postgresImportOptions." + error; } @@ -112181,24 +120166,30 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ImportContext.SqlImportOptions} SqlImportOptions */ - SqlImportOptions.fromObject = function fromObject(object) { + SqlImportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ImportContext.SqlImportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions(); if (object.threads != null) { - if (typeof object.threads !== "object") + if (!$util.isObject(object.threads)) throw TypeError(".google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.threads: object expected"); - message.threads = $root.google.protobuf.Int32Value.fromObject(object.threads); + message.threads = $root.google.protobuf.Int32Value.fromObject(object.threads, long + 1); } if (object.parallel != null) { - if (typeof object.parallel !== "object") + if (!$util.isObject(object.parallel)) throw TypeError(".google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.parallel: object expected"); - message.parallel = $root.google.protobuf.BoolValue.fromObject(object.parallel); + message.parallel = $root.google.protobuf.BoolValue.fromObject(object.parallel, long + 1); } if (object.postgresImportOptions != null) { - if (typeof object.postgresImportOptions !== "object") + if (!$util.isObject(object.postgresImportOptions)) throw TypeError(".google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.postgresImportOptions: object expected"); - message.postgresImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions.fromObject(object.postgresImportOptions); + message.postgresImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions.fromObject(object.postgresImportOptions, long + 1); } return message; }; @@ -112212,21 +120203,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlImportOptions.toObject = function toObject(message, options) { + SqlImportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.threads = null; object.parallel = null; object.postgresImportOptions = null; } - if (message.threads != null && message.hasOwnProperty("threads")) - object.threads = $root.google.protobuf.Int32Value.toObject(message.threads, options); - if (message.parallel != null && message.hasOwnProperty("parallel")) - object.parallel = $root.google.protobuf.BoolValue.toObject(message.parallel, options); - if (message.postgresImportOptions != null && message.hasOwnProperty("postgresImportOptions")) - object.postgresImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions.toObject(message.postgresImportOptions, options); + if (message.threads != null && Object.hasOwnProperty.call(message, "threads")) + object.threads = $root.google.protobuf.Int32Value.toObject(message.threads, options, q + 1); + if (message.parallel != null && Object.hasOwnProperty.call(message, "parallel")) + object.parallel = $root.google.protobuf.BoolValue.toObject(message.parallel, options, q + 1); + if (message.postgresImportOptions != null && Object.hasOwnProperty.call(message, "postgresImportOptions")) + object.postgresImportOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions.toObject(message.postgresImportOptions, options, q + 1); return object; }; @@ -112277,7 +120272,7 @@ function PostgresImportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -112318,13 +120313,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PostgresImportOptions.encode = function encode(message, writer) { + PostgresImportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.clean != null && Object.hasOwnProperty.call(message, "clean")) - $root.google.protobuf.BoolValue.encode(message.clean, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.clean, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.ifExists != null && Object.hasOwnProperty.call(message, "ifExists")) - $root.google.protobuf.BoolValue.encode(message.ifExists, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.ifExists, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -112338,7 +120337,7 @@ * @returns {$protobuf.Writer} Writer */ PostgresImportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -112352,9 +120351,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PostgresImportOptions.decode = function decode(reader, length, error) { + PostgresImportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -112362,15 +120365,15 @@ break; switch (tag >>> 3) { case 1: { - message.clean = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.clean = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.ifExists = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.ifExists = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -112401,16 +120404,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PostgresImportOptions.verify = function verify(message) { + PostgresImportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.clean != null && message.hasOwnProperty("clean")) { - var error = $root.google.protobuf.BoolValue.verify(message.clean); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.clean != null && Object.hasOwnProperty.call(message, "clean")) { + var error = $root.google.protobuf.BoolValue.verify(message.clean, long + 1); if (error) return "clean." + error; } - if (message.ifExists != null && message.hasOwnProperty("ifExists")) { - var error = $root.google.protobuf.BoolValue.verify(message.ifExists); + if (message.ifExists != null && Object.hasOwnProperty.call(message, "ifExists")) { + var error = $root.google.protobuf.BoolValue.verify(message.ifExists, long + 1); if (error) return "ifExists." + error; } @@ -112425,19 +120432,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions} PostgresImportOptions */ - PostgresImportOptions.fromObject = function fromObject(object) { + PostgresImportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions(); if (object.clean != null) { - if (typeof object.clean !== "object") + if (!$util.isObject(object.clean)) throw TypeError(".google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions.clean: object expected"); - message.clean = $root.google.protobuf.BoolValue.fromObject(object.clean); + message.clean = $root.google.protobuf.BoolValue.fromObject(object.clean, long + 1); } if (object.ifExists != null) { - if (typeof object.ifExists !== "object") + if (!$util.isObject(object.ifExists)) throw TypeError(".google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions.ifExists: object expected"); - message.ifExists = $root.google.protobuf.BoolValue.fromObject(object.ifExists); + message.ifExists = $root.google.protobuf.BoolValue.fromObject(object.ifExists, long + 1); } return message; }; @@ -112451,18 +120464,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PostgresImportOptions.toObject = function toObject(message, options) { + PostgresImportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.clean = null; object.ifExists = null; } - if (message.clean != null && message.hasOwnProperty("clean")) - object.clean = $root.google.protobuf.BoolValue.toObject(message.clean, options); - if (message.ifExists != null && message.hasOwnProperty("ifExists")) - object.ifExists = $root.google.protobuf.BoolValue.toObject(message.ifExists, options); + if (message.clean != null && Object.hasOwnProperty.call(message, "clean")) + object.clean = $root.google.protobuf.BoolValue.toObject(message.clean, options, q + 1); + if (message.ifExists != null && Object.hasOwnProperty.call(message, "ifExists")) + object.ifExists = $root.google.protobuf.BoolValue.toObject(message.ifExists, options, q + 1); return object; }; @@ -112524,7 +120541,7 @@ this.columns = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -112597,9 +120614,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlCsvImportOptions.encode = function encode(message, writer) { + SqlCsvImportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.table != null && Object.hasOwnProperty.call(message, "table")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.table); if (message.columns != null && message.columns.length) @@ -112626,7 +120647,7 @@ * @returns {$protobuf.Writer} Writer */ SqlCsvImportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -112640,9 +120661,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlCsvImportOptions.decode = function decode(reader, length, error) { + SqlCsvImportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ImportContext.SqlCsvImportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -112676,7 +120701,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -112707,29 +120732,33 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlCsvImportOptions.verify = function verify(message) { + SqlCsvImportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.table != null && message.hasOwnProperty("table")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.table != null && Object.hasOwnProperty.call(message, "table")) if (!$util.isString(message.table)) return "table: string expected"; - if (message.columns != null && message.hasOwnProperty("columns")) { + if (message.columns != null && Object.hasOwnProperty.call(message, "columns")) { if (!Array.isArray(message.columns)) return "columns: array expected"; for (var i = 0; i < message.columns.length; ++i) if (!$util.isString(message.columns[i])) return "columns: string[] expected"; } - if (message.escapeCharacter != null && message.hasOwnProperty("escapeCharacter")) + if (message.escapeCharacter != null && Object.hasOwnProperty.call(message, "escapeCharacter")) if (!$util.isString(message.escapeCharacter)) return "escapeCharacter: string expected"; - if (message.quoteCharacter != null && message.hasOwnProperty("quoteCharacter")) + if (message.quoteCharacter != null && Object.hasOwnProperty.call(message, "quoteCharacter")) if (!$util.isString(message.quoteCharacter)) return "quoteCharacter: string expected"; - if (message.fieldsTerminatedBy != null && message.hasOwnProperty("fieldsTerminatedBy")) + if (message.fieldsTerminatedBy != null && Object.hasOwnProperty.call(message, "fieldsTerminatedBy")) if (!$util.isString(message.fieldsTerminatedBy)) return "fieldsTerminatedBy: string expected"; - if (message.linesTerminatedBy != null && message.hasOwnProperty("linesTerminatedBy")) + if (message.linesTerminatedBy != null && Object.hasOwnProperty.call(message, "linesTerminatedBy")) if (!$util.isString(message.linesTerminatedBy)) return "linesTerminatedBy: string expected"; return null; @@ -112743,9 +120772,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ImportContext.SqlCsvImportOptions} SqlCsvImportOptions */ - SqlCsvImportOptions.fromObject = function fromObject(object) { + SqlCsvImportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ImportContext.SqlCsvImportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ImportContext.SqlCsvImportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ImportContext.SqlCsvImportOptions(); if (object.table != null) message.table = String(object.table); @@ -112776,9 +120811,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlCsvImportOptions.toObject = function toObject(message, options) { + SqlCsvImportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.columns = []; @@ -112789,20 +120828,20 @@ object.fieldsTerminatedBy = ""; object.linesTerminatedBy = ""; } - if (message.table != null && message.hasOwnProperty("table")) + if (message.table != null && Object.hasOwnProperty.call(message, "table")) object.table = message.table; if (message.columns && message.columns.length) { object.columns = []; for (var j = 0; j < message.columns.length; ++j) object.columns[j] = message.columns[j]; } - if (message.escapeCharacter != null && message.hasOwnProperty("escapeCharacter")) + if (message.escapeCharacter != null && Object.hasOwnProperty.call(message, "escapeCharacter")) object.escapeCharacter = message.escapeCharacter; - if (message.quoteCharacter != null && message.hasOwnProperty("quoteCharacter")) + if (message.quoteCharacter != null && Object.hasOwnProperty.call(message, "quoteCharacter")) object.quoteCharacter = message.quoteCharacter; - if (message.fieldsTerminatedBy != null && message.hasOwnProperty("fieldsTerminatedBy")) + if (message.fieldsTerminatedBy != null && Object.hasOwnProperty.call(message, "fieldsTerminatedBy")) object.fieldsTerminatedBy = message.fieldsTerminatedBy; - if (message.linesTerminatedBy != null && message.hasOwnProperty("linesTerminatedBy")) + if (message.linesTerminatedBy != null && Object.hasOwnProperty.call(message, "linesTerminatedBy")) object.linesTerminatedBy = message.linesTerminatedBy; return object; }; @@ -112862,7 +120901,7 @@ function SqlBakImportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -112943,21 +120982,25 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlBakImportOptions.encode = function encode(message, writer) { + SqlBakImportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.encryptionOptions != null && Object.hasOwnProperty.call(message, "encryptionOptions")) - $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.EncryptionOptions.encode(message.encryptionOptions, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.EncryptionOptions.encode(message.encryptionOptions, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.striped != null && Object.hasOwnProperty.call(message, "striped")) - $root.google.protobuf.BoolValue.encode(message.striped, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.striped, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.noRecovery != null && Object.hasOwnProperty.call(message, "noRecovery")) - $root.google.protobuf.BoolValue.encode(message.noRecovery, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.noRecovery, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.recoveryOnly != null && Object.hasOwnProperty.call(message, "recoveryOnly")) - $root.google.protobuf.BoolValue.encode(message.recoveryOnly, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.recoveryOnly, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.bakType != null && Object.hasOwnProperty.call(message, "bakType")) writer.uint32(/* id 6, wireType 0 =*/48).int32(message.bakType); if (message.stopAt != null && Object.hasOwnProperty.call(message, "stopAt")) - $root.google.protobuf.Timestamp.encode(message.stopAt, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.stopAt, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.stopAtMark != null && Object.hasOwnProperty.call(message, "stopAtMark")) writer.uint32(/* id 8, wireType 2 =*/66).string(message.stopAtMark); return writer; @@ -112973,7 +121016,7 @@ * @returns {$protobuf.Writer} Writer */ SqlBakImportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -112987,9 +121030,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlBakImportOptions.decode = function decode(reader, length, error) { + SqlBakImportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -112997,19 +121044,19 @@ break; switch (tag >>> 3) { case 1: { - message.encryptionOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.EncryptionOptions.decode(reader, reader.uint32()); + message.encryptionOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.EncryptionOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.striped = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.striped = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { - message.noRecovery = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.noRecovery = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.recoveryOnly = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.recoveryOnly = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { @@ -113017,7 +121064,7 @@ break; } case 7: { - message.stopAt = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.stopAt = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { @@ -113025,7 +121072,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -113056,30 +121103,34 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlBakImportOptions.verify = function verify(message) { + SqlBakImportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.encryptionOptions != null && message.hasOwnProperty("encryptionOptions")) { - var error = $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.EncryptionOptions.verify(message.encryptionOptions); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.encryptionOptions != null && Object.hasOwnProperty.call(message, "encryptionOptions")) { + var error = $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.EncryptionOptions.verify(message.encryptionOptions, long + 1); if (error) return "encryptionOptions." + error; } - if (message.striped != null && message.hasOwnProperty("striped")) { - var error = $root.google.protobuf.BoolValue.verify(message.striped); + if (message.striped != null && Object.hasOwnProperty.call(message, "striped")) { + var error = $root.google.protobuf.BoolValue.verify(message.striped, long + 1); if (error) return "striped." + error; } - if (message.noRecovery != null && message.hasOwnProperty("noRecovery")) { - var error = $root.google.protobuf.BoolValue.verify(message.noRecovery); + if (message.noRecovery != null && Object.hasOwnProperty.call(message, "noRecovery")) { + var error = $root.google.protobuf.BoolValue.verify(message.noRecovery, long + 1); if (error) return "noRecovery." + error; } - if (message.recoveryOnly != null && message.hasOwnProperty("recoveryOnly")) { - var error = $root.google.protobuf.BoolValue.verify(message.recoveryOnly); + if (message.recoveryOnly != null && Object.hasOwnProperty.call(message, "recoveryOnly")) { + var error = $root.google.protobuf.BoolValue.verify(message.recoveryOnly, long + 1); if (error) return "recoveryOnly." + error; } - if (message.bakType != null && message.hasOwnProperty("bakType")) + if (message.bakType != null && Object.hasOwnProperty.call(message, "bakType")) switch (message.bakType) { default: return "bakType: enum value expected"; @@ -113089,12 +121140,12 @@ case 3: break; } - if (message.stopAt != null && message.hasOwnProperty("stopAt")) { - var error = $root.google.protobuf.Timestamp.verify(message.stopAt); + if (message.stopAt != null && Object.hasOwnProperty.call(message, "stopAt")) { + var error = $root.google.protobuf.Timestamp.verify(message.stopAt, long + 1); if (error) return "stopAt." + error; } - if (message.stopAtMark != null && message.hasOwnProperty("stopAtMark")) + if (message.stopAtMark != null && Object.hasOwnProperty.call(message, "stopAtMark")) if (!$util.isString(message.stopAtMark)) return "stopAtMark: string expected"; return null; @@ -113108,29 +121159,35 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions} SqlBakImportOptions */ - SqlBakImportOptions.fromObject = function fromObject(object) { + SqlBakImportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions(); if (object.encryptionOptions != null) { - if (typeof object.encryptionOptions !== "object") + if (!$util.isObject(object.encryptionOptions)) throw TypeError(".google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.encryptionOptions: object expected"); - message.encryptionOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.EncryptionOptions.fromObject(object.encryptionOptions); + message.encryptionOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.EncryptionOptions.fromObject(object.encryptionOptions, long + 1); } if (object.striped != null) { - if (typeof object.striped !== "object") + if (!$util.isObject(object.striped)) throw TypeError(".google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.striped: object expected"); - message.striped = $root.google.protobuf.BoolValue.fromObject(object.striped); + message.striped = $root.google.protobuf.BoolValue.fromObject(object.striped, long + 1); } if (object.noRecovery != null) { - if (typeof object.noRecovery !== "object") + if (!$util.isObject(object.noRecovery)) throw TypeError(".google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.noRecovery: object expected"); - message.noRecovery = $root.google.protobuf.BoolValue.fromObject(object.noRecovery); + message.noRecovery = $root.google.protobuf.BoolValue.fromObject(object.noRecovery, long + 1); } if (object.recoveryOnly != null) { - if (typeof object.recoveryOnly !== "object") + if (!$util.isObject(object.recoveryOnly)) throw TypeError(".google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.recoveryOnly: object expected"); - message.recoveryOnly = $root.google.protobuf.BoolValue.fromObject(object.recoveryOnly); + message.recoveryOnly = $root.google.protobuf.BoolValue.fromObject(object.recoveryOnly, long + 1); } switch (object.bakType) { default: @@ -113157,9 +121214,9 @@ break; } if (object.stopAt != null) { - if (typeof object.stopAt !== "object") + if (!$util.isObject(object.stopAt)) throw TypeError(".google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.stopAt: object expected"); - message.stopAt = $root.google.protobuf.Timestamp.fromObject(object.stopAt); + message.stopAt = $root.google.protobuf.Timestamp.fromObject(object.stopAt, long + 1); } if (object.stopAtMark != null) message.stopAtMark = String(object.stopAtMark); @@ -113175,9 +121232,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlBakImportOptions.toObject = function toObject(message, options) { + SqlBakImportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.encryptionOptions = null; @@ -113188,19 +121249,19 @@ object.stopAt = null; object.stopAtMark = ""; } - if (message.encryptionOptions != null && message.hasOwnProperty("encryptionOptions")) - object.encryptionOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.EncryptionOptions.toObject(message.encryptionOptions, options); - if (message.striped != null && message.hasOwnProperty("striped")) - object.striped = $root.google.protobuf.BoolValue.toObject(message.striped, options); - if (message.noRecovery != null && message.hasOwnProperty("noRecovery")) - object.noRecovery = $root.google.protobuf.BoolValue.toObject(message.noRecovery, options); - if (message.recoveryOnly != null && message.hasOwnProperty("recoveryOnly")) - object.recoveryOnly = $root.google.protobuf.BoolValue.toObject(message.recoveryOnly, options); - if (message.bakType != null && message.hasOwnProperty("bakType")) + if (message.encryptionOptions != null && Object.hasOwnProperty.call(message, "encryptionOptions")) + object.encryptionOptions = $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.EncryptionOptions.toObject(message.encryptionOptions, options, q + 1); + if (message.striped != null && Object.hasOwnProperty.call(message, "striped")) + object.striped = $root.google.protobuf.BoolValue.toObject(message.striped, options, q + 1); + if (message.noRecovery != null && Object.hasOwnProperty.call(message, "noRecovery")) + object.noRecovery = $root.google.protobuf.BoolValue.toObject(message.noRecovery, options, q + 1); + if (message.recoveryOnly != null && Object.hasOwnProperty.call(message, "recoveryOnly")) + object.recoveryOnly = $root.google.protobuf.BoolValue.toObject(message.recoveryOnly, options, q + 1); + if (message.bakType != null && Object.hasOwnProperty.call(message, "bakType")) object.bakType = options.enums === String ? $root.google.cloud.sql.v1beta4.BakType[message.bakType] === undefined ? message.bakType : $root.google.cloud.sql.v1beta4.BakType[message.bakType] : message.bakType; - if (message.stopAt != null && message.hasOwnProperty("stopAt")) - object.stopAt = $root.google.protobuf.Timestamp.toObject(message.stopAt, options); - if (message.stopAtMark != null && message.hasOwnProperty("stopAtMark")) + if (message.stopAt != null && Object.hasOwnProperty.call(message, "stopAt")) + object.stopAt = $root.google.protobuf.Timestamp.toObject(message.stopAt, options, q + 1); + if (message.stopAtMark != null && Object.hasOwnProperty.call(message, "stopAtMark")) object.stopAtMark = message.stopAtMark; return object; }; @@ -113254,7 +121315,7 @@ function EncryptionOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -113311,9 +121372,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EncryptionOptions.encode = function encode(message, writer) { + EncryptionOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.certPath != null && Object.hasOwnProperty.call(message, "certPath")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.certPath); if (message.pvkPath != null && Object.hasOwnProperty.call(message, "pvkPath")) @@ -113321,7 +121386,7 @@ if (message.pvkPassword != null && Object.hasOwnProperty.call(message, "pvkPassword")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.pvkPassword); if (message.keepEncrypted != null && Object.hasOwnProperty.call(message, "keepEncrypted")) - $root.google.protobuf.BoolValue.encode(message.keepEncrypted, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.keepEncrypted, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); return writer; }; @@ -113335,7 +121400,7 @@ * @returns {$protobuf.Writer} Writer */ EncryptionOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -113349,9 +121414,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EncryptionOptions.decode = function decode(reader, length, error) { + EncryptionOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.EncryptionOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -113371,11 +121440,11 @@ break; } case 5: { - message.keepEncrypted = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.keepEncrypted = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -113406,20 +121475,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EncryptionOptions.verify = function verify(message) { + EncryptionOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.certPath != null && message.hasOwnProperty("certPath")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.certPath != null && Object.hasOwnProperty.call(message, "certPath")) if (!$util.isString(message.certPath)) return "certPath: string expected"; - if (message.pvkPath != null && message.hasOwnProperty("pvkPath")) + if (message.pvkPath != null && Object.hasOwnProperty.call(message, "pvkPath")) if (!$util.isString(message.pvkPath)) return "pvkPath: string expected"; - if (message.pvkPassword != null && message.hasOwnProperty("pvkPassword")) + if (message.pvkPassword != null && Object.hasOwnProperty.call(message, "pvkPassword")) if (!$util.isString(message.pvkPassword)) return "pvkPassword: string expected"; - if (message.keepEncrypted != null && message.hasOwnProperty("keepEncrypted")) { - var error = $root.google.protobuf.BoolValue.verify(message.keepEncrypted); + if (message.keepEncrypted != null && Object.hasOwnProperty.call(message, "keepEncrypted")) { + var error = $root.google.protobuf.BoolValue.verify(message.keepEncrypted, long + 1); if (error) return "keepEncrypted." + error; } @@ -113434,9 +121507,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.EncryptionOptions} EncryptionOptions */ - EncryptionOptions.fromObject = function fromObject(object) { + EncryptionOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.EncryptionOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.EncryptionOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.EncryptionOptions(); if (object.certPath != null) message.certPath = String(object.certPath); @@ -113445,9 +121524,9 @@ if (object.pvkPassword != null) message.pvkPassword = String(object.pvkPassword); if (object.keepEncrypted != null) { - if (typeof object.keepEncrypted !== "object") + if (!$util.isObject(object.keepEncrypted)) throw TypeError(".google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.EncryptionOptions.keepEncrypted: object expected"); - message.keepEncrypted = $root.google.protobuf.BoolValue.fromObject(object.keepEncrypted); + message.keepEncrypted = $root.google.protobuf.BoolValue.fromObject(object.keepEncrypted, long + 1); } return message; }; @@ -113461,9 +121540,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - EncryptionOptions.toObject = function toObject(message, options) { + EncryptionOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.certPath = ""; @@ -113471,14 +121554,14 @@ object.pvkPassword = ""; object.keepEncrypted = null; } - if (message.certPath != null && message.hasOwnProperty("certPath")) + if (message.certPath != null && Object.hasOwnProperty.call(message, "certPath")) object.certPath = message.certPath; - if (message.pvkPath != null && message.hasOwnProperty("pvkPath")) + if (message.pvkPath != null && Object.hasOwnProperty.call(message, "pvkPath")) object.pvkPath = message.pvkPath; - if (message.pvkPassword != null && message.hasOwnProperty("pvkPassword")) + if (message.pvkPassword != null && Object.hasOwnProperty.call(message, "pvkPassword")) object.pvkPassword = message.pvkPassword; - if (message.keepEncrypted != null && message.hasOwnProperty("keepEncrypted")) - object.keepEncrypted = $root.google.protobuf.BoolValue.toObject(message.keepEncrypted, options); + if (message.keepEncrypted != null && Object.hasOwnProperty.call(message, "keepEncrypted")) + object.keepEncrypted = $root.google.protobuf.BoolValue.toObject(message.keepEncrypted, options, q + 1); return object; }; @@ -113537,7 +121620,7 @@ function SqlTdeImportOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -113594,9 +121677,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlTdeImportOptions.encode = function encode(message, writer) { + SqlTdeImportOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.certificatePath != null && Object.hasOwnProperty.call(message, "certificatePath")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.certificatePath); if (message.privateKeyPath != null && Object.hasOwnProperty.call(message, "privateKeyPath")) @@ -113618,7 +121705,7 @@ * @returns {$protobuf.Writer} Writer */ SqlTdeImportOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -113632,9 +121719,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlTdeImportOptions.decode = function decode(reader, length, error) { + SqlTdeImportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ImportContext.SqlTdeImportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -113658,7 +121749,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -113689,19 +121780,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlTdeImportOptions.verify = function verify(message) { + SqlTdeImportOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.certificatePath != null && message.hasOwnProperty("certificatePath")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.certificatePath != null && Object.hasOwnProperty.call(message, "certificatePath")) if (!$util.isString(message.certificatePath)) return "certificatePath: string expected"; - if (message.privateKeyPath != null && message.hasOwnProperty("privateKeyPath")) + if (message.privateKeyPath != null && Object.hasOwnProperty.call(message, "privateKeyPath")) if (!$util.isString(message.privateKeyPath)) return "privateKeyPath: string expected"; - if (message.privateKeyPassword != null && message.hasOwnProperty("privateKeyPassword")) + if (message.privateKeyPassword != null && Object.hasOwnProperty.call(message, "privateKeyPassword")) if (!$util.isString(message.privateKeyPassword)) return "privateKeyPassword: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; return null; @@ -113715,9 +121810,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ImportContext.SqlTdeImportOptions} SqlTdeImportOptions */ - SqlTdeImportOptions.fromObject = function fromObject(object) { + SqlTdeImportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ImportContext.SqlTdeImportOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ImportContext.SqlTdeImportOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ImportContext.SqlTdeImportOptions(); if (object.certificatePath != null) message.certificatePath = String(object.certificatePath); @@ -113739,9 +121840,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlTdeImportOptions.toObject = function toObject(message, options) { + SqlTdeImportOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.certificatePath = ""; @@ -113749,13 +121854,13 @@ object.privateKeyPassword = ""; object.name = ""; } - if (message.certificatePath != null && message.hasOwnProperty("certificatePath")) + if (message.certificatePath != null && Object.hasOwnProperty.call(message, "certificatePath")) object.certificatePath = message.certificatePath; - if (message.privateKeyPath != null && message.hasOwnProperty("privateKeyPath")) + if (message.privateKeyPath != null && Object.hasOwnProperty.call(message, "privateKeyPath")) object.privateKeyPath = message.privateKeyPath; - if (message.privateKeyPassword != null && message.hasOwnProperty("privateKeyPassword")) + if (message.privateKeyPassword != null && Object.hasOwnProperty.call(message, "privateKeyPassword")) object.privateKeyPassword = message.privateKeyPassword; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; return object; }; @@ -113830,7 +121935,7 @@ function InstancesCloneRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -113863,11 +121968,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesCloneRequest.encode = function encode(message, writer) { + InstancesCloneRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.cloneContext != null && Object.hasOwnProperty.call(message, "cloneContext")) - $root.google.cloud.sql.v1beta4.CloneContext.encode(message.cloneContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.CloneContext.encode(message.cloneContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -113881,7 +121990,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesCloneRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -113895,9 +122004,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesCloneRequest.decode = function decode(reader, length, error) { + InstancesCloneRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesCloneRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -113905,11 +122018,11 @@ break; switch (tag >>> 3) { case 1: { - message.cloneContext = $root.google.cloud.sql.v1beta4.CloneContext.decode(reader, reader.uint32()); + message.cloneContext = $root.google.cloud.sql.v1beta4.CloneContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -113940,11 +122053,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesCloneRequest.verify = function verify(message) { + InstancesCloneRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.cloneContext != null && message.hasOwnProperty("cloneContext")) { - var error = $root.google.cloud.sql.v1beta4.CloneContext.verify(message.cloneContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.cloneContext != null && Object.hasOwnProperty.call(message, "cloneContext")) { + var error = $root.google.cloud.sql.v1beta4.CloneContext.verify(message.cloneContext, long + 1); if (error) return "cloneContext." + error; } @@ -113959,14 +122076,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesCloneRequest} InstancesCloneRequest */ - InstancesCloneRequest.fromObject = function fromObject(object) { + InstancesCloneRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesCloneRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesCloneRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesCloneRequest(); if (object.cloneContext != null) { - if (typeof object.cloneContext !== "object") + if (!$util.isObject(object.cloneContext)) throw TypeError(".google.cloud.sql.v1beta4.InstancesCloneRequest.cloneContext: object expected"); - message.cloneContext = $root.google.cloud.sql.v1beta4.CloneContext.fromObject(object.cloneContext); + message.cloneContext = $root.google.cloud.sql.v1beta4.CloneContext.fromObject(object.cloneContext, long + 1); } return message; }; @@ -113980,14 +122103,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesCloneRequest.toObject = function toObject(message, options) { + InstancesCloneRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.cloneContext = null; - if (message.cloneContext != null && message.hasOwnProperty("cloneContext")) - object.cloneContext = $root.google.cloud.sql.v1beta4.CloneContext.toObject(message.cloneContext, options); + if (message.cloneContext != null && Object.hasOwnProperty.call(message, "cloneContext")) + object.cloneContext = $root.google.cloud.sql.v1beta4.CloneContext.toObject(message.cloneContext, options, q + 1); return object; }; @@ -114040,7 +122167,7 @@ function InstancesDemoteMasterRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -114073,11 +122200,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesDemoteMasterRequest.encode = function encode(message, writer) { + InstancesDemoteMasterRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.demoteMasterContext != null && Object.hasOwnProperty.call(message, "demoteMasterContext")) - $root.google.cloud.sql.v1beta4.DemoteMasterContext.encode(message.demoteMasterContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DemoteMasterContext.encode(message.demoteMasterContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -114091,7 +122222,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesDemoteMasterRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -114105,9 +122236,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesDemoteMasterRequest.decode = function decode(reader, length, error) { + InstancesDemoteMasterRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesDemoteMasterRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -114115,11 +122250,11 @@ break; switch (tag >>> 3) { case 1: { - message.demoteMasterContext = $root.google.cloud.sql.v1beta4.DemoteMasterContext.decode(reader, reader.uint32()); + message.demoteMasterContext = $root.google.cloud.sql.v1beta4.DemoteMasterContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -114150,11 +122285,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesDemoteMasterRequest.verify = function verify(message) { + InstancesDemoteMasterRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.demoteMasterContext != null && message.hasOwnProperty("demoteMasterContext")) { - var error = $root.google.cloud.sql.v1beta4.DemoteMasterContext.verify(message.demoteMasterContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.demoteMasterContext != null && Object.hasOwnProperty.call(message, "demoteMasterContext")) { + var error = $root.google.cloud.sql.v1beta4.DemoteMasterContext.verify(message.demoteMasterContext, long + 1); if (error) return "demoteMasterContext." + error; } @@ -114169,14 +122308,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesDemoteMasterRequest} InstancesDemoteMasterRequest */ - InstancesDemoteMasterRequest.fromObject = function fromObject(object) { + InstancesDemoteMasterRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesDemoteMasterRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesDemoteMasterRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesDemoteMasterRequest(); if (object.demoteMasterContext != null) { - if (typeof object.demoteMasterContext !== "object") + if (!$util.isObject(object.demoteMasterContext)) throw TypeError(".google.cloud.sql.v1beta4.InstancesDemoteMasterRequest.demoteMasterContext: object expected"); - message.demoteMasterContext = $root.google.cloud.sql.v1beta4.DemoteMasterContext.fromObject(object.demoteMasterContext); + message.demoteMasterContext = $root.google.cloud.sql.v1beta4.DemoteMasterContext.fromObject(object.demoteMasterContext, long + 1); } return message; }; @@ -114190,14 +122335,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesDemoteMasterRequest.toObject = function toObject(message, options) { + InstancesDemoteMasterRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.demoteMasterContext = null; - if (message.demoteMasterContext != null && message.hasOwnProperty("demoteMasterContext")) - object.demoteMasterContext = $root.google.cloud.sql.v1beta4.DemoteMasterContext.toObject(message.demoteMasterContext, options); + if (message.demoteMasterContext != null && Object.hasOwnProperty.call(message, "demoteMasterContext")) + object.demoteMasterContext = $root.google.cloud.sql.v1beta4.DemoteMasterContext.toObject(message.demoteMasterContext, options, q + 1); return object; }; @@ -114250,7 +122399,7 @@ function InstancesDemoteRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -114283,11 +122432,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesDemoteRequest.encode = function encode(message, writer) { + InstancesDemoteRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.demoteContext != null && Object.hasOwnProperty.call(message, "demoteContext")) - $root.google.cloud.sql.v1beta4.DemoteContext.encode(message.demoteContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DemoteContext.encode(message.demoteContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -114301,7 +122454,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesDemoteRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -114315,9 +122468,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesDemoteRequest.decode = function decode(reader, length, error) { + InstancesDemoteRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesDemoteRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -114325,11 +122482,11 @@ break; switch (tag >>> 3) { case 1: { - message.demoteContext = $root.google.cloud.sql.v1beta4.DemoteContext.decode(reader, reader.uint32()); + message.demoteContext = $root.google.cloud.sql.v1beta4.DemoteContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -114360,11 +122517,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesDemoteRequest.verify = function verify(message) { + InstancesDemoteRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.demoteContext != null && message.hasOwnProperty("demoteContext")) { - var error = $root.google.cloud.sql.v1beta4.DemoteContext.verify(message.demoteContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.demoteContext != null && Object.hasOwnProperty.call(message, "demoteContext")) { + var error = $root.google.cloud.sql.v1beta4.DemoteContext.verify(message.demoteContext, long + 1); if (error) return "demoteContext." + error; } @@ -114379,14 +122540,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesDemoteRequest} InstancesDemoteRequest */ - InstancesDemoteRequest.fromObject = function fromObject(object) { + InstancesDemoteRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesDemoteRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesDemoteRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesDemoteRequest(); if (object.demoteContext != null) { - if (typeof object.demoteContext !== "object") + if (!$util.isObject(object.demoteContext)) throw TypeError(".google.cloud.sql.v1beta4.InstancesDemoteRequest.demoteContext: object expected"); - message.demoteContext = $root.google.cloud.sql.v1beta4.DemoteContext.fromObject(object.demoteContext); + message.demoteContext = $root.google.cloud.sql.v1beta4.DemoteContext.fromObject(object.demoteContext, long + 1); } return message; }; @@ -114400,14 +122567,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesDemoteRequest.toObject = function toObject(message, options) { + InstancesDemoteRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.demoteContext = null; - if (message.demoteContext != null && message.hasOwnProperty("demoteContext")) - object.demoteContext = $root.google.cloud.sql.v1beta4.DemoteContext.toObject(message.demoteContext, options); + if (message.demoteContext != null && Object.hasOwnProperty.call(message, "demoteContext")) + object.demoteContext = $root.google.cloud.sql.v1beta4.DemoteContext.toObject(message.demoteContext, options, q + 1); return object; }; @@ -114460,7 +122631,7 @@ function InstancesExportRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -114493,11 +122664,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesExportRequest.encode = function encode(message, writer) { + InstancesExportRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.exportContext != null && Object.hasOwnProperty.call(message, "exportContext")) - $root.google.cloud.sql.v1beta4.ExportContext.encode(message.exportContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ExportContext.encode(message.exportContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -114511,7 +122686,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesExportRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -114525,9 +122700,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesExportRequest.decode = function decode(reader, length, error) { + InstancesExportRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesExportRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -114535,11 +122714,11 @@ break; switch (tag >>> 3) { case 1: { - message.exportContext = $root.google.cloud.sql.v1beta4.ExportContext.decode(reader, reader.uint32()); + message.exportContext = $root.google.cloud.sql.v1beta4.ExportContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -114570,11 +122749,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesExportRequest.verify = function verify(message) { + InstancesExportRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.exportContext != null && message.hasOwnProperty("exportContext")) { - var error = $root.google.cloud.sql.v1beta4.ExportContext.verify(message.exportContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.exportContext != null && Object.hasOwnProperty.call(message, "exportContext")) { + var error = $root.google.cloud.sql.v1beta4.ExportContext.verify(message.exportContext, long + 1); if (error) return "exportContext." + error; } @@ -114589,14 +122772,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesExportRequest} InstancesExportRequest */ - InstancesExportRequest.fromObject = function fromObject(object) { + InstancesExportRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesExportRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesExportRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesExportRequest(); if (object.exportContext != null) { - if (typeof object.exportContext !== "object") + if (!$util.isObject(object.exportContext)) throw TypeError(".google.cloud.sql.v1beta4.InstancesExportRequest.exportContext: object expected"); - message.exportContext = $root.google.cloud.sql.v1beta4.ExportContext.fromObject(object.exportContext); + message.exportContext = $root.google.cloud.sql.v1beta4.ExportContext.fromObject(object.exportContext, long + 1); } return message; }; @@ -114610,14 +122799,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesExportRequest.toObject = function toObject(message, options) { + InstancesExportRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.exportContext = null; - if (message.exportContext != null && message.hasOwnProperty("exportContext")) - object.exportContext = $root.google.cloud.sql.v1beta4.ExportContext.toObject(message.exportContext, options); + if (message.exportContext != null && Object.hasOwnProperty.call(message, "exportContext")) + object.exportContext = $root.google.cloud.sql.v1beta4.ExportContext.toObject(message.exportContext, options, q + 1); return object; }; @@ -114670,7 +122863,7 @@ function InstancesFailoverRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -114703,11 +122896,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesFailoverRequest.encode = function encode(message, writer) { + InstancesFailoverRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.failoverContext != null && Object.hasOwnProperty.call(message, "failoverContext")) - $root.google.cloud.sql.v1beta4.FailoverContext.encode(message.failoverContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.FailoverContext.encode(message.failoverContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -114721,7 +122918,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesFailoverRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -114735,9 +122932,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesFailoverRequest.decode = function decode(reader, length, error) { + InstancesFailoverRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesFailoverRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -114745,11 +122946,11 @@ break; switch (tag >>> 3) { case 1: { - message.failoverContext = $root.google.cloud.sql.v1beta4.FailoverContext.decode(reader, reader.uint32()); + message.failoverContext = $root.google.cloud.sql.v1beta4.FailoverContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -114780,11 +122981,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesFailoverRequest.verify = function verify(message) { + InstancesFailoverRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.failoverContext != null && message.hasOwnProperty("failoverContext")) { - var error = $root.google.cloud.sql.v1beta4.FailoverContext.verify(message.failoverContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.failoverContext != null && Object.hasOwnProperty.call(message, "failoverContext")) { + var error = $root.google.cloud.sql.v1beta4.FailoverContext.verify(message.failoverContext, long + 1); if (error) return "failoverContext." + error; } @@ -114799,14 +123004,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesFailoverRequest} InstancesFailoverRequest */ - InstancesFailoverRequest.fromObject = function fromObject(object) { + InstancesFailoverRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesFailoverRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesFailoverRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesFailoverRequest(); if (object.failoverContext != null) { - if (typeof object.failoverContext !== "object") + if (!$util.isObject(object.failoverContext)) throw TypeError(".google.cloud.sql.v1beta4.InstancesFailoverRequest.failoverContext: object expected"); - message.failoverContext = $root.google.cloud.sql.v1beta4.FailoverContext.fromObject(object.failoverContext); + message.failoverContext = $root.google.cloud.sql.v1beta4.FailoverContext.fromObject(object.failoverContext, long + 1); } return message; }; @@ -114820,14 +123031,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesFailoverRequest.toObject = function toObject(message, options) { + InstancesFailoverRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.failoverContext = null; - if (message.failoverContext != null && message.hasOwnProperty("failoverContext")) - object.failoverContext = $root.google.cloud.sql.v1beta4.FailoverContext.toObject(message.failoverContext, options); + if (message.failoverContext != null && Object.hasOwnProperty.call(message, "failoverContext")) + object.failoverContext = $root.google.cloud.sql.v1beta4.FailoverContext.toObject(message.failoverContext, options, q + 1); return object; }; @@ -114880,7 +123095,7 @@ function InstancesImportRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -114913,11 +123128,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesImportRequest.encode = function encode(message, writer) { + InstancesImportRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.importContext != null && Object.hasOwnProperty.call(message, "importContext")) - $root.google.cloud.sql.v1beta4.ImportContext.encode(message.importContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ImportContext.encode(message.importContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -114931,7 +123150,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesImportRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -114945,9 +123164,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesImportRequest.decode = function decode(reader, length, error) { + InstancesImportRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesImportRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -114955,11 +123178,11 @@ break; switch (tag >>> 3) { case 1: { - message.importContext = $root.google.cloud.sql.v1beta4.ImportContext.decode(reader, reader.uint32()); + message.importContext = $root.google.cloud.sql.v1beta4.ImportContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -114990,11 +123213,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesImportRequest.verify = function verify(message) { + InstancesImportRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.importContext != null && message.hasOwnProperty("importContext")) { - var error = $root.google.cloud.sql.v1beta4.ImportContext.verify(message.importContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.importContext != null && Object.hasOwnProperty.call(message, "importContext")) { + var error = $root.google.cloud.sql.v1beta4.ImportContext.verify(message.importContext, long + 1); if (error) return "importContext." + error; } @@ -115009,14 +123236,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesImportRequest} InstancesImportRequest */ - InstancesImportRequest.fromObject = function fromObject(object) { + InstancesImportRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesImportRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesImportRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesImportRequest(); if (object.importContext != null) { - if (typeof object.importContext !== "object") + if (!$util.isObject(object.importContext)) throw TypeError(".google.cloud.sql.v1beta4.InstancesImportRequest.importContext: object expected"); - message.importContext = $root.google.cloud.sql.v1beta4.ImportContext.fromObject(object.importContext); + message.importContext = $root.google.cloud.sql.v1beta4.ImportContext.fromObject(object.importContext, long + 1); } return message; }; @@ -115030,14 +123263,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesImportRequest.toObject = function toObject(message, options) { + InstancesImportRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.importContext = null; - if (message.importContext != null && message.hasOwnProperty("importContext")) - object.importContext = $root.google.cloud.sql.v1beta4.ImportContext.toObject(message.importContext, options); + if (message.importContext != null && Object.hasOwnProperty.call(message, "importContext")) + object.importContext = $root.google.cloud.sql.v1beta4.ImportContext.toObject(message.importContext, options, q + 1); return object; }; @@ -115090,7 +123327,7 @@ function InstancesPreCheckMajorVersionUpgradeRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -115123,11 +123360,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesPreCheckMajorVersionUpgradeRequest.encode = function encode(message, writer) { + InstancesPreCheckMajorVersionUpgradeRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.preCheckMajorVersionUpgradeContext != null && Object.hasOwnProperty.call(message, "preCheckMajorVersionUpgradeContext")) - $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.encode(message.preCheckMajorVersionUpgradeContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.encode(message.preCheckMajorVersionUpgradeContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -115141,7 +123382,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesPreCheckMajorVersionUpgradeRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -115155,9 +123396,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesPreCheckMajorVersionUpgradeRequest.decode = function decode(reader, length, error) { + InstancesPreCheckMajorVersionUpgradeRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -115165,11 +123410,11 @@ break; switch (tag >>> 3) { case 1: { - message.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.decode(reader, reader.uint32()); + message.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -115200,11 +123445,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesPreCheckMajorVersionUpgradeRequest.verify = function verify(message) { + InstancesPreCheckMajorVersionUpgradeRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.preCheckMajorVersionUpgradeContext != null && message.hasOwnProperty("preCheckMajorVersionUpgradeContext")) { - var error = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.verify(message.preCheckMajorVersionUpgradeContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.preCheckMajorVersionUpgradeContext != null && Object.hasOwnProperty.call(message, "preCheckMajorVersionUpgradeContext")) { + var error = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.verify(message.preCheckMajorVersionUpgradeContext, long + 1); if (error) return "preCheckMajorVersionUpgradeContext." + error; } @@ -115219,14 +123468,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest} InstancesPreCheckMajorVersionUpgradeRequest */ - InstancesPreCheckMajorVersionUpgradeRequest.fromObject = function fromObject(object) { + InstancesPreCheckMajorVersionUpgradeRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest(); if (object.preCheckMajorVersionUpgradeContext != null) { - if (typeof object.preCheckMajorVersionUpgradeContext !== "object") + if (!$util.isObject(object.preCheckMajorVersionUpgradeContext)) throw TypeError(".google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest.preCheckMajorVersionUpgradeContext: object expected"); - message.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.fromObject(object.preCheckMajorVersionUpgradeContext); + message.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.fromObject(object.preCheckMajorVersionUpgradeContext, long + 1); } return message; }; @@ -115240,14 +123495,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesPreCheckMajorVersionUpgradeRequest.toObject = function toObject(message, options) { + InstancesPreCheckMajorVersionUpgradeRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.preCheckMajorVersionUpgradeContext = null; - if (message.preCheckMajorVersionUpgradeContext != null && message.hasOwnProperty("preCheckMajorVersionUpgradeContext")) - object.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.toObject(message.preCheckMajorVersionUpgradeContext, options); + if (message.preCheckMajorVersionUpgradeContext != null && Object.hasOwnProperty.call(message, "preCheckMajorVersionUpgradeContext")) + object.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.toObject(message.preCheckMajorVersionUpgradeContext, options, q + 1); return object; }; @@ -115301,7 +123560,7 @@ this.initialSyncFlags = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -115334,12 +123593,16 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MySqlSyncConfig.encode = function encode(message, writer) { + MySqlSyncConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.initialSyncFlags != null && message.initialSyncFlags.length) for (var i = 0; i < message.initialSyncFlags.length; ++i) - $root.google.cloud.sql.v1beta4.SyncFlags.encode(message.initialSyncFlags[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SyncFlags.encode(message.initialSyncFlags[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -115353,7 +123616,7 @@ * @returns {$protobuf.Writer} Writer */ MySqlSyncConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -115367,9 +123630,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MySqlSyncConfig.decode = function decode(reader, length, error) { + MySqlSyncConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.MySqlSyncConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -115379,11 +123646,11 @@ case 1: { if (!(message.initialSyncFlags && message.initialSyncFlags.length)) message.initialSyncFlags = []; - message.initialSyncFlags.push($root.google.cloud.sql.v1beta4.SyncFlags.decode(reader, reader.uint32())); + message.initialSyncFlags.push($root.google.cloud.sql.v1beta4.SyncFlags.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -115414,14 +123681,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MySqlSyncConfig.verify = function verify(message) { + MySqlSyncConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.initialSyncFlags != null && message.hasOwnProperty("initialSyncFlags")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.initialSyncFlags != null && Object.hasOwnProperty.call(message, "initialSyncFlags")) { if (!Array.isArray(message.initialSyncFlags)) return "initialSyncFlags: array expected"; for (var i = 0; i < message.initialSyncFlags.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.SyncFlags.verify(message.initialSyncFlags[i]); + var error = $root.google.cloud.sql.v1beta4.SyncFlags.verify(message.initialSyncFlags[i], long + 1); if (error) return "initialSyncFlags." + error; } @@ -115437,18 +123708,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.MySqlSyncConfig} MySqlSyncConfig */ - MySqlSyncConfig.fromObject = function fromObject(object) { + MySqlSyncConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.MySqlSyncConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.MySqlSyncConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.MySqlSyncConfig(); if (object.initialSyncFlags) { if (!Array.isArray(object.initialSyncFlags)) throw TypeError(".google.cloud.sql.v1beta4.MySqlSyncConfig.initialSyncFlags: array expected"); message.initialSyncFlags = []; for (var i = 0; i < object.initialSyncFlags.length; ++i) { - if (typeof object.initialSyncFlags[i] !== "object") + if (!$util.isObject(object.initialSyncFlags[i])) throw TypeError(".google.cloud.sql.v1beta4.MySqlSyncConfig.initialSyncFlags: object expected"); - message.initialSyncFlags[i] = $root.google.cloud.sql.v1beta4.SyncFlags.fromObject(object.initialSyncFlags[i]); + message.initialSyncFlags[i] = $root.google.cloud.sql.v1beta4.SyncFlags.fromObject(object.initialSyncFlags[i], long + 1); } } return message; @@ -115463,16 +123740,20 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MySqlSyncConfig.toObject = function toObject(message, options) { + MySqlSyncConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.initialSyncFlags = []; if (message.initialSyncFlags && message.initialSyncFlags.length) { object.initialSyncFlags = []; for (var j = 0; j < message.initialSyncFlags.length; ++j) - object.initialSyncFlags[j] = $root.google.cloud.sql.v1beta4.SyncFlags.toObject(message.initialSyncFlags[j], options); + object.initialSyncFlags[j] = $root.google.cloud.sql.v1beta4.SyncFlags.toObject(message.initialSyncFlags[j], options, q + 1); } return object; }; @@ -115531,7 +123812,7 @@ this.items = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -115588,17 +123869,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesListResponse.encode = function encode(message, writer) { + InstancesListResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.warnings != null && message.warnings.length) for (var i = 0; i < message.warnings.length; ++i) - $root.google.cloud.sql.v1beta4.ApiWarning.encode(message.warnings[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ApiWarning.encode(message.warnings[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.items != null && message.items.length) for (var i = 0; i < message.items.length; ++i) - $root.google.cloud.sql.v1beta4.DatabaseInstance.encode(message.items[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DatabaseInstance.encode(message.items[i], writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.nextPageToken); return writer; @@ -115614,7 +123899,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesListResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -115628,9 +123913,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesListResponse.decode = function decode(reader, length, error) { + InstancesListResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesListResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -115644,13 +123933,13 @@ case 2: { if (!(message.warnings && message.warnings.length)) message.warnings = []; - message.warnings.push($root.google.cloud.sql.v1beta4.ApiWarning.decode(reader, reader.uint32())); + message.warnings.push($root.google.cloud.sql.v1beta4.ApiWarning.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.sql.v1beta4.DatabaseInstance.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.sql.v1beta4.DatabaseInstance.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 4: { @@ -115658,7 +123947,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -115689,31 +123978,35 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesListResponse.verify = function verify(message) { + InstancesListResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.warnings != null && message.hasOwnProperty("warnings")) { + if (message.warnings != null && Object.hasOwnProperty.call(message, "warnings")) { if (!Array.isArray(message.warnings)) return "warnings: array expected"; for (var i = 0; i < message.warnings.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.ApiWarning.verify(message.warnings[i]); + var error = $root.google.cloud.sql.v1beta4.ApiWarning.verify(message.warnings[i], long + 1); if (error) return "warnings." + error; } } - if (message.items != null && message.hasOwnProperty("items")) { + if (message.items != null && Object.hasOwnProperty.call(message, "items")) { if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.items[i]); + var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.items[i], long + 1); if (error) return "items." + error; } } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) if (!$util.isString(message.nextPageToken)) return "nextPageToken: string expected"; return null; @@ -115727,9 +124020,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesListResponse} InstancesListResponse */ - InstancesListResponse.fromObject = function fromObject(object) { + InstancesListResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesListResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesListResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesListResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -115738,9 +124037,9 @@ throw TypeError(".google.cloud.sql.v1beta4.InstancesListResponse.warnings: array expected"); message.warnings = []; for (var i = 0; i < object.warnings.length; ++i) { - if (typeof object.warnings[i] !== "object") + if (!$util.isObject(object.warnings[i])) throw TypeError(".google.cloud.sql.v1beta4.InstancesListResponse.warnings: object expected"); - message.warnings[i] = $root.google.cloud.sql.v1beta4.ApiWarning.fromObject(object.warnings[i]); + message.warnings[i] = $root.google.cloud.sql.v1beta4.ApiWarning.fromObject(object.warnings[i], long + 1); } } if (object.items) { @@ -115748,9 +124047,9 @@ throw TypeError(".google.cloud.sql.v1beta4.InstancesListResponse.items: array expected"); message.items = []; for (var i = 0; i < object.items.length; ++i) { - if (typeof object.items[i] !== "object") + if (!$util.isObject(object.items[i])) throw TypeError(".google.cloud.sql.v1beta4.InstancesListResponse.items: object expected"); - message.items[i] = $root.google.cloud.sql.v1beta4.DatabaseInstance.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.sql.v1beta4.DatabaseInstance.fromObject(object.items[i], long + 1); } } if (object.nextPageToken != null) @@ -115767,9 +124066,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesListResponse.toObject = function toObject(message, options) { + InstancesListResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.warnings = []; @@ -115779,19 +124082,19 @@ object.kind = ""; object.nextPageToken = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.warnings && message.warnings.length) { object.warnings = []; for (var j = 0; j < message.warnings.length; ++j) - object.warnings[j] = $root.google.cloud.sql.v1beta4.ApiWarning.toObject(message.warnings[j], options); + object.warnings[j] = $root.google.cloud.sql.v1beta4.ApiWarning.toObject(message.warnings[j], options, q + 1); } if (message.items && message.items.length) { object.items = []; for (var j = 0; j < message.items.length; ++j) - object.items[j] = $root.google.cloud.sql.v1beta4.DatabaseInstance.toObject(message.items[j], options); + object.items[j] = $root.google.cloud.sql.v1beta4.DatabaseInstance.toObject(message.items[j], options, q + 1); } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) object.nextPageToken = message.nextPageToken; return object; }; @@ -115848,7 +124151,7 @@ this.certs = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -115897,12 +124200,16 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesListServerCasResponse.encode = function encode(message, writer) { + InstancesListServerCasResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.certs != null && message.certs.length) for (var i = 0; i < message.certs.length; ++i) - $root.google.cloud.sql.v1beta4.SslCert.encode(message.certs[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SslCert.encode(message.certs[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.activeVersion); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -115920,7 +124227,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesListServerCasResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -115934,9 +124241,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesListServerCasResponse.decode = function decode(reader, length, error) { + InstancesListServerCasResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesListServerCasResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -115946,7 +124257,7 @@ case 1: { if (!(message.certs && message.certs.length)) message.certs = []; - message.certs.push($root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32())); + message.certs.push($root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -115958,7 +124269,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -115989,22 +124300,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesListServerCasResponse.verify = function verify(message) { + InstancesListServerCasResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.certs != null && message.hasOwnProperty("certs")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.certs != null && Object.hasOwnProperty.call(message, "certs")) { if (!Array.isArray(message.certs)) return "certs: array expected"; for (var i = 0; i < message.certs.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.certs[i]); + var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.certs[i], long + 1); if (error) return "certs." + error; } } - if (message.activeVersion != null && message.hasOwnProperty("activeVersion")) + if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) if (!$util.isString(message.activeVersion)) return "activeVersion: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -116018,18 +124333,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesListServerCasResponse} InstancesListServerCasResponse */ - InstancesListServerCasResponse.fromObject = function fromObject(object) { + InstancesListServerCasResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesListServerCasResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesListServerCasResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesListServerCasResponse(); if (object.certs) { if (!Array.isArray(object.certs)) throw TypeError(".google.cloud.sql.v1beta4.InstancesListServerCasResponse.certs: array expected"); message.certs = []; for (var i = 0; i < object.certs.length; ++i) { - if (typeof object.certs[i] !== "object") + if (!$util.isObject(object.certs[i])) throw TypeError(".google.cloud.sql.v1beta4.InstancesListServerCasResponse.certs: object expected"); - message.certs[i] = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.certs[i]); + message.certs[i] = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.certs[i], long + 1); } } if (object.activeVersion != null) @@ -116048,9 +124369,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesListServerCasResponse.toObject = function toObject(message, options) { + InstancesListServerCasResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.certs = []; @@ -116061,11 +124386,11 @@ if (message.certs && message.certs.length) { object.certs = []; for (var j = 0; j < message.certs.length; ++j) - object.certs[j] = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.certs[j], options); + object.certs[j] = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.certs[j], options, q + 1); } - if (message.activeVersion != null && message.hasOwnProperty("activeVersion")) + if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) object.activeVersion = message.activeVersion; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -116124,7 +124449,7 @@ this.serverCerts = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -116181,15 +124506,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesListServerCertificatesResponse.encode = function encode(message, writer) { + InstancesListServerCertificatesResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.caCerts != null && message.caCerts.length) for (var i = 0; i < message.caCerts.length; ++i) - $root.google.cloud.sql.v1beta4.SslCert.encode(message.caCerts[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SslCert.encode(message.caCerts[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.serverCerts != null && message.serverCerts.length) for (var i = 0; i < message.serverCerts.length; ++i) - $root.google.cloud.sql.v1beta4.SslCert.encode(message.serverCerts[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SslCert.encode(message.serverCerts[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.activeVersion); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -116207,7 +124536,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesListServerCertificatesResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -116221,9 +124550,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesListServerCertificatesResponse.decode = function decode(reader, length, error) { + InstancesListServerCertificatesResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesListServerCertificatesResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -116233,13 +124566,13 @@ case 1: { if (!(message.caCerts && message.caCerts.length)) message.caCerts = []; - message.caCerts.push($root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32())); + message.caCerts.push($root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { if (!(message.serverCerts && message.serverCerts.length)) message.serverCerts = []; - message.serverCerts.push($root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32())); + message.serverCerts.push($root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { @@ -116251,7 +124584,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -116282,31 +124615,35 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesListServerCertificatesResponse.verify = function verify(message) { + InstancesListServerCertificatesResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.caCerts != null && message.hasOwnProperty("caCerts")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.caCerts != null && Object.hasOwnProperty.call(message, "caCerts")) { if (!Array.isArray(message.caCerts)) return "caCerts: array expected"; for (var i = 0; i < message.caCerts.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.caCerts[i]); + var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.caCerts[i], long + 1); if (error) return "caCerts." + error; } } - if (message.serverCerts != null && message.hasOwnProperty("serverCerts")) { + if (message.serverCerts != null && Object.hasOwnProperty.call(message, "serverCerts")) { if (!Array.isArray(message.serverCerts)) return "serverCerts: array expected"; for (var i = 0; i < message.serverCerts.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.serverCerts[i]); + var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.serverCerts[i], long + 1); if (error) return "serverCerts." + error; } } - if (message.activeVersion != null && message.hasOwnProperty("activeVersion")) + if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) if (!$util.isString(message.activeVersion)) return "activeVersion: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -116320,18 +124657,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesListServerCertificatesResponse} InstancesListServerCertificatesResponse */ - InstancesListServerCertificatesResponse.fromObject = function fromObject(object) { + InstancesListServerCertificatesResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesListServerCertificatesResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesListServerCertificatesResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesListServerCertificatesResponse(); if (object.caCerts) { if (!Array.isArray(object.caCerts)) throw TypeError(".google.cloud.sql.v1beta4.InstancesListServerCertificatesResponse.caCerts: array expected"); message.caCerts = []; for (var i = 0; i < object.caCerts.length; ++i) { - if (typeof object.caCerts[i] !== "object") + if (!$util.isObject(object.caCerts[i])) throw TypeError(".google.cloud.sql.v1beta4.InstancesListServerCertificatesResponse.caCerts: object expected"); - message.caCerts[i] = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.caCerts[i]); + message.caCerts[i] = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.caCerts[i], long + 1); } } if (object.serverCerts) { @@ -116339,9 +124682,9 @@ throw TypeError(".google.cloud.sql.v1beta4.InstancesListServerCertificatesResponse.serverCerts: array expected"); message.serverCerts = []; for (var i = 0; i < object.serverCerts.length; ++i) { - if (typeof object.serverCerts[i] !== "object") + if (!$util.isObject(object.serverCerts[i])) throw TypeError(".google.cloud.sql.v1beta4.InstancesListServerCertificatesResponse.serverCerts: object expected"); - message.serverCerts[i] = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.serverCerts[i]); + message.serverCerts[i] = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.serverCerts[i], long + 1); } } if (object.activeVersion != null) @@ -116360,9 +124703,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesListServerCertificatesResponse.toObject = function toObject(message, options) { + InstancesListServerCertificatesResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.caCerts = []; @@ -116375,16 +124722,16 @@ if (message.caCerts && message.caCerts.length) { object.caCerts = []; for (var j = 0; j < message.caCerts.length; ++j) - object.caCerts[j] = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.caCerts[j], options); + object.caCerts[j] = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.caCerts[j], options, q + 1); } if (message.serverCerts && message.serverCerts.length) { object.serverCerts = []; for (var j = 0; j < message.serverCerts.length; ++j) - object.serverCerts[j] = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.serverCerts[j], options); + object.serverCerts[j] = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.serverCerts[j], options, q + 1); } - if (message.activeVersion != null && message.hasOwnProperty("activeVersion")) + if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) object.activeVersion = message.activeVersion; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -116441,7 +124788,7 @@ this.certs = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -116490,12 +124837,16 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesListEntraIdCertificatesResponse.encode = function encode(message, writer) { + InstancesListEntraIdCertificatesResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.certs != null && message.certs.length) for (var i = 0; i < message.certs.length; ++i) - $root.google.cloud.sql.v1beta4.SslCert.encode(message.certs[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SslCert.encode(message.certs[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.activeVersion); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -116513,7 +124864,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesListEntraIdCertificatesResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -116527,9 +124878,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesListEntraIdCertificatesResponse.decode = function decode(reader, length, error) { + InstancesListEntraIdCertificatesResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesListEntraIdCertificatesResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -116539,7 +124894,7 @@ case 1: { if (!(message.certs && message.certs.length)) message.certs = []; - message.certs.push($root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32())); + message.certs.push($root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -116551,7 +124906,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -116582,22 +124937,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesListEntraIdCertificatesResponse.verify = function verify(message) { + InstancesListEntraIdCertificatesResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.certs != null && message.hasOwnProperty("certs")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.certs != null && Object.hasOwnProperty.call(message, "certs")) { if (!Array.isArray(message.certs)) return "certs: array expected"; for (var i = 0; i < message.certs.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.certs[i]); + var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.certs[i], long + 1); if (error) return "certs." + error; } } - if (message.activeVersion != null && message.hasOwnProperty("activeVersion")) + if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) if (!$util.isString(message.activeVersion)) return "activeVersion: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -116611,18 +124970,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesListEntraIdCertificatesResponse} InstancesListEntraIdCertificatesResponse */ - InstancesListEntraIdCertificatesResponse.fromObject = function fromObject(object) { + InstancesListEntraIdCertificatesResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesListEntraIdCertificatesResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesListEntraIdCertificatesResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesListEntraIdCertificatesResponse(); if (object.certs) { if (!Array.isArray(object.certs)) throw TypeError(".google.cloud.sql.v1beta4.InstancesListEntraIdCertificatesResponse.certs: array expected"); message.certs = []; for (var i = 0; i < object.certs.length; ++i) { - if (typeof object.certs[i] !== "object") + if (!$util.isObject(object.certs[i])) throw TypeError(".google.cloud.sql.v1beta4.InstancesListEntraIdCertificatesResponse.certs: object expected"); - message.certs[i] = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.certs[i]); + message.certs[i] = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.certs[i], long + 1); } } if (object.activeVersion != null) @@ -116641,9 +125006,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesListEntraIdCertificatesResponse.toObject = function toObject(message, options) { + InstancesListEntraIdCertificatesResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.certs = []; @@ -116654,11 +125023,11 @@ if (message.certs && message.certs.length) { object.certs = []; for (var j = 0; j < message.certs.length; ++j) - object.certs[j] = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.certs[j], options); + object.certs[j] = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.certs[j], options, q + 1); } - if (message.activeVersion != null && message.hasOwnProperty("activeVersion")) + if (message.activeVersion != null && Object.hasOwnProperty.call(message, "activeVersion")) object.activeVersion = message.activeVersion; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -116717,7 +125086,7 @@ this.restoreInstanceClearOverridesFieldNames = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -116782,15 +125151,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesRestoreBackupRequest.encode = function encode(message, writer) { + InstancesRestoreBackupRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.restoreBackupContext != null && Object.hasOwnProperty.call(message, "restoreBackupContext")) - $root.google.cloud.sql.v1beta4.RestoreBackupContext.encode(message.restoreBackupContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.RestoreBackupContext.encode(message.restoreBackupContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.backup); if (message.restoreInstanceSettings != null && Object.hasOwnProperty.call(message, "restoreInstanceSettings")) - $root.google.cloud.sql.v1beta4.DatabaseInstance.encode(message.restoreInstanceSettings, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DatabaseInstance.encode(message.restoreInstanceSettings, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.backupdrBackup != null && Object.hasOwnProperty.call(message, "backupdrBackup")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.backupdrBackup); if (message.restoreInstanceClearOverridesFieldNames != null && message.restoreInstanceClearOverridesFieldNames.length) @@ -116809,7 +125182,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesRestoreBackupRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -116823,9 +125196,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesRestoreBackupRequest.decode = function decode(reader, length, error) { + InstancesRestoreBackupRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesRestoreBackupRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -116833,7 +125210,7 @@ break; switch (tag >>> 3) { case 1: { - message.restoreBackupContext = $root.google.cloud.sql.v1beta4.RestoreBackupContext.decode(reader, reader.uint32()); + message.restoreBackupContext = $root.google.cloud.sql.v1beta4.RestoreBackupContext.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -116845,7 +125222,7 @@ break; } case 3: { - message.restoreInstanceSettings = $root.google.cloud.sql.v1beta4.DatabaseInstance.decode(reader, reader.uint32()); + message.restoreInstanceSettings = $root.google.cloud.sql.v1beta4.DatabaseInstance.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -116855,7 +125232,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -116886,26 +125263,30 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesRestoreBackupRequest.verify = function verify(message) { + InstancesRestoreBackupRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.restoreBackupContext != null && message.hasOwnProperty("restoreBackupContext")) { - var error = $root.google.cloud.sql.v1beta4.RestoreBackupContext.verify(message.restoreBackupContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.restoreBackupContext != null && Object.hasOwnProperty.call(message, "restoreBackupContext")) { + var error = $root.google.cloud.sql.v1beta4.RestoreBackupContext.verify(message.restoreBackupContext, long + 1); if (error) return "restoreBackupContext." + error; } - if (message.backup != null && message.hasOwnProperty("backup")) + if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) if (!$util.isString(message.backup)) return "backup: string expected"; - if (message.backupdrBackup != null && message.hasOwnProperty("backupdrBackup")) + if (message.backupdrBackup != null && Object.hasOwnProperty.call(message, "backupdrBackup")) if (!$util.isString(message.backupdrBackup)) return "backupdrBackup: string expected"; - if (message.restoreInstanceSettings != null && message.hasOwnProperty("restoreInstanceSettings")) { - var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.restoreInstanceSettings); + if (message.restoreInstanceSettings != null && Object.hasOwnProperty.call(message, "restoreInstanceSettings")) { + var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.restoreInstanceSettings, long + 1); if (error) return "restoreInstanceSettings." + error; } - if (message.restoreInstanceClearOverridesFieldNames != null && message.hasOwnProperty("restoreInstanceClearOverridesFieldNames")) { + if (message.restoreInstanceClearOverridesFieldNames != null && Object.hasOwnProperty.call(message, "restoreInstanceClearOverridesFieldNames")) { if (!Array.isArray(message.restoreInstanceClearOverridesFieldNames)) return "restoreInstanceClearOverridesFieldNames: array expected"; for (var i = 0; i < message.restoreInstanceClearOverridesFieldNames.length; ++i) @@ -116923,23 +125304,29 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesRestoreBackupRequest} InstancesRestoreBackupRequest */ - InstancesRestoreBackupRequest.fromObject = function fromObject(object) { + InstancesRestoreBackupRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesRestoreBackupRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesRestoreBackupRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesRestoreBackupRequest(); if (object.restoreBackupContext != null) { - if (typeof object.restoreBackupContext !== "object") + if (!$util.isObject(object.restoreBackupContext)) throw TypeError(".google.cloud.sql.v1beta4.InstancesRestoreBackupRequest.restoreBackupContext: object expected"); - message.restoreBackupContext = $root.google.cloud.sql.v1beta4.RestoreBackupContext.fromObject(object.restoreBackupContext); + message.restoreBackupContext = $root.google.cloud.sql.v1beta4.RestoreBackupContext.fromObject(object.restoreBackupContext, long + 1); } if (object.backup != null) message.backup = String(object.backup); if (object.backupdrBackup != null) message.backupdrBackup = String(object.backupdrBackup); if (object.restoreInstanceSettings != null) { - if (typeof object.restoreInstanceSettings !== "object") + if (!$util.isObject(object.restoreInstanceSettings)) throw TypeError(".google.cloud.sql.v1beta4.InstancesRestoreBackupRequest.restoreInstanceSettings: object expected"); - message.restoreInstanceSettings = $root.google.cloud.sql.v1beta4.DatabaseInstance.fromObject(object.restoreInstanceSettings); + message.restoreInstanceSettings = $root.google.cloud.sql.v1beta4.DatabaseInstance.fromObject(object.restoreInstanceSettings, long + 1); } if (object.restoreInstanceClearOverridesFieldNames) { if (!Array.isArray(object.restoreInstanceClearOverridesFieldNames)) @@ -116960,9 +125347,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesRestoreBackupRequest.toObject = function toObject(message, options) { + InstancesRestoreBackupRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.restoreInstanceClearOverridesFieldNames = []; @@ -116972,13 +125363,13 @@ object.restoreInstanceSettings = null; object.backupdrBackup = ""; } - if (message.restoreBackupContext != null && message.hasOwnProperty("restoreBackupContext")) - object.restoreBackupContext = $root.google.cloud.sql.v1beta4.RestoreBackupContext.toObject(message.restoreBackupContext, options); - if (message.backup != null && message.hasOwnProperty("backup")) + if (message.restoreBackupContext != null && Object.hasOwnProperty.call(message, "restoreBackupContext")) + object.restoreBackupContext = $root.google.cloud.sql.v1beta4.RestoreBackupContext.toObject(message.restoreBackupContext, options, q + 1); + if (message.backup != null && Object.hasOwnProperty.call(message, "backup")) object.backup = message.backup; - if (message.restoreInstanceSettings != null && message.hasOwnProperty("restoreInstanceSettings")) - object.restoreInstanceSettings = $root.google.cloud.sql.v1beta4.DatabaseInstance.toObject(message.restoreInstanceSettings, options); - if (message.backupdrBackup != null && message.hasOwnProperty("backupdrBackup")) + if (message.restoreInstanceSettings != null && Object.hasOwnProperty.call(message, "restoreInstanceSettings")) + object.restoreInstanceSettings = $root.google.cloud.sql.v1beta4.DatabaseInstance.toObject(message.restoreInstanceSettings, options, q + 1); + if (message.backupdrBackup != null && Object.hasOwnProperty.call(message, "backupdrBackup")) object.backupdrBackup = message.backupdrBackup; if (message.restoreInstanceClearOverridesFieldNames && message.restoreInstanceClearOverridesFieldNames.length) { object.restoreInstanceClearOverridesFieldNames = []; @@ -117037,7 +125428,7 @@ function InstancesRotateServerCaRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -117070,11 +125461,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesRotateServerCaRequest.encode = function encode(message, writer) { + InstancesRotateServerCaRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.rotateServerCaContext != null && Object.hasOwnProperty.call(message, "rotateServerCaContext")) - $root.google.cloud.sql.v1beta4.RotateServerCaContext.encode(message.rotateServerCaContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.RotateServerCaContext.encode(message.rotateServerCaContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -117088,7 +125483,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesRotateServerCaRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -117102,9 +125497,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesRotateServerCaRequest.decode = function decode(reader, length, error) { + InstancesRotateServerCaRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesRotateServerCaRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -117112,11 +125511,11 @@ break; switch (tag >>> 3) { case 1: { - message.rotateServerCaContext = $root.google.cloud.sql.v1beta4.RotateServerCaContext.decode(reader, reader.uint32()); + message.rotateServerCaContext = $root.google.cloud.sql.v1beta4.RotateServerCaContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -117147,11 +125546,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesRotateServerCaRequest.verify = function verify(message) { + InstancesRotateServerCaRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.rotateServerCaContext != null && message.hasOwnProperty("rotateServerCaContext")) { - var error = $root.google.cloud.sql.v1beta4.RotateServerCaContext.verify(message.rotateServerCaContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.rotateServerCaContext != null && Object.hasOwnProperty.call(message, "rotateServerCaContext")) { + var error = $root.google.cloud.sql.v1beta4.RotateServerCaContext.verify(message.rotateServerCaContext, long + 1); if (error) return "rotateServerCaContext." + error; } @@ -117166,14 +125569,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesRotateServerCaRequest} InstancesRotateServerCaRequest */ - InstancesRotateServerCaRequest.fromObject = function fromObject(object) { + InstancesRotateServerCaRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesRotateServerCaRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesRotateServerCaRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesRotateServerCaRequest(); if (object.rotateServerCaContext != null) { - if (typeof object.rotateServerCaContext !== "object") + if (!$util.isObject(object.rotateServerCaContext)) throw TypeError(".google.cloud.sql.v1beta4.InstancesRotateServerCaRequest.rotateServerCaContext: object expected"); - message.rotateServerCaContext = $root.google.cloud.sql.v1beta4.RotateServerCaContext.fromObject(object.rotateServerCaContext); + message.rotateServerCaContext = $root.google.cloud.sql.v1beta4.RotateServerCaContext.fromObject(object.rotateServerCaContext, long + 1); } return message; }; @@ -117187,14 +125596,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesRotateServerCaRequest.toObject = function toObject(message, options) { + InstancesRotateServerCaRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.rotateServerCaContext = null; - if (message.rotateServerCaContext != null && message.hasOwnProperty("rotateServerCaContext")) - object.rotateServerCaContext = $root.google.cloud.sql.v1beta4.RotateServerCaContext.toObject(message.rotateServerCaContext, options); + if (message.rotateServerCaContext != null && Object.hasOwnProperty.call(message, "rotateServerCaContext")) + object.rotateServerCaContext = $root.google.cloud.sql.v1beta4.RotateServerCaContext.toObject(message.rotateServerCaContext, options, q + 1); return object; }; @@ -117247,7 +125660,7 @@ function InstancesRotateServerCertificateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -117280,11 +125693,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesRotateServerCertificateRequest.encode = function encode(message, writer) { + InstancesRotateServerCertificateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.rotateServerCertificateContext != null && Object.hasOwnProperty.call(message, "rotateServerCertificateContext")) - $root.google.cloud.sql.v1beta4.RotateServerCertificateContext.encode(message.rotateServerCertificateContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.RotateServerCertificateContext.encode(message.rotateServerCertificateContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -117298,7 +125715,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesRotateServerCertificateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -117312,9 +125729,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesRotateServerCertificateRequest.decode = function decode(reader, length, error) { + InstancesRotateServerCertificateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -117322,11 +125743,11 @@ break; switch (tag >>> 3) { case 1: { - message.rotateServerCertificateContext = $root.google.cloud.sql.v1beta4.RotateServerCertificateContext.decode(reader, reader.uint32()); + message.rotateServerCertificateContext = $root.google.cloud.sql.v1beta4.RotateServerCertificateContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -117357,11 +125778,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesRotateServerCertificateRequest.verify = function verify(message) { + InstancesRotateServerCertificateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.rotateServerCertificateContext != null && message.hasOwnProperty("rotateServerCertificateContext")) { - var error = $root.google.cloud.sql.v1beta4.RotateServerCertificateContext.verify(message.rotateServerCertificateContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.rotateServerCertificateContext != null && Object.hasOwnProperty.call(message, "rotateServerCertificateContext")) { + var error = $root.google.cloud.sql.v1beta4.RotateServerCertificateContext.verify(message.rotateServerCertificateContext, long + 1); if (error) return "rotateServerCertificateContext." + error; } @@ -117376,14 +125801,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest} InstancesRotateServerCertificateRequest */ - InstancesRotateServerCertificateRequest.fromObject = function fromObject(object) { + InstancesRotateServerCertificateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest(); if (object.rotateServerCertificateContext != null) { - if (typeof object.rotateServerCertificateContext !== "object") + if (!$util.isObject(object.rotateServerCertificateContext)) throw TypeError(".google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest.rotateServerCertificateContext: object expected"); - message.rotateServerCertificateContext = $root.google.cloud.sql.v1beta4.RotateServerCertificateContext.fromObject(object.rotateServerCertificateContext); + message.rotateServerCertificateContext = $root.google.cloud.sql.v1beta4.RotateServerCertificateContext.fromObject(object.rotateServerCertificateContext, long + 1); } return message; }; @@ -117397,14 +125828,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesRotateServerCertificateRequest.toObject = function toObject(message, options) { + InstancesRotateServerCertificateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.rotateServerCertificateContext = null; - if (message.rotateServerCertificateContext != null && message.hasOwnProperty("rotateServerCertificateContext")) - object.rotateServerCertificateContext = $root.google.cloud.sql.v1beta4.RotateServerCertificateContext.toObject(message.rotateServerCertificateContext, options); + if (message.rotateServerCertificateContext != null && Object.hasOwnProperty.call(message, "rotateServerCertificateContext")) + object.rotateServerCertificateContext = $root.google.cloud.sql.v1beta4.RotateServerCertificateContext.toObject(message.rotateServerCertificateContext, options, q + 1); return object; }; @@ -117457,7 +125892,7 @@ function InstancesRotateEntraIdCertificateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -117490,11 +125925,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesRotateEntraIdCertificateRequest.encode = function encode(message, writer) { + InstancesRotateEntraIdCertificateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.rotateEntraIdCertificateContext != null && Object.hasOwnProperty.call(message, "rotateEntraIdCertificateContext")) - $root.google.cloud.sql.v1beta4.RotateEntraIdCertificateContext.encode(message.rotateEntraIdCertificateContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.RotateEntraIdCertificateContext.encode(message.rotateEntraIdCertificateContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -117508,7 +125947,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesRotateEntraIdCertificateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -117522,9 +125961,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesRotateEntraIdCertificateRequest.decode = function decode(reader, length, error) { + InstancesRotateEntraIdCertificateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -117532,11 +125975,11 @@ break; switch (tag >>> 3) { case 1: { - message.rotateEntraIdCertificateContext = $root.google.cloud.sql.v1beta4.RotateEntraIdCertificateContext.decode(reader, reader.uint32()); + message.rotateEntraIdCertificateContext = $root.google.cloud.sql.v1beta4.RotateEntraIdCertificateContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -117567,11 +126010,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesRotateEntraIdCertificateRequest.verify = function verify(message) { + InstancesRotateEntraIdCertificateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.rotateEntraIdCertificateContext != null && message.hasOwnProperty("rotateEntraIdCertificateContext")) { - var error = $root.google.cloud.sql.v1beta4.RotateEntraIdCertificateContext.verify(message.rotateEntraIdCertificateContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.rotateEntraIdCertificateContext != null && Object.hasOwnProperty.call(message, "rotateEntraIdCertificateContext")) { + var error = $root.google.cloud.sql.v1beta4.RotateEntraIdCertificateContext.verify(message.rotateEntraIdCertificateContext, long + 1); if (error) return "rotateEntraIdCertificateContext." + error; } @@ -117586,14 +126033,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest} InstancesRotateEntraIdCertificateRequest */ - InstancesRotateEntraIdCertificateRequest.fromObject = function fromObject(object) { + InstancesRotateEntraIdCertificateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest(); if (object.rotateEntraIdCertificateContext != null) { - if (typeof object.rotateEntraIdCertificateContext !== "object") + if (!$util.isObject(object.rotateEntraIdCertificateContext)) throw TypeError(".google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest.rotateEntraIdCertificateContext: object expected"); - message.rotateEntraIdCertificateContext = $root.google.cloud.sql.v1beta4.RotateEntraIdCertificateContext.fromObject(object.rotateEntraIdCertificateContext); + message.rotateEntraIdCertificateContext = $root.google.cloud.sql.v1beta4.RotateEntraIdCertificateContext.fromObject(object.rotateEntraIdCertificateContext, long + 1); } return message; }; @@ -117607,14 +126060,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesRotateEntraIdCertificateRequest.toObject = function toObject(message, options) { + InstancesRotateEntraIdCertificateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.rotateEntraIdCertificateContext = null; - if (message.rotateEntraIdCertificateContext != null && message.hasOwnProperty("rotateEntraIdCertificateContext")) - object.rotateEntraIdCertificateContext = $root.google.cloud.sql.v1beta4.RotateEntraIdCertificateContext.toObject(message.rotateEntraIdCertificateContext, options); + if (message.rotateEntraIdCertificateContext != null && Object.hasOwnProperty.call(message, "rotateEntraIdCertificateContext")) + object.rotateEntraIdCertificateContext = $root.google.cloud.sql.v1beta4.RotateEntraIdCertificateContext.toObject(message.rotateEntraIdCertificateContext, options, q + 1); return object; }; @@ -117667,7 +126124,7 @@ function InstancesTruncateLogRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -117700,11 +126157,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesTruncateLogRequest.encode = function encode(message, writer) { + InstancesTruncateLogRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.truncateLogContext != null && Object.hasOwnProperty.call(message, "truncateLogContext")) - $root.google.cloud.sql.v1beta4.TruncateLogContext.encode(message.truncateLogContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.TruncateLogContext.encode(message.truncateLogContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -117718,7 +126179,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesTruncateLogRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -117732,9 +126193,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesTruncateLogRequest.decode = function decode(reader, length, error) { + InstancesTruncateLogRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesTruncateLogRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -117742,11 +126207,11 @@ break; switch (tag >>> 3) { case 1: { - message.truncateLogContext = $root.google.cloud.sql.v1beta4.TruncateLogContext.decode(reader, reader.uint32()); + message.truncateLogContext = $root.google.cloud.sql.v1beta4.TruncateLogContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -117777,11 +126242,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesTruncateLogRequest.verify = function verify(message) { + InstancesTruncateLogRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.truncateLogContext != null && message.hasOwnProperty("truncateLogContext")) { - var error = $root.google.cloud.sql.v1beta4.TruncateLogContext.verify(message.truncateLogContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.truncateLogContext != null && Object.hasOwnProperty.call(message, "truncateLogContext")) { + var error = $root.google.cloud.sql.v1beta4.TruncateLogContext.verify(message.truncateLogContext, long + 1); if (error) return "truncateLogContext." + error; } @@ -117796,14 +126265,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesTruncateLogRequest} InstancesTruncateLogRequest */ - InstancesTruncateLogRequest.fromObject = function fromObject(object) { + InstancesTruncateLogRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesTruncateLogRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesTruncateLogRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesTruncateLogRequest(); if (object.truncateLogContext != null) { - if (typeof object.truncateLogContext !== "object") + if (!$util.isObject(object.truncateLogContext)) throw TypeError(".google.cloud.sql.v1beta4.InstancesTruncateLogRequest.truncateLogContext: object expected"); - message.truncateLogContext = $root.google.cloud.sql.v1beta4.TruncateLogContext.fromObject(object.truncateLogContext); + message.truncateLogContext = $root.google.cloud.sql.v1beta4.TruncateLogContext.fromObject(object.truncateLogContext, long + 1); } return message; }; @@ -117817,14 +126292,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesTruncateLogRequest.toObject = function toObject(message, options) { + InstancesTruncateLogRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.truncateLogContext = null; - if (message.truncateLogContext != null && message.hasOwnProperty("truncateLogContext")) - object.truncateLogContext = $root.google.cloud.sql.v1beta4.TruncateLogContext.toObject(message.truncateLogContext, options); + if (message.truncateLogContext != null && Object.hasOwnProperty.call(message, "truncateLogContext")) + object.truncateLogContext = $root.google.cloud.sql.v1beta4.TruncateLogContext.toObject(message.truncateLogContext, options, q + 1); return object; }; @@ -117877,7 +126356,7 @@ function InstancesAcquireSsrsLeaseRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -117910,11 +126389,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InstancesAcquireSsrsLeaseRequest.encode = function encode(message, writer) { + InstancesAcquireSsrsLeaseRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.acquireSsrsLeaseContext != null && Object.hasOwnProperty.call(message, "acquireSsrsLeaseContext")) - $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.encode(message.acquireSsrsLeaseContext, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.encode(message.acquireSsrsLeaseContext, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -117928,7 +126411,7 @@ * @returns {$protobuf.Writer} Writer */ InstancesAcquireSsrsLeaseRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -117942,9 +126425,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InstancesAcquireSsrsLeaseRequest.decode = function decode(reader, length, error) { + InstancesAcquireSsrsLeaseRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -117952,11 +126439,11 @@ break; switch (tag >>> 3) { case 1: { - message.acquireSsrsLeaseContext = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.decode(reader, reader.uint32()); + message.acquireSsrsLeaseContext = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -117987,11 +126474,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InstancesAcquireSsrsLeaseRequest.verify = function verify(message) { + InstancesAcquireSsrsLeaseRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.acquireSsrsLeaseContext != null && message.hasOwnProperty("acquireSsrsLeaseContext")) { - var error = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.verify(message.acquireSsrsLeaseContext); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.acquireSsrsLeaseContext != null && Object.hasOwnProperty.call(message, "acquireSsrsLeaseContext")) { + var error = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.verify(message.acquireSsrsLeaseContext, long + 1); if (error) return "acquireSsrsLeaseContext." + error; } @@ -118006,14 +126497,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest} InstancesAcquireSsrsLeaseRequest */ - InstancesAcquireSsrsLeaseRequest.fromObject = function fromObject(object) { + InstancesAcquireSsrsLeaseRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest(); if (object.acquireSsrsLeaseContext != null) { - if (typeof object.acquireSsrsLeaseContext !== "object") + if (!$util.isObject(object.acquireSsrsLeaseContext)) throw TypeError(".google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest.acquireSsrsLeaseContext: object expected"); - message.acquireSsrsLeaseContext = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.fromObject(object.acquireSsrsLeaseContext); + message.acquireSsrsLeaseContext = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.fromObject(object.acquireSsrsLeaseContext, long + 1); } return message; }; @@ -118027,14 +126524,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InstancesAcquireSsrsLeaseRequest.toObject = function toObject(message, options) { + InstancesAcquireSsrsLeaseRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.acquireSsrsLeaseContext = null; - if (message.acquireSsrsLeaseContext != null && message.hasOwnProperty("acquireSsrsLeaseContext")) - object.acquireSsrsLeaseContext = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.toObject(message.acquireSsrsLeaseContext, options); + if (message.acquireSsrsLeaseContext != null && Object.hasOwnProperty.call(message, "acquireSsrsLeaseContext")) + object.acquireSsrsLeaseContext = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.toObject(message.acquireSsrsLeaseContext, options, q + 1); return object; }; @@ -118080,6 +126581,9 @@ * @property {string|null} [allocatedIpRange] PointInTimeRestoreContext allocatedIpRange * @property {string|null} [preferredZone] PointInTimeRestoreContext preferredZone * @property {string|null} [preferredSecondaryZone] PointInTimeRestoreContext preferredSecondaryZone + * @property {google.cloud.sql.v1beta4.IDatabaseInstance|null} [targetInstanceSettings] PointInTimeRestoreContext targetInstanceSettings + * @property {Array.|null} [targetInstanceClearSettingsFieldNames] PointInTimeRestoreContext targetInstanceClearSettingsFieldNames + * @property {string|null} [region] PointInTimeRestoreContext region */ /** @@ -118091,9 +126595,10 @@ * @param {google.cloud.sql.v1beta4.IPointInTimeRestoreContext=} [properties] Properties to set */ function PointInTimeRestoreContext(properties) { + this.targetInstanceClearSettingsFieldNames = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -118153,6 +126658,30 @@ */ PointInTimeRestoreContext.prototype.preferredSecondaryZone = null; + /** + * PointInTimeRestoreContext targetInstanceSettings. + * @member {google.cloud.sql.v1beta4.IDatabaseInstance|null|undefined} targetInstanceSettings + * @memberof google.cloud.sql.v1beta4.PointInTimeRestoreContext + * @instance + */ + PointInTimeRestoreContext.prototype.targetInstanceSettings = null; + + /** + * PointInTimeRestoreContext targetInstanceClearSettingsFieldNames. + * @member {Array.} targetInstanceClearSettingsFieldNames + * @memberof google.cloud.sql.v1beta4.PointInTimeRestoreContext + * @instance + */ + PointInTimeRestoreContext.prototype.targetInstanceClearSettingsFieldNames = $util.emptyArray; + + /** + * PointInTimeRestoreContext region. + * @member {string|null|undefined} region + * @memberof google.cloud.sql.v1beta4.PointInTimeRestoreContext + * @instance + */ + PointInTimeRestoreContext.prototype.region = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -118192,6 +126721,12 @@ set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(PointInTimeRestoreContext.prototype, "_region", { + get: $util.oneOfGetter($oneOfFields = ["region"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new PointInTimeRestoreContext instance using the specified properties. * @function create @@ -118213,13 +126748,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PointInTimeRestoreContext.encode = function encode(message, writer) { + PointInTimeRestoreContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.datasource != null && Object.hasOwnProperty.call(message, "datasource")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.datasource); if (message.pointInTime != null && Object.hasOwnProperty.call(message, "pointInTime")) - $root.google.protobuf.Timestamp.encode(message.pointInTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.pointInTime, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.targetInstance != null && Object.hasOwnProperty.call(message, "targetInstance")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.targetInstance); if (message.privateNetwork != null && Object.hasOwnProperty.call(message, "privateNetwork")) @@ -118230,6 +126769,13 @@ writer.uint32(/* id 6, wireType 2 =*/50).string(message.preferredZone); if (message.preferredSecondaryZone != null && Object.hasOwnProperty.call(message, "preferredSecondaryZone")) writer.uint32(/* id 9, wireType 2 =*/74).string(message.preferredSecondaryZone); + if (message.targetInstanceSettings != null && Object.hasOwnProperty.call(message, "targetInstanceSettings")) + $root.google.cloud.sql.v1beta4.DatabaseInstance.encode(message.targetInstanceSettings, writer.uint32(/* id 11, wireType 2 =*/90).fork(), q + 1).ldelim(); + if (message.targetInstanceClearSettingsFieldNames != null && message.targetInstanceClearSettingsFieldNames.length) + for (var i = 0; i < message.targetInstanceClearSettingsFieldNames.length; ++i) + writer.uint32(/* id 12, wireType 2 =*/98).string(message.targetInstanceClearSettingsFieldNames[i]); + if (message.region != null && Object.hasOwnProperty.call(message, "region")) + writer.uint32(/* id 13, wireType 2 =*/106).string(message.region); return writer; }; @@ -118243,7 +126789,7 @@ * @returns {$protobuf.Writer} Writer */ PointInTimeRestoreContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -118257,9 +126803,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PointInTimeRestoreContext.decode = function decode(reader, length, error) { + PointInTimeRestoreContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.PointInTimeRestoreContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -118271,7 +126821,7 @@ break; } case 2: { - message.pointInTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.pointInTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -118294,8 +126844,22 @@ message.preferredSecondaryZone = reader.string(); break; } + case 11: { + message.targetInstanceSettings = $root.google.cloud.sql.v1beta4.DatabaseInstance.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + case 12: { + if (!(message.targetInstanceClearSettingsFieldNames && message.targetInstanceClearSettingsFieldNames.length)) + message.targetInstanceClearSettingsFieldNames = []; + message.targetInstanceClearSettingsFieldNames.push(reader.string()); + break; + } + case 13: { + message.region = reader.string(); + break; + } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -118326,45 +126890,66 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PointInTimeRestoreContext.verify = function verify(message) { + PointInTimeRestoreContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.datasource != null && message.hasOwnProperty("datasource")) { + if (message.datasource != null && Object.hasOwnProperty.call(message, "datasource")) { properties._datasource = 1; if (!$util.isString(message.datasource)) return "datasource: string expected"; } - if (message.pointInTime != null && message.hasOwnProperty("pointInTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.pointInTime); + if (message.pointInTime != null && Object.hasOwnProperty.call(message, "pointInTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.pointInTime, long + 1); if (error) return "pointInTime." + error; } - if (message.targetInstance != null && message.hasOwnProperty("targetInstance")) { + if (message.targetInstance != null && Object.hasOwnProperty.call(message, "targetInstance")) { properties._targetInstance = 1; if (!$util.isString(message.targetInstance)) return "targetInstance: string expected"; } - if (message.privateNetwork != null && message.hasOwnProperty("privateNetwork")) { + if (message.privateNetwork != null && Object.hasOwnProperty.call(message, "privateNetwork")) { properties._privateNetwork = 1; if (!$util.isString(message.privateNetwork)) return "privateNetwork: string expected"; } - if (message.allocatedIpRange != null && message.hasOwnProperty("allocatedIpRange")) { + if (message.allocatedIpRange != null && Object.hasOwnProperty.call(message, "allocatedIpRange")) { properties._allocatedIpRange = 1; if (!$util.isString(message.allocatedIpRange)) return "allocatedIpRange: string expected"; } - if (message.preferredZone != null && message.hasOwnProperty("preferredZone")) { + if (message.preferredZone != null && Object.hasOwnProperty.call(message, "preferredZone")) { properties._preferredZone = 1; if (!$util.isString(message.preferredZone)) return "preferredZone: string expected"; } - if (message.preferredSecondaryZone != null && message.hasOwnProperty("preferredSecondaryZone")) { + if (message.preferredSecondaryZone != null && Object.hasOwnProperty.call(message, "preferredSecondaryZone")) { properties._preferredSecondaryZone = 1; if (!$util.isString(message.preferredSecondaryZone)) return "preferredSecondaryZone: string expected"; } + if (message.targetInstanceSettings != null && Object.hasOwnProperty.call(message, "targetInstanceSettings")) { + var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.targetInstanceSettings, long + 1); + if (error) + return "targetInstanceSettings." + error; + } + if (message.targetInstanceClearSettingsFieldNames != null && Object.hasOwnProperty.call(message, "targetInstanceClearSettingsFieldNames")) { + if (!Array.isArray(message.targetInstanceClearSettingsFieldNames)) + return "targetInstanceClearSettingsFieldNames: array expected"; + for (var i = 0; i < message.targetInstanceClearSettingsFieldNames.length; ++i) + if (!$util.isString(message.targetInstanceClearSettingsFieldNames[i])) + return "targetInstanceClearSettingsFieldNames: string[] expected"; + } + if (message.region != null && Object.hasOwnProperty.call(message, "region")) { + properties._region = 1; + if (!$util.isString(message.region)) + return "region: string expected"; + } return null; }; @@ -118376,16 +126961,22 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.PointInTimeRestoreContext} PointInTimeRestoreContext */ - PointInTimeRestoreContext.fromObject = function fromObject(object) { + PointInTimeRestoreContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.PointInTimeRestoreContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.PointInTimeRestoreContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.PointInTimeRestoreContext(); if (object.datasource != null) message.datasource = String(object.datasource); if (object.pointInTime != null) { - if (typeof object.pointInTime !== "object") + if (!$util.isObject(object.pointInTime)) throw TypeError(".google.cloud.sql.v1beta4.PointInTimeRestoreContext.pointInTime: object expected"); - message.pointInTime = $root.google.protobuf.Timestamp.fromObject(object.pointInTime); + message.pointInTime = $root.google.protobuf.Timestamp.fromObject(object.pointInTime, long + 1); } if (object.targetInstance != null) message.targetInstance = String(object.targetInstance); @@ -118397,6 +126988,20 @@ message.preferredZone = String(object.preferredZone); if (object.preferredSecondaryZone != null) message.preferredSecondaryZone = String(object.preferredSecondaryZone); + if (object.targetInstanceSettings != null) { + if (!$util.isObject(object.targetInstanceSettings)) + throw TypeError(".google.cloud.sql.v1beta4.PointInTimeRestoreContext.targetInstanceSettings: object expected"); + message.targetInstanceSettings = $root.google.cloud.sql.v1beta4.DatabaseInstance.fromObject(object.targetInstanceSettings, long + 1); + } + if (object.targetInstanceClearSettingsFieldNames) { + if (!Array.isArray(object.targetInstanceClearSettingsFieldNames)) + throw TypeError(".google.cloud.sql.v1beta4.PointInTimeRestoreContext.targetInstanceClearSettingsFieldNames: array expected"); + message.targetInstanceClearSettingsFieldNames = []; + for (var i = 0; i < object.targetInstanceClearSettingsFieldNames.length; ++i) + message.targetInstanceClearSettingsFieldNames[i] = String(object.targetInstanceClearSettingsFieldNames[i]); + } + if (object.region != null) + message.region = String(object.region); return message; }; @@ -118409,44 +127014,64 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PointInTimeRestoreContext.toObject = function toObject(message, options) { + PointInTimeRestoreContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (options.defaults) + if (options.arrays || options.defaults) + object.targetInstanceClearSettingsFieldNames = []; + if (options.defaults) { object.pointInTime = null; - if (message.datasource != null && message.hasOwnProperty("datasource")) { + object.targetInstanceSettings = null; + } + if (message.datasource != null && Object.hasOwnProperty.call(message, "datasource")) { object.datasource = message.datasource; if (options.oneofs) object._datasource = "datasource"; } - if (message.pointInTime != null && message.hasOwnProperty("pointInTime")) - object.pointInTime = $root.google.protobuf.Timestamp.toObject(message.pointInTime, options); - if (message.targetInstance != null && message.hasOwnProperty("targetInstance")) { + if (message.pointInTime != null && Object.hasOwnProperty.call(message, "pointInTime")) + object.pointInTime = $root.google.protobuf.Timestamp.toObject(message.pointInTime, options, q + 1); + if (message.targetInstance != null && Object.hasOwnProperty.call(message, "targetInstance")) { object.targetInstance = message.targetInstance; if (options.oneofs) object._targetInstance = "targetInstance"; } - if (message.privateNetwork != null && message.hasOwnProperty("privateNetwork")) { + if (message.privateNetwork != null && Object.hasOwnProperty.call(message, "privateNetwork")) { object.privateNetwork = message.privateNetwork; if (options.oneofs) object._privateNetwork = "privateNetwork"; } - if (message.allocatedIpRange != null && message.hasOwnProperty("allocatedIpRange")) { + if (message.allocatedIpRange != null && Object.hasOwnProperty.call(message, "allocatedIpRange")) { object.allocatedIpRange = message.allocatedIpRange; if (options.oneofs) object._allocatedIpRange = "allocatedIpRange"; } - if (message.preferredZone != null && message.hasOwnProperty("preferredZone")) { + if (message.preferredZone != null && Object.hasOwnProperty.call(message, "preferredZone")) { object.preferredZone = message.preferredZone; if (options.oneofs) object._preferredZone = "preferredZone"; } - if (message.preferredSecondaryZone != null && message.hasOwnProperty("preferredSecondaryZone")) { + if (message.preferredSecondaryZone != null && Object.hasOwnProperty.call(message, "preferredSecondaryZone")) { object.preferredSecondaryZone = message.preferredSecondaryZone; if (options.oneofs) object._preferredSecondaryZone = "preferredSecondaryZone"; } + if (message.targetInstanceSettings != null && Object.hasOwnProperty.call(message, "targetInstanceSettings")) + object.targetInstanceSettings = $root.google.cloud.sql.v1beta4.DatabaseInstance.toObject(message.targetInstanceSettings, options, q + 1); + if (message.targetInstanceClearSettingsFieldNames && message.targetInstanceClearSettingsFieldNames.length) { + object.targetInstanceClearSettingsFieldNames = []; + for (var j = 0; j < message.targetInstanceClearSettingsFieldNames.length; ++j) + object.targetInstanceClearSettingsFieldNames[j] = message.targetInstanceClearSettingsFieldNames[j]; + } + if (message.region != null && Object.hasOwnProperty.call(message, "region")) { + object.region = message.region; + if (options.oneofs) + object._region = "region"; + } return object; }; @@ -118499,7 +127124,7 @@ function PerformDiskShrinkContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -118532,9 +127157,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PerformDiskShrinkContext.encode = function encode(message, writer) { + PerformDiskShrinkContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.targetSizeGb != null && Object.hasOwnProperty.call(message, "targetSizeGb")) writer.uint32(/* id 1, wireType 0 =*/8).int64(message.targetSizeGb); return writer; @@ -118550,7 +127179,7 @@ * @returns {$protobuf.Writer} Writer */ PerformDiskShrinkContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -118564,9 +127193,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PerformDiskShrinkContext.decode = function decode(reader, length, error) { + PerformDiskShrinkContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.PerformDiskShrinkContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -118578,7 +127211,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -118609,10 +127242,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PerformDiskShrinkContext.verify = function verify(message) { + PerformDiskShrinkContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.targetSizeGb != null && message.hasOwnProperty("targetSizeGb")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.targetSizeGb != null && Object.hasOwnProperty.call(message, "targetSizeGb")) if (!$util.isInteger(message.targetSizeGb) && !(message.targetSizeGb && $util.isInteger(message.targetSizeGb.low) && $util.isInteger(message.targetSizeGb.high))) return "targetSizeGb: integer|Long expected"; return null; @@ -118626,13 +127263,19 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.PerformDiskShrinkContext} PerformDiskShrinkContext */ - PerformDiskShrinkContext.fromObject = function fromObject(object) { + PerformDiskShrinkContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.PerformDiskShrinkContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.PerformDiskShrinkContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.PerformDiskShrinkContext(); if (object.targetSizeGb != null) if ($util.Long) - (message.targetSizeGb = $util.Long.fromValue(object.targetSizeGb)).unsigned = false; + message.targetSizeGb = $util.Long.fromValue(object.targetSizeGb, false); else if (typeof object.targetSizeGb === "string") message.targetSizeGb = parseInt(object.targetSizeGb, 10); else if (typeof object.targetSizeGb === "number") @@ -118651,18 +127294,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PerformDiskShrinkContext.toObject = function toObject(message, options) { + PerformDiskShrinkContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) if ($util.Long) { var long = new $util.Long(0, 0, false); - object.targetSizeGb = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.targetSizeGb = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.targetSizeGb = options.longs === String ? "0" : 0; - if (message.targetSizeGb != null && message.hasOwnProperty("targetSizeGb")) - if (typeof message.targetSizeGb === "number") + object.targetSizeGb = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; + if (message.targetSizeGb != null && Object.hasOwnProperty.call(message, "targetSizeGb")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.targetSizeGb = typeof message.targetSizeGb === "number" ? BigInt(message.targetSizeGb) : $util.Long.fromBits(message.targetSizeGb.low >>> 0, message.targetSizeGb.high >>> 0, false).toBigInt(); + else if (typeof message.targetSizeGb === "number") object.targetSizeGb = options.longs === String ? String(message.targetSizeGb) : message.targetSizeGb; else object.targetSizeGb = options.longs === String ? $util.Long.prototype.toString.call(message.targetSizeGb) : options.longs === Number ? new $util.LongBits(message.targetSizeGb.low >>> 0, message.targetSizeGb.high >>> 0).toNumber() : message.targetSizeGb; @@ -118721,7 +127370,7 @@ this.actionsRequired = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -118785,9 +127434,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PreCheckResponse.encode = function encode(message, writer) { + PreCheckResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.message != null && Object.hasOwnProperty.call(message, "message")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.message); if (message.messageType != null && Object.hasOwnProperty.call(message, "messageType")) @@ -118808,7 +127461,7 @@ * @returns {$protobuf.Writer} Writer */ PreCheckResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -118822,9 +127475,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PreCheckResponse.decode = function decode(reader, length, error) { + PreCheckResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.PreCheckResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -118846,7 +127503,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -118877,16 +127534,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PreCheckResponse.verify = function verify(message) { + PreCheckResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.message != null && message.hasOwnProperty("message")) { + if (message.message != null && Object.hasOwnProperty.call(message, "message")) { properties._message = 1; if (!$util.isString(message.message)) return "message: string expected"; } - if (message.messageType != null && message.hasOwnProperty("messageType")) { + if (message.messageType != null && Object.hasOwnProperty.call(message, "messageType")) { properties._messageType = 1; switch (message.messageType) { default: @@ -118898,7 +127559,7 @@ break; } } - if (message.actionsRequired != null && message.hasOwnProperty("actionsRequired")) { + if (message.actionsRequired != null && Object.hasOwnProperty.call(message, "actionsRequired")) { if (!Array.isArray(message.actionsRequired)) return "actionsRequired: array expected"; for (var i = 0; i < message.actionsRequired.length; ++i) @@ -118916,9 +127577,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.PreCheckResponse} PreCheckResponse */ - PreCheckResponse.fromObject = function fromObject(object) { + PreCheckResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.PreCheckResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.PreCheckResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.PreCheckResponse(); if (object.message != null) message.message = String(object.message); @@ -118965,18 +127632,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PreCheckResponse.toObject = function toObject(message, options) { + PreCheckResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.actionsRequired = []; - if (message.message != null && message.hasOwnProperty("message")) { + if (message.message != null && Object.hasOwnProperty.call(message, "message")) { object.message = message.message; if (options.oneofs) object._message = "message"; } - if (message.messageType != null && message.hasOwnProperty("messageType")) { + if (message.messageType != null && Object.hasOwnProperty.call(message, "messageType")) { object.messageType = options.enums === String ? $root.google.cloud.sql.v1beta4.PreCheckResponse.MessageType[message.messageType] === undefined ? message.messageType : $root.google.cloud.sql.v1beta4.PreCheckResponse.MessageType[message.messageType] : message.messageType; if (options.oneofs) object._messageType = "messageType"; @@ -119059,7 +127730,7 @@ this.preCheckResponse = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -119108,14 +127779,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PreCheckMajorVersionUpgradeContext.encode = function encode(message, writer) { + PreCheckMajorVersionUpgradeContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.targetDatabaseVersion != null && Object.hasOwnProperty.call(message, "targetDatabaseVersion")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.targetDatabaseVersion); if (message.preCheckResponse != null && message.preCheckResponse.length) for (var i = 0; i < message.preCheckResponse.length; ++i) - $root.google.cloud.sql.v1beta4.PreCheckResponse.encode(message.preCheckResponse[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.PreCheckResponse.encode(message.preCheckResponse[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.kind); return writer; @@ -119131,7 +127806,7 @@ * @returns {$protobuf.Writer} Writer */ PreCheckMajorVersionUpgradeContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -119145,9 +127820,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PreCheckMajorVersionUpgradeContext.decode = function decode(reader, length, error) { + PreCheckMajorVersionUpgradeContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -119161,7 +127840,7 @@ case 2: { if (!(message.preCheckResponse && message.preCheckResponse.length)) message.preCheckResponse = []; - message.preCheckResponse.push($root.google.cloud.sql.v1beta4.PreCheckResponse.decode(reader, reader.uint32())); + message.preCheckResponse.push($root.google.cloud.sql.v1beta4.PreCheckResponse.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { @@ -119169,7 +127848,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -119200,10 +127879,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PreCheckMajorVersionUpgradeContext.verify = function verify(message) { + PreCheckMajorVersionUpgradeContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.targetDatabaseVersion != null && message.hasOwnProperty("targetDatabaseVersion")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.targetDatabaseVersion != null && Object.hasOwnProperty.call(message, "targetDatabaseVersion")) switch (message.targetDatabaseVersion) { default: return "targetDatabaseVersion: enum value expected"; @@ -119250,6 +127933,8 @@ case 272: case 408: case 557: + case 684: + case 781: case 26: case 27: case 28: @@ -119258,18 +127943,21 @@ case 200: case 201: case 202: + case 549: + case 550: + case 551: break; } - if (message.preCheckResponse != null && message.hasOwnProperty("preCheckResponse")) { + if (message.preCheckResponse != null && Object.hasOwnProperty.call(message, "preCheckResponse")) { if (!Array.isArray(message.preCheckResponse)) return "preCheckResponse: array expected"; for (var i = 0; i < message.preCheckResponse.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.PreCheckResponse.verify(message.preCheckResponse[i]); + var error = $root.google.cloud.sql.v1beta4.PreCheckResponse.verify(message.preCheckResponse[i], long + 1); if (error) return "preCheckResponse." + error; } } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -119283,9 +127971,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext} PreCheckMajorVersionUpgradeContext */ - PreCheckMajorVersionUpgradeContext.fromObject = function fromObject(object) { + PreCheckMajorVersionUpgradeContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext(); switch (object.targetDatabaseVersion) { default: @@ -119466,6 +128160,14 @@ case 557: message.targetDatabaseVersion = 557; break; + case "POSTGRES_19": + case 684: + message.targetDatabaseVersion = 684; + break; + case "POSTGRES_20": + case 781: + message.targetDatabaseVersion = 781; + break; case "SQLSERVER_2019_STANDARD": case 26: message.targetDatabaseVersion = 26; @@ -119498,15 +128200,27 @@ case 202: message.targetDatabaseVersion = 202; break; + case "SQLSERVER_2025_STANDARD": + case 549: + message.targetDatabaseVersion = 549; + break; + case "SQLSERVER_2025_ENTERPRISE": + case 550: + message.targetDatabaseVersion = 550; + break; + case "SQLSERVER_2025_EXPRESS": + case 551: + message.targetDatabaseVersion = 551; + break; } if (object.preCheckResponse) { if (!Array.isArray(object.preCheckResponse)) throw TypeError(".google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.preCheckResponse: array expected"); message.preCheckResponse = []; for (var i = 0; i < object.preCheckResponse.length; ++i) { - if (typeof object.preCheckResponse[i] !== "object") + if (!$util.isObject(object.preCheckResponse[i])) throw TypeError(".google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.preCheckResponse: object expected"); - message.preCheckResponse[i] = $root.google.cloud.sql.v1beta4.PreCheckResponse.fromObject(object.preCheckResponse[i]); + message.preCheckResponse[i] = $root.google.cloud.sql.v1beta4.PreCheckResponse.fromObject(object.preCheckResponse[i], long + 1); } } if (object.kind != null) @@ -119523,9 +128237,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PreCheckMajorVersionUpgradeContext.toObject = function toObject(message, options) { + PreCheckMajorVersionUpgradeContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.preCheckResponse = []; @@ -119533,14 +128251,14 @@ object.targetDatabaseVersion = options.enums === String ? "SQL_DATABASE_VERSION_UNSPECIFIED" : 0; object.kind = ""; } - if (message.targetDatabaseVersion != null && message.hasOwnProperty("targetDatabaseVersion")) + if (message.targetDatabaseVersion != null && Object.hasOwnProperty.call(message, "targetDatabaseVersion")) object.targetDatabaseVersion = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlDatabaseVersion[message.targetDatabaseVersion] === undefined ? message.targetDatabaseVersion : $root.google.cloud.sql.v1beta4.SqlDatabaseVersion[message.targetDatabaseVersion] : message.targetDatabaseVersion; if (message.preCheckResponse && message.preCheckResponse.length) { object.preCheckResponse = []; for (var j = 0; j < message.preCheckResponse.length; ++j) - object.preCheckResponse[j] = $root.google.cloud.sql.v1beta4.PreCheckResponse.toObject(message.preCheckResponse[j], options); + object.preCheckResponse[j] = $root.google.cloud.sql.v1beta4.PreCheckResponse.toObject(message.preCheckResponse[j], options, q + 1); } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -119596,7 +128314,7 @@ function SqlInstancesGetDiskShrinkConfigResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -119645,9 +128363,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesGetDiskShrinkConfigResponse.encode = function encode(message, writer) { + SqlInstancesGetDiskShrinkConfigResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.minimalTargetSizeGb != null && Object.hasOwnProperty.call(message, "minimalTargetSizeGb")) @@ -119667,7 +128389,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesGetDiskShrinkConfigResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -119681,9 +128403,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesGetDiskShrinkConfigResponse.decode = function decode(reader, length, error) { + SqlInstancesGetDiskShrinkConfigResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -119703,7 +128429,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -119734,16 +128460,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesGetDiskShrinkConfigResponse.verify = function verify(message) { + SqlInstancesGetDiskShrinkConfigResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.minimalTargetSizeGb != null && message.hasOwnProperty("minimalTargetSizeGb")) + if (message.minimalTargetSizeGb != null && Object.hasOwnProperty.call(message, "minimalTargetSizeGb")) if (!$util.isInteger(message.minimalTargetSizeGb) && !(message.minimalTargetSizeGb && $util.isInteger(message.minimalTargetSizeGb.low) && $util.isInteger(message.minimalTargetSizeGb.high))) return "minimalTargetSizeGb: integer|Long expected"; - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) if (!$util.isString(message.message)) return "message: string expected"; return null; @@ -119757,15 +128487,21 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigResponse} SqlInstancesGetDiskShrinkConfigResponse */ - SqlInstancesGetDiskShrinkConfigResponse.fromObject = function fromObject(object) { + SqlInstancesGetDiskShrinkConfigResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigResponse(); if (object.kind != null) message.kind = String(object.kind); if (object.minimalTargetSizeGb != null) if ($util.Long) - (message.minimalTargetSizeGb = $util.Long.fromValue(object.minimalTargetSizeGb)).unsigned = false; + message.minimalTargetSizeGb = $util.Long.fromValue(object.minimalTargetSizeGb, false); else if (typeof object.minimalTargetSizeGb === "string") message.minimalTargetSizeGb = parseInt(object.minimalTargetSizeGb, 10); else if (typeof object.minimalTargetSizeGb === "number") @@ -119786,27 +128522,33 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesGetDiskShrinkConfigResponse.toObject = function toObject(message, options) { + SqlInstancesGetDiskShrinkConfigResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.minimalTargetSizeGb = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.minimalTargetSizeGb = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.minimalTargetSizeGb = options.longs === String ? "0" : 0; + object.minimalTargetSizeGb = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.message = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.minimalTargetSizeGb != null && message.hasOwnProperty("minimalTargetSizeGb")) - if (typeof message.minimalTargetSizeGb === "number") + if (message.minimalTargetSizeGb != null && Object.hasOwnProperty.call(message, "minimalTargetSizeGb")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.minimalTargetSizeGb = typeof message.minimalTargetSizeGb === "number" ? BigInt(message.minimalTargetSizeGb) : $util.Long.fromBits(message.minimalTargetSizeGb.low >>> 0, message.minimalTargetSizeGb.high >>> 0, false).toBigInt(); + else if (typeof message.minimalTargetSizeGb === "number") object.minimalTargetSizeGb = options.longs === String ? String(message.minimalTargetSizeGb) : message.minimalTargetSizeGb; else object.minimalTargetSizeGb = options.longs === String ? $util.Long.prototype.toString.call(message.minimalTargetSizeGb) : options.longs === Number ? new $util.LongBits(message.minimalTargetSizeGb.low >>> 0, message.minimalTargetSizeGb.high >>> 0).toNumber() : message.minimalTargetSizeGb; - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) object.message = message.message; return object; }; @@ -119864,7 +128606,7 @@ this.warnings = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -119913,17 +128655,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesVerifyExternalSyncSettingsResponse.encode = function encode(message, writer) { + SqlInstancesVerifyExternalSyncSettingsResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.errors != null && message.errors.length) for (var i = 0; i < message.errors.length; ++i) - $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.encode(message.errors[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.encode(message.errors[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.warnings != null && message.warnings.length) for (var i = 0; i < message.warnings.length; ++i) - $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.encode(message.warnings[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.encode(message.warnings[i], writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -119937,7 +128683,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesVerifyExternalSyncSettingsResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -119951,9 +128697,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesVerifyExternalSyncSettingsResponse.decode = function decode(reader, length, error) { + SqlInstancesVerifyExternalSyncSettingsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -119967,17 +128717,17 @@ case 2: { if (!(message.errors && message.errors.length)) message.errors = []; - message.errors.push($root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.decode(reader, reader.uint32())); + message.errors.push($root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { if (!(message.warnings && message.warnings.length)) message.warnings = []; - message.warnings.push($root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.decode(reader, reader.uint32())); + message.warnings.push($root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -120008,26 +128758,30 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesVerifyExternalSyncSettingsResponse.verify = function verify(message) { + SqlInstancesVerifyExternalSyncSettingsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.errors != null && message.hasOwnProperty("errors")) { + if (message.errors != null && Object.hasOwnProperty.call(message, "errors")) { if (!Array.isArray(message.errors)) return "errors: array expected"; for (var i = 0; i < message.errors.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.verify(message.errors[i]); + var error = $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.verify(message.errors[i], long + 1); if (error) return "errors." + error; } } - if (message.warnings != null && message.hasOwnProperty("warnings")) { + if (message.warnings != null && Object.hasOwnProperty.call(message, "warnings")) { if (!Array.isArray(message.warnings)) return "warnings: array expected"; for (var i = 0; i < message.warnings.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.verify(message.warnings[i]); + var error = $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.verify(message.warnings[i], long + 1); if (error) return "warnings." + error; } @@ -120043,9 +128797,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsResponse} SqlInstancesVerifyExternalSyncSettingsResponse */ - SqlInstancesVerifyExternalSyncSettingsResponse.fromObject = function fromObject(object) { + SqlInstancesVerifyExternalSyncSettingsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -120054,9 +128814,9 @@ throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsResponse.errors: array expected"); message.errors = []; for (var i = 0; i < object.errors.length; ++i) { - if (typeof object.errors[i] !== "object") + if (!$util.isObject(object.errors[i])) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsResponse.errors: object expected"); - message.errors[i] = $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.fromObject(object.errors[i]); + message.errors[i] = $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.fromObject(object.errors[i], long + 1); } } if (object.warnings) { @@ -120064,9 +128824,9 @@ throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsResponse.warnings: array expected"); message.warnings = []; for (var i = 0; i < object.warnings.length; ++i) { - if (typeof object.warnings[i] !== "object") + if (!$util.isObject(object.warnings[i])) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsResponse.warnings: object expected"); - message.warnings[i] = $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.fromObject(object.warnings[i]); + message.warnings[i] = $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.fromObject(object.warnings[i], long + 1); } } return message; @@ -120081,9 +128841,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesVerifyExternalSyncSettingsResponse.toObject = function toObject(message, options) { + SqlInstancesVerifyExternalSyncSettingsResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.errors = []; @@ -120091,17 +128855,17 @@ } if (options.defaults) object.kind = ""; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.errors && message.errors.length) { object.errors = []; for (var j = 0; j < message.errors.length; ++j) - object.errors[j] = $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.toObject(message.errors[j], options); + object.errors[j] = $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.toObject(message.errors[j], options, q + 1); } if (message.warnings && message.warnings.length) { object.warnings = []; for (var j = 0; j < message.warnings.length; ++j) - object.warnings[j] = $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.toObject(message.warnings[j], options); + object.warnings[j] = $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.toObject(message.warnings[j], options, q + 1); } return object; }; @@ -120157,7 +128921,7 @@ function SqlExternalSyncSettingError(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -120206,9 +128970,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlExternalSyncSettingError.encode = function encode(message, writer) { + SqlExternalSyncSettingError.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.type != null && Object.hasOwnProperty.call(message, "type")) @@ -120228,7 +128996,7 @@ * @returns {$protobuf.Writer} Writer */ SqlExternalSyncSettingError.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -120242,9 +129010,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlExternalSyncSettingError.decode = function decode(reader, length, error) { + SqlExternalSyncSettingError.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError(); while (reader.pos < end) { var tag = reader.uint32(); @@ -120264,7 +129036,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -120295,13 +129067,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlExternalSyncSettingError.verify = function verify(message) { + SqlExternalSyncSettingError.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) switch (message.type) { default: return "type: enum value expected"; @@ -120366,7 +129142,7 @@ case 58: break; } - if (message.detail != null && message.hasOwnProperty("detail")) + if (message.detail != null && Object.hasOwnProperty.call(message, "detail")) if (!$util.isString(message.detail)) return "detail: string expected"; return null; @@ -120380,9 +129156,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlExternalSyncSettingError} SqlExternalSyncSettingError */ - SqlExternalSyncSettingError.fromObject = function fromObject(object) { + SqlExternalSyncSettingError.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlExternalSyncSettingError: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError(); if (object.kind != null) message.kind = String(object.kind); @@ -120644,20 +129426,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlExternalSyncSettingError.toObject = function toObject(message, options) { + SqlExternalSyncSettingError.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.type = options.enums === String ? "SQL_EXTERNAL_SYNC_SETTING_ERROR_TYPE_UNSPECIFIED" : 0; object.detail = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.SqlExternalSyncSettingErrorType[message.type] === undefined ? message.type : $root.google.cloud.sql.v1beta4.SqlExternalSyncSettingError.SqlExternalSyncSettingErrorType[message.type] : message.type; - if (message.detail != null && message.hasOwnProperty("detail")) + if (message.detail != null && Object.hasOwnProperty.call(message, "detail")) object.detail = message.detail; return object; }; @@ -120852,7 +129638,7 @@ this.customSubjectAlternativeNames = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -121000,26 +129786,30 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - IpConfiguration.encode = function encode(message, writer) { + IpConfiguration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.ipv4Enabled != null && Object.hasOwnProperty.call(message, "ipv4Enabled")) - $root.google.protobuf.BoolValue.encode(message.ipv4Enabled, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.ipv4Enabled, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.privateNetwork != null && Object.hasOwnProperty.call(message, "privateNetwork")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.privateNetwork); if (message.requireSsl != null && Object.hasOwnProperty.call(message, "requireSsl")) - $root.google.protobuf.BoolValue.encode(message.requireSsl, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.requireSsl, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.authorizedNetworks != null && message.authorizedNetworks.length) for (var i = 0; i < message.authorizedNetworks.length; ++i) - $root.google.cloud.sql.v1beta4.AclEntry.encode(message.authorizedNetworks[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.AclEntry.encode(message.authorizedNetworks[i], writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.allocatedIpRange != null && Object.hasOwnProperty.call(message, "allocatedIpRange")) writer.uint32(/* id 6, wireType 2 =*/50).string(message.allocatedIpRange); if (message.enablePrivatePathForGoogleCloudServices != null && Object.hasOwnProperty.call(message, "enablePrivatePathForGoogleCloudServices")) - $root.google.protobuf.BoolValue.encode(message.enablePrivatePathForGoogleCloudServices, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.enablePrivatePathForGoogleCloudServices, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.sslMode != null && Object.hasOwnProperty.call(message, "sslMode")) writer.uint32(/* id 8, wireType 0 =*/64).int32(message.sslMode); if (message.pscConfig != null && Object.hasOwnProperty.call(message, "pscConfig")) - $root.google.cloud.sql.v1beta4.PscConfig.encode(message.pscConfig, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.PscConfig.encode(message.pscConfig, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); if (message.serverCaMode != null && Object.hasOwnProperty.call(message, "serverCaMode")) writer.uint32(/* id 10, wireType 0 =*/80).int32(message.serverCaMode); if (message.customSubjectAlternativeNames != null && message.customSubjectAlternativeNames.length) @@ -121042,7 +129832,7 @@ * @returns {$protobuf.Writer} Writer */ IpConfiguration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -121056,9 +129846,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - IpConfiguration.decode = function decode(reader, length, error) { + IpConfiguration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.IpConfiguration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -121066,7 +129860,7 @@ break; switch (tag >>> 3) { case 1: { - message.ipv4Enabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.ipv4Enabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -121074,13 +129868,13 @@ break; } case 3: { - message.requireSsl = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.requireSsl = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { if (!(message.authorizedNetworks && message.authorizedNetworks.length)) message.authorizedNetworks = []; - message.authorizedNetworks.push($root.google.cloud.sql.v1beta4.AclEntry.decode(reader, reader.uint32())); + message.authorizedNetworks.push($root.google.cloud.sql.v1beta4.AclEntry.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 6: { @@ -121088,7 +129882,7 @@ break; } case 7: { - message.enablePrivatePathForGoogleCloudServices = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.enablePrivatePathForGoogleCloudServices = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { @@ -121096,7 +129890,7 @@ break; } case 9: { - message.pscConfig = $root.google.cloud.sql.v1beta4.PscConfig.decode(reader, reader.uint32()); + message.pscConfig = $root.google.cloud.sql.v1beta4.PscConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { @@ -121118,7 +129912,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -121149,41 +129943,45 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - IpConfiguration.verify = function verify(message) { + IpConfiguration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.ipv4Enabled != null && message.hasOwnProperty("ipv4Enabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.ipv4Enabled); + if (message.ipv4Enabled != null && Object.hasOwnProperty.call(message, "ipv4Enabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.ipv4Enabled, long + 1); if (error) return "ipv4Enabled." + error; } - if (message.privateNetwork != null && message.hasOwnProperty("privateNetwork")) + if (message.privateNetwork != null && Object.hasOwnProperty.call(message, "privateNetwork")) if (!$util.isString(message.privateNetwork)) return "privateNetwork: string expected"; - if (message.requireSsl != null && message.hasOwnProperty("requireSsl")) { - var error = $root.google.protobuf.BoolValue.verify(message.requireSsl); + if (message.requireSsl != null && Object.hasOwnProperty.call(message, "requireSsl")) { + var error = $root.google.protobuf.BoolValue.verify(message.requireSsl, long + 1); if (error) return "requireSsl." + error; } - if (message.authorizedNetworks != null && message.hasOwnProperty("authorizedNetworks")) { + if (message.authorizedNetworks != null && Object.hasOwnProperty.call(message, "authorizedNetworks")) { if (!Array.isArray(message.authorizedNetworks)) return "authorizedNetworks: array expected"; for (var i = 0; i < message.authorizedNetworks.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.AclEntry.verify(message.authorizedNetworks[i]); + var error = $root.google.cloud.sql.v1beta4.AclEntry.verify(message.authorizedNetworks[i], long + 1); if (error) return "authorizedNetworks." + error; } } - if (message.allocatedIpRange != null && message.hasOwnProperty("allocatedIpRange")) + if (message.allocatedIpRange != null && Object.hasOwnProperty.call(message, "allocatedIpRange")) if (!$util.isString(message.allocatedIpRange)) return "allocatedIpRange: string expected"; - if (message.enablePrivatePathForGoogleCloudServices != null && message.hasOwnProperty("enablePrivatePathForGoogleCloudServices")) { - var error = $root.google.protobuf.BoolValue.verify(message.enablePrivatePathForGoogleCloudServices); + if (message.enablePrivatePathForGoogleCloudServices != null && Object.hasOwnProperty.call(message, "enablePrivatePathForGoogleCloudServices")) { + var error = $root.google.protobuf.BoolValue.verify(message.enablePrivatePathForGoogleCloudServices, long + 1); if (error) return "enablePrivatePathForGoogleCloudServices." + error; } - if (message.sslMode != null && message.hasOwnProperty("sslMode")) + if (message.sslMode != null && Object.hasOwnProperty.call(message, "sslMode")) switch (message.sslMode) { default: return "sslMode: enum value expected"; @@ -121193,15 +129991,15 @@ case 3: break; } - if (message.pscConfig != null && message.hasOwnProperty("pscConfig")) { + if (message.pscConfig != null && Object.hasOwnProperty.call(message, "pscConfig")) { properties._pscConfig = 1; { - var error = $root.google.cloud.sql.v1beta4.PscConfig.verify(message.pscConfig); + var error = $root.google.cloud.sql.v1beta4.PscConfig.verify(message.pscConfig, long + 1); if (error) return "pscConfig." + error; } } - if (message.serverCaMode != null && message.hasOwnProperty("serverCaMode")) { + if (message.serverCaMode != null && Object.hasOwnProperty.call(message, "serverCaMode")) { properties._serverCaMode = 1; switch (message.serverCaMode) { default: @@ -121213,19 +130011,19 @@ break; } } - if (message.customSubjectAlternativeNames != null && message.hasOwnProperty("customSubjectAlternativeNames")) { + if (message.customSubjectAlternativeNames != null && Object.hasOwnProperty.call(message, "customSubjectAlternativeNames")) { if (!Array.isArray(message.customSubjectAlternativeNames)) return "customSubjectAlternativeNames: array expected"; for (var i = 0; i < message.customSubjectAlternativeNames.length; ++i) if (!$util.isString(message.customSubjectAlternativeNames[i])) return "customSubjectAlternativeNames: string[] expected"; } - if (message.serverCaPool != null && message.hasOwnProperty("serverCaPool")) { + if (message.serverCaPool != null && Object.hasOwnProperty.call(message, "serverCaPool")) { properties._serverCaPool = 1; if (!$util.isString(message.serverCaPool)) return "serverCaPool: string expected"; } - if (message.serverCertificateRotationMode != null && message.hasOwnProperty("serverCertificateRotationMode")) { + if (message.serverCertificateRotationMode != null && Object.hasOwnProperty.call(message, "serverCertificateRotationMode")) { properties._serverCertificateRotationMode = 1; switch (message.serverCertificateRotationMode) { default: @@ -121247,38 +130045,44 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.IpConfiguration} IpConfiguration */ - IpConfiguration.fromObject = function fromObject(object) { + IpConfiguration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.IpConfiguration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.IpConfiguration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.IpConfiguration(); if (object.ipv4Enabled != null) { - if (typeof object.ipv4Enabled !== "object") + if (!$util.isObject(object.ipv4Enabled)) throw TypeError(".google.cloud.sql.v1beta4.IpConfiguration.ipv4Enabled: object expected"); - message.ipv4Enabled = $root.google.protobuf.BoolValue.fromObject(object.ipv4Enabled); + message.ipv4Enabled = $root.google.protobuf.BoolValue.fromObject(object.ipv4Enabled, long + 1); } if (object.privateNetwork != null) message.privateNetwork = String(object.privateNetwork); if (object.requireSsl != null) { - if (typeof object.requireSsl !== "object") + if (!$util.isObject(object.requireSsl)) throw TypeError(".google.cloud.sql.v1beta4.IpConfiguration.requireSsl: object expected"); - message.requireSsl = $root.google.protobuf.BoolValue.fromObject(object.requireSsl); + message.requireSsl = $root.google.protobuf.BoolValue.fromObject(object.requireSsl, long + 1); } if (object.authorizedNetworks) { if (!Array.isArray(object.authorizedNetworks)) throw TypeError(".google.cloud.sql.v1beta4.IpConfiguration.authorizedNetworks: array expected"); message.authorizedNetworks = []; for (var i = 0; i < object.authorizedNetworks.length; ++i) { - if (typeof object.authorizedNetworks[i] !== "object") + if (!$util.isObject(object.authorizedNetworks[i])) throw TypeError(".google.cloud.sql.v1beta4.IpConfiguration.authorizedNetworks: object expected"); - message.authorizedNetworks[i] = $root.google.cloud.sql.v1beta4.AclEntry.fromObject(object.authorizedNetworks[i]); + message.authorizedNetworks[i] = $root.google.cloud.sql.v1beta4.AclEntry.fromObject(object.authorizedNetworks[i], long + 1); } } if (object.allocatedIpRange != null) message.allocatedIpRange = String(object.allocatedIpRange); if (object.enablePrivatePathForGoogleCloudServices != null) { - if (typeof object.enablePrivatePathForGoogleCloudServices !== "object") + if (!$util.isObject(object.enablePrivatePathForGoogleCloudServices)) throw TypeError(".google.cloud.sql.v1beta4.IpConfiguration.enablePrivatePathForGoogleCloudServices: object expected"); - message.enablePrivatePathForGoogleCloudServices = $root.google.protobuf.BoolValue.fromObject(object.enablePrivatePathForGoogleCloudServices); + message.enablePrivatePathForGoogleCloudServices = $root.google.protobuf.BoolValue.fromObject(object.enablePrivatePathForGoogleCloudServices, long + 1); } switch (object.sslMode) { default: @@ -121305,9 +130109,9 @@ break; } if (object.pscConfig != null) { - if (typeof object.pscConfig !== "object") + if (!$util.isObject(object.pscConfig)) throw TypeError(".google.cloud.sql.v1beta4.IpConfiguration.pscConfig: object expected"); - message.pscConfig = $root.google.cloud.sql.v1beta4.PscConfig.fromObject(object.pscConfig); + message.pscConfig = $root.google.cloud.sql.v1beta4.PscConfig.fromObject(object.pscConfig, long + 1); } switch (object.serverCaMode) { default: @@ -121374,9 +130178,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - IpConfiguration.toObject = function toObject(message, options) { + IpConfiguration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.authorizedNetworks = []; @@ -121390,29 +130198,29 @@ object.enablePrivatePathForGoogleCloudServices = null; object.sslMode = options.enums === String ? "SSL_MODE_UNSPECIFIED" : 0; } - if (message.ipv4Enabled != null && message.hasOwnProperty("ipv4Enabled")) - object.ipv4Enabled = $root.google.protobuf.BoolValue.toObject(message.ipv4Enabled, options); - if (message.privateNetwork != null && message.hasOwnProperty("privateNetwork")) + if (message.ipv4Enabled != null && Object.hasOwnProperty.call(message, "ipv4Enabled")) + object.ipv4Enabled = $root.google.protobuf.BoolValue.toObject(message.ipv4Enabled, options, q + 1); + if (message.privateNetwork != null && Object.hasOwnProperty.call(message, "privateNetwork")) object.privateNetwork = message.privateNetwork; - if (message.requireSsl != null && message.hasOwnProperty("requireSsl")) - object.requireSsl = $root.google.protobuf.BoolValue.toObject(message.requireSsl, options); + if (message.requireSsl != null && Object.hasOwnProperty.call(message, "requireSsl")) + object.requireSsl = $root.google.protobuf.BoolValue.toObject(message.requireSsl, options, q + 1); if (message.authorizedNetworks && message.authorizedNetworks.length) { object.authorizedNetworks = []; for (var j = 0; j < message.authorizedNetworks.length; ++j) - object.authorizedNetworks[j] = $root.google.cloud.sql.v1beta4.AclEntry.toObject(message.authorizedNetworks[j], options); + object.authorizedNetworks[j] = $root.google.cloud.sql.v1beta4.AclEntry.toObject(message.authorizedNetworks[j], options, q + 1); } - if (message.allocatedIpRange != null && message.hasOwnProperty("allocatedIpRange")) + if (message.allocatedIpRange != null && Object.hasOwnProperty.call(message, "allocatedIpRange")) object.allocatedIpRange = message.allocatedIpRange; - if (message.enablePrivatePathForGoogleCloudServices != null && message.hasOwnProperty("enablePrivatePathForGoogleCloudServices")) - object.enablePrivatePathForGoogleCloudServices = $root.google.protobuf.BoolValue.toObject(message.enablePrivatePathForGoogleCloudServices, options); - if (message.sslMode != null && message.hasOwnProperty("sslMode")) + if (message.enablePrivatePathForGoogleCloudServices != null && Object.hasOwnProperty.call(message, "enablePrivatePathForGoogleCloudServices")) + object.enablePrivatePathForGoogleCloudServices = $root.google.protobuf.BoolValue.toObject(message.enablePrivatePathForGoogleCloudServices, options, q + 1); + if (message.sslMode != null && Object.hasOwnProperty.call(message, "sslMode")) object.sslMode = options.enums === String ? $root.google.cloud.sql.v1beta4.IpConfiguration.SslMode[message.sslMode] === undefined ? message.sslMode : $root.google.cloud.sql.v1beta4.IpConfiguration.SslMode[message.sslMode] : message.sslMode; - if (message.pscConfig != null && message.hasOwnProperty("pscConfig")) { - object.pscConfig = $root.google.cloud.sql.v1beta4.PscConfig.toObject(message.pscConfig, options); + if (message.pscConfig != null && Object.hasOwnProperty.call(message, "pscConfig")) { + object.pscConfig = $root.google.cloud.sql.v1beta4.PscConfig.toObject(message.pscConfig, options, q + 1); if (options.oneofs) object._pscConfig = "pscConfig"; } - if (message.serverCaMode != null && message.hasOwnProperty("serverCaMode")) { + if (message.serverCaMode != null && Object.hasOwnProperty.call(message, "serverCaMode")) { object.serverCaMode = options.enums === String ? $root.google.cloud.sql.v1beta4.IpConfiguration.CaMode[message.serverCaMode] === undefined ? message.serverCaMode : $root.google.cloud.sql.v1beta4.IpConfiguration.CaMode[message.serverCaMode] : message.serverCaMode; if (options.oneofs) object._serverCaMode = "serverCaMode"; @@ -121422,12 +130230,12 @@ for (var j = 0; j < message.customSubjectAlternativeNames.length; ++j) object.customSubjectAlternativeNames[j] = message.customSubjectAlternativeNames[j]; } - if (message.serverCaPool != null && message.hasOwnProperty("serverCaPool")) { + if (message.serverCaPool != null && Object.hasOwnProperty.call(message, "serverCaPool")) { object.serverCaPool = message.serverCaPool; if (options.oneofs) object._serverCaPool = "serverCaPool"; } - if (message.serverCertificateRotationMode != null && message.hasOwnProperty("serverCertificateRotationMode")) { + if (message.serverCertificateRotationMode != null && Object.hasOwnProperty.call(message, "serverCertificateRotationMode")) { object.serverCertificateRotationMode = options.enums === String ? $root.google.cloud.sql.v1beta4.IpConfiguration.ServerCertificateRotationMode[message.serverCertificateRotationMode] === undefined ? message.serverCertificateRotationMode : $root.google.cloud.sql.v1beta4.IpConfiguration.ServerCertificateRotationMode[message.serverCertificateRotationMode] : message.serverCertificateRotationMode; if (options.oneofs) object._serverCertificateRotationMode = "serverCertificateRotationMode"; @@ -121526,6 +130334,9 @@ * @property {Array.|null} [allowedConsumerProjects] PscConfig allowedConsumerProjects * @property {Array.|null} [pscAutoConnections] PscConfig pscAutoConnections * @property {string|null} [networkAttachmentUri] PscConfig networkAttachmentUri + * @property {boolean|null} [pscAutoDnsEnabled] PscConfig pscAutoDnsEnabled + * @property {boolean|null} [pscWriteEndpointDnsEnabled] PscConfig pscWriteEndpointDnsEnabled + * @property {boolean|null} [pscAutoConnectionPolicyEnabled] PscConfig pscAutoConnectionPolicyEnabled */ /** @@ -121541,7 +130352,7 @@ this.pscAutoConnections = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -121577,6 +130388,30 @@ */ PscConfig.prototype.networkAttachmentUri = ""; + /** + * PscConfig pscAutoDnsEnabled. + * @member {boolean|null|undefined} pscAutoDnsEnabled + * @memberof google.cloud.sql.v1beta4.PscConfig + * @instance + */ + PscConfig.prototype.pscAutoDnsEnabled = null; + + /** + * PscConfig pscWriteEndpointDnsEnabled. + * @member {boolean|null|undefined} pscWriteEndpointDnsEnabled + * @memberof google.cloud.sql.v1beta4.PscConfig + * @instance + */ + PscConfig.prototype.pscWriteEndpointDnsEnabled = null; + + /** + * PscConfig pscAutoConnectionPolicyEnabled. + * @member {boolean|null|undefined} pscAutoConnectionPolicyEnabled + * @memberof google.cloud.sql.v1beta4.PscConfig + * @instance + */ + PscConfig.prototype.pscAutoConnectionPolicyEnabled = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -121586,6 +130421,24 @@ set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(PscConfig.prototype, "_pscAutoDnsEnabled", { + get: $util.oneOfGetter($oneOfFields = ["pscAutoDnsEnabled"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(PscConfig.prototype, "_pscWriteEndpointDnsEnabled", { + get: $util.oneOfGetter($oneOfFields = ["pscWriteEndpointDnsEnabled"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(PscConfig.prototype, "_pscAutoConnectionPolicyEnabled", { + get: $util.oneOfGetter($oneOfFields = ["pscAutoConnectionPolicyEnabled"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new PscConfig instance using the specified properties. * @function create @@ -121607,9 +130460,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PscConfig.encode = function encode(message, writer) { + PscConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.pscEnabled != null && Object.hasOwnProperty.call(message, "pscEnabled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.pscEnabled); if (message.allowedConsumerProjects != null && message.allowedConsumerProjects.length) @@ -121617,9 +130474,15 @@ writer.uint32(/* id 2, wireType 2 =*/18).string(message.allowedConsumerProjects[i]); if (message.pscAutoConnections != null && message.pscAutoConnections.length) for (var i = 0; i < message.pscAutoConnections.length; ++i) - $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.encode(message.pscAutoConnections[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.encode(message.pscAutoConnections[i], writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.networkAttachmentUri != null && Object.hasOwnProperty.call(message, "networkAttachmentUri")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.networkAttachmentUri); + if (message.pscAutoDnsEnabled != null && Object.hasOwnProperty.call(message, "pscAutoDnsEnabled")) + writer.uint32(/* id 5, wireType 0 =*/40).bool(message.pscAutoDnsEnabled); + if (message.pscWriteEndpointDnsEnabled != null && Object.hasOwnProperty.call(message, "pscWriteEndpointDnsEnabled")) + writer.uint32(/* id 6, wireType 0 =*/48).bool(message.pscWriteEndpointDnsEnabled); + if (message.pscAutoConnectionPolicyEnabled != null && Object.hasOwnProperty.call(message, "pscAutoConnectionPolicyEnabled")) + writer.uint32(/* id 7, wireType 0 =*/56).bool(message.pscAutoConnectionPolicyEnabled); return writer; }; @@ -121633,7 +130496,7 @@ * @returns {$protobuf.Writer} Writer */ PscConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -121647,9 +130510,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PscConfig.decode = function decode(reader, length, error) { + PscConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.PscConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -121669,15 +130536,27 @@ case 3: { if (!(message.pscAutoConnections && message.pscAutoConnections.length)) message.pscAutoConnections = []; - message.pscAutoConnections.push($root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.decode(reader, reader.uint32())); + message.pscAutoConnections.push($root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 4: { message.networkAttachmentUri = reader.string(); break; } + case 5: { + message.pscAutoDnsEnabled = reader.bool(); + break; + } + case 6: { + message.pscWriteEndpointDnsEnabled = reader.bool(); + break; + } + case 7: { + message.pscAutoConnectionPolicyEnabled = reader.bool(); + break; + } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -121708,34 +130587,53 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PscConfig.verify = function verify(message) { + PscConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.pscEnabled != null && message.hasOwnProperty("pscEnabled")) { + if (message.pscEnabled != null && Object.hasOwnProperty.call(message, "pscEnabled")) { properties._pscEnabled = 1; if (typeof message.pscEnabled !== "boolean") return "pscEnabled: boolean expected"; } - if (message.allowedConsumerProjects != null && message.hasOwnProperty("allowedConsumerProjects")) { + if (message.allowedConsumerProjects != null && Object.hasOwnProperty.call(message, "allowedConsumerProjects")) { if (!Array.isArray(message.allowedConsumerProjects)) return "allowedConsumerProjects: array expected"; for (var i = 0; i < message.allowedConsumerProjects.length; ++i) if (!$util.isString(message.allowedConsumerProjects[i])) return "allowedConsumerProjects: string[] expected"; } - if (message.pscAutoConnections != null && message.hasOwnProperty("pscAutoConnections")) { + if (message.pscAutoConnections != null && Object.hasOwnProperty.call(message, "pscAutoConnections")) { if (!Array.isArray(message.pscAutoConnections)) return "pscAutoConnections: array expected"; for (var i = 0; i < message.pscAutoConnections.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.verify(message.pscAutoConnections[i]); + var error = $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.verify(message.pscAutoConnections[i], long + 1); if (error) return "pscAutoConnections." + error; } } - if (message.networkAttachmentUri != null && message.hasOwnProperty("networkAttachmentUri")) + if (message.networkAttachmentUri != null && Object.hasOwnProperty.call(message, "networkAttachmentUri")) if (!$util.isString(message.networkAttachmentUri)) return "networkAttachmentUri: string expected"; + if (message.pscAutoDnsEnabled != null && Object.hasOwnProperty.call(message, "pscAutoDnsEnabled")) { + properties._pscAutoDnsEnabled = 1; + if (typeof message.pscAutoDnsEnabled !== "boolean") + return "pscAutoDnsEnabled: boolean expected"; + } + if (message.pscWriteEndpointDnsEnabled != null && Object.hasOwnProperty.call(message, "pscWriteEndpointDnsEnabled")) { + properties._pscWriteEndpointDnsEnabled = 1; + if (typeof message.pscWriteEndpointDnsEnabled !== "boolean") + return "pscWriteEndpointDnsEnabled: boolean expected"; + } + if (message.pscAutoConnectionPolicyEnabled != null && Object.hasOwnProperty.call(message, "pscAutoConnectionPolicyEnabled")) { + properties._pscAutoConnectionPolicyEnabled = 1; + if (typeof message.pscAutoConnectionPolicyEnabled !== "boolean") + return "pscAutoConnectionPolicyEnabled: boolean expected"; + } return null; }; @@ -121747,9 +130645,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.PscConfig} PscConfig */ - PscConfig.fromObject = function fromObject(object) { + PscConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.PscConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.PscConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.PscConfig(); if (object.pscEnabled != null) message.pscEnabled = Boolean(object.pscEnabled); @@ -121765,13 +130669,19 @@ throw TypeError(".google.cloud.sql.v1beta4.PscConfig.pscAutoConnections: array expected"); message.pscAutoConnections = []; for (var i = 0; i < object.pscAutoConnections.length; ++i) { - if (typeof object.pscAutoConnections[i] !== "object") + if (!$util.isObject(object.pscAutoConnections[i])) throw TypeError(".google.cloud.sql.v1beta4.PscConfig.pscAutoConnections: object expected"); - message.pscAutoConnections[i] = $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.fromObject(object.pscAutoConnections[i]); + message.pscAutoConnections[i] = $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.fromObject(object.pscAutoConnections[i], long + 1); } } if (object.networkAttachmentUri != null) message.networkAttachmentUri = String(object.networkAttachmentUri); + if (object.pscAutoDnsEnabled != null) + message.pscAutoDnsEnabled = Boolean(object.pscAutoDnsEnabled); + if (object.pscWriteEndpointDnsEnabled != null) + message.pscWriteEndpointDnsEnabled = Boolean(object.pscWriteEndpointDnsEnabled); + if (object.pscAutoConnectionPolicyEnabled != null) + message.pscAutoConnectionPolicyEnabled = Boolean(object.pscAutoConnectionPolicyEnabled); return message; }; @@ -121784,9 +130694,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PscConfig.toObject = function toObject(message, options) { + PscConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.allowedConsumerProjects = []; @@ -121794,7 +130708,7 @@ } if (options.defaults) object.networkAttachmentUri = ""; - if (message.pscEnabled != null && message.hasOwnProperty("pscEnabled")) { + if (message.pscEnabled != null && Object.hasOwnProperty.call(message, "pscEnabled")) { object.pscEnabled = message.pscEnabled; if (options.oneofs) object._pscEnabled = "pscEnabled"; @@ -121807,10 +130721,25 @@ if (message.pscAutoConnections && message.pscAutoConnections.length) { object.pscAutoConnections = []; for (var j = 0; j < message.pscAutoConnections.length; ++j) - object.pscAutoConnections[j] = $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.toObject(message.pscAutoConnections[j], options); + object.pscAutoConnections[j] = $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig.toObject(message.pscAutoConnections[j], options, q + 1); } - if (message.networkAttachmentUri != null && message.hasOwnProperty("networkAttachmentUri")) + if (message.networkAttachmentUri != null && Object.hasOwnProperty.call(message, "networkAttachmentUri")) object.networkAttachmentUri = message.networkAttachmentUri; + if (message.pscAutoDnsEnabled != null && Object.hasOwnProperty.call(message, "pscAutoDnsEnabled")) { + object.pscAutoDnsEnabled = message.pscAutoDnsEnabled; + if (options.oneofs) + object._pscAutoDnsEnabled = "pscAutoDnsEnabled"; + } + if (message.pscWriteEndpointDnsEnabled != null && Object.hasOwnProperty.call(message, "pscWriteEndpointDnsEnabled")) { + object.pscWriteEndpointDnsEnabled = message.pscWriteEndpointDnsEnabled; + if (options.oneofs) + object._pscWriteEndpointDnsEnabled = "pscWriteEndpointDnsEnabled"; + } + if (message.pscAutoConnectionPolicyEnabled != null && Object.hasOwnProperty.call(message, "pscAutoConnectionPolicyEnabled")) { + object.pscAutoConnectionPolicyEnabled = message.pscAutoConnectionPolicyEnabled; + if (options.oneofs) + object._pscAutoConnectionPolicyEnabled = "pscAutoConnectionPolicyEnabled"; + } return object; }; @@ -121843,6 +130772,24 @@ return PscConfig; })(); + /** + * AutoDnsStatus enum. + * @name google.cloud.sql.v1beta4.AutoDnsStatus + * @enum {number} + * @property {number} AUTO_DNS_STATUS_UNSPECIFIED=0 AUTO_DNS_STATUS_UNSPECIFIED value + * @property {number} AUTO_DNS_OK=1 AUTO_DNS_OK value + * @property {number} AUTO_DNS_FAILED=2 AUTO_DNS_FAILED value + * @property {number} AUTO_DNS_UNKNOWN=3 AUTO_DNS_UNKNOWN value + */ + v1beta4.AutoDnsStatus = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "AUTO_DNS_STATUS_UNSPECIFIED"] = 0; + values[valuesById[1] = "AUTO_DNS_OK"] = 1; + values[valuesById[2] = "AUTO_DNS_FAILED"] = 2; + values[valuesById[3] = "AUTO_DNS_UNKNOWN"] = 3; + return values; + })(); + v1beta4.PscAutoConnectionConfig = (function() { /** @@ -121854,6 +130801,10 @@ * @property {string|null} [ipAddress] PscAutoConnectionConfig ipAddress * @property {string|null} [status] PscAutoConnectionConfig status * @property {string|null} [consumerNetworkStatus] PscAutoConnectionConfig consumerNetworkStatus + * @property {string|null} [serviceConnectionPolicy] PscAutoConnectionConfig serviceConnectionPolicy + * @property {string|null} [serviceConnectionPolicyCreationResult] PscAutoConnectionConfig serviceConnectionPolicyCreationResult + * @property {google.cloud.sql.v1beta4.AutoDnsStatus|null} [instanceAutoDnsStatus] PscAutoConnectionConfig instanceAutoDnsStatus + * @property {google.cloud.sql.v1beta4.AutoDnsStatus|null} [writeEndpointAutoDnsStatus] PscAutoConnectionConfig writeEndpointAutoDnsStatus */ /** @@ -121867,7 +130818,7 @@ function PscAutoConnectionConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -121911,6 +130862,38 @@ */ PscAutoConnectionConfig.prototype.consumerNetworkStatus = null; + /** + * PscAutoConnectionConfig serviceConnectionPolicy. + * @member {string|null|undefined} serviceConnectionPolicy + * @memberof google.cloud.sql.v1beta4.PscAutoConnectionConfig + * @instance + */ + PscAutoConnectionConfig.prototype.serviceConnectionPolicy = null; + + /** + * PscAutoConnectionConfig serviceConnectionPolicyCreationResult. + * @member {string|null|undefined} serviceConnectionPolicyCreationResult + * @memberof google.cloud.sql.v1beta4.PscAutoConnectionConfig + * @instance + */ + PscAutoConnectionConfig.prototype.serviceConnectionPolicyCreationResult = null; + + /** + * PscAutoConnectionConfig instanceAutoDnsStatus. + * @member {google.cloud.sql.v1beta4.AutoDnsStatus|null|undefined} instanceAutoDnsStatus + * @memberof google.cloud.sql.v1beta4.PscAutoConnectionConfig + * @instance + */ + PscAutoConnectionConfig.prototype.instanceAutoDnsStatus = null; + + /** + * PscAutoConnectionConfig writeEndpointAutoDnsStatus. + * @member {google.cloud.sql.v1beta4.AutoDnsStatus|null|undefined} writeEndpointAutoDnsStatus + * @memberof google.cloud.sql.v1beta4.PscAutoConnectionConfig + * @instance + */ + PscAutoConnectionConfig.prototype.writeEndpointAutoDnsStatus = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -121932,6 +130915,30 @@ set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(PscAutoConnectionConfig.prototype, "_serviceConnectionPolicy", { + get: $util.oneOfGetter($oneOfFields = ["serviceConnectionPolicy"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(PscAutoConnectionConfig.prototype, "_serviceConnectionPolicyCreationResult", { + get: $util.oneOfGetter($oneOfFields = ["serviceConnectionPolicyCreationResult"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(PscAutoConnectionConfig.prototype, "_instanceAutoDnsStatus", { + get: $util.oneOfGetter($oneOfFields = ["instanceAutoDnsStatus"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(PscAutoConnectionConfig.prototype, "_writeEndpointAutoDnsStatus", { + get: $util.oneOfGetter($oneOfFields = ["writeEndpointAutoDnsStatus"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new PscAutoConnectionConfig instance using the specified properties. * @function create @@ -121953,9 +130960,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PscAutoConnectionConfig.encode = function encode(message, writer) { + PscAutoConnectionConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.consumerProject != null && Object.hasOwnProperty.call(message, "consumerProject")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.consumerProject); if (message.consumerNetwork != null && Object.hasOwnProperty.call(message, "consumerNetwork")) @@ -121966,6 +130977,14 @@ writer.uint32(/* id 4, wireType 2 =*/34).string(message.status); if (message.consumerNetworkStatus != null && Object.hasOwnProperty.call(message, "consumerNetworkStatus")) writer.uint32(/* id 5, wireType 2 =*/42).string(message.consumerNetworkStatus); + if (message.serviceConnectionPolicy != null && Object.hasOwnProperty.call(message, "serviceConnectionPolicy")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.serviceConnectionPolicy); + if (message.serviceConnectionPolicyCreationResult != null && Object.hasOwnProperty.call(message, "serviceConnectionPolicyCreationResult")) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.serviceConnectionPolicyCreationResult); + if (message.instanceAutoDnsStatus != null && Object.hasOwnProperty.call(message, "instanceAutoDnsStatus")) + writer.uint32(/* id 8, wireType 0 =*/64).int32(message.instanceAutoDnsStatus); + if (message.writeEndpointAutoDnsStatus != null && Object.hasOwnProperty.call(message, "writeEndpointAutoDnsStatus")) + writer.uint32(/* id 9, wireType 0 =*/72).int32(message.writeEndpointAutoDnsStatus); return writer; }; @@ -121979,7 +130998,7 @@ * @returns {$protobuf.Writer} Writer */ PscAutoConnectionConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -121993,9 +131012,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PscAutoConnectionConfig.decode = function decode(reader, length, error) { + PscAutoConnectionConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -122022,8 +131045,24 @@ message.consumerNetworkStatus = reader.string(); break; } + case 6: { + message.serviceConnectionPolicy = reader.string(); + break; + } + case 7: { + message.serviceConnectionPolicyCreationResult = reader.string(); + break; + } + case 8: { + message.instanceAutoDnsStatus = reader.int32(); + break; + } + case 9: { + message.writeEndpointAutoDnsStatus = reader.int32(); + break; + } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -122054,31 +131093,69 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PscAutoConnectionConfig.verify = function verify(message) { + PscAutoConnectionConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.consumerProject != null && message.hasOwnProperty("consumerProject")) + if (message.consumerProject != null && Object.hasOwnProperty.call(message, "consumerProject")) if (!$util.isString(message.consumerProject)) return "consumerProject: string expected"; - if (message.consumerNetwork != null && message.hasOwnProperty("consumerNetwork")) + if (message.consumerNetwork != null && Object.hasOwnProperty.call(message, "consumerNetwork")) if (!$util.isString(message.consumerNetwork)) return "consumerNetwork: string expected"; - if (message.ipAddress != null && message.hasOwnProperty("ipAddress")) { + if (message.ipAddress != null && Object.hasOwnProperty.call(message, "ipAddress")) { properties._ipAddress = 1; if (!$util.isString(message.ipAddress)) return "ipAddress: string expected"; } - if (message.status != null && message.hasOwnProperty("status")) { + if (message.status != null && Object.hasOwnProperty.call(message, "status")) { properties._status = 1; if (!$util.isString(message.status)) return "status: string expected"; } - if (message.consumerNetworkStatus != null && message.hasOwnProperty("consumerNetworkStatus")) { + if (message.consumerNetworkStatus != null && Object.hasOwnProperty.call(message, "consumerNetworkStatus")) { properties._consumerNetworkStatus = 1; if (!$util.isString(message.consumerNetworkStatus)) return "consumerNetworkStatus: string expected"; } + if (message.serviceConnectionPolicy != null && Object.hasOwnProperty.call(message, "serviceConnectionPolicy")) { + properties._serviceConnectionPolicy = 1; + if (!$util.isString(message.serviceConnectionPolicy)) + return "serviceConnectionPolicy: string expected"; + } + if (message.serviceConnectionPolicyCreationResult != null && Object.hasOwnProperty.call(message, "serviceConnectionPolicyCreationResult")) { + properties._serviceConnectionPolicyCreationResult = 1; + if (!$util.isString(message.serviceConnectionPolicyCreationResult)) + return "serviceConnectionPolicyCreationResult: string expected"; + } + if (message.instanceAutoDnsStatus != null && Object.hasOwnProperty.call(message, "instanceAutoDnsStatus")) { + properties._instanceAutoDnsStatus = 1; + switch (message.instanceAutoDnsStatus) { + default: + return "instanceAutoDnsStatus: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + } + if (message.writeEndpointAutoDnsStatus != null && Object.hasOwnProperty.call(message, "writeEndpointAutoDnsStatus")) { + properties._writeEndpointAutoDnsStatus = 1; + switch (message.writeEndpointAutoDnsStatus) { + default: + return "writeEndpointAutoDnsStatus: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + } return null; }; @@ -122090,9 +131167,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.PscAutoConnectionConfig} PscAutoConnectionConfig */ - PscAutoConnectionConfig.fromObject = function fromObject(object) { + PscAutoConnectionConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.PscAutoConnectionConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.PscAutoConnectionConfig(); if (object.consumerProject != null) message.consumerProject = String(object.consumerProject); @@ -122104,6 +131187,58 @@ message.status = String(object.status); if (object.consumerNetworkStatus != null) message.consumerNetworkStatus = String(object.consumerNetworkStatus); + if (object.serviceConnectionPolicy != null) + message.serviceConnectionPolicy = String(object.serviceConnectionPolicy); + if (object.serviceConnectionPolicyCreationResult != null) + message.serviceConnectionPolicyCreationResult = String(object.serviceConnectionPolicyCreationResult); + switch (object.instanceAutoDnsStatus) { + default: + if (typeof object.instanceAutoDnsStatus === "number") { + message.instanceAutoDnsStatus = object.instanceAutoDnsStatus; + break; + } + break; + case "AUTO_DNS_STATUS_UNSPECIFIED": + case 0: + message.instanceAutoDnsStatus = 0; + break; + case "AUTO_DNS_OK": + case 1: + message.instanceAutoDnsStatus = 1; + break; + case "AUTO_DNS_FAILED": + case 2: + message.instanceAutoDnsStatus = 2; + break; + case "AUTO_DNS_UNKNOWN": + case 3: + message.instanceAutoDnsStatus = 3; + break; + } + switch (object.writeEndpointAutoDnsStatus) { + default: + if (typeof object.writeEndpointAutoDnsStatus === "number") { + message.writeEndpointAutoDnsStatus = object.writeEndpointAutoDnsStatus; + break; + } + break; + case "AUTO_DNS_STATUS_UNSPECIFIED": + case 0: + message.writeEndpointAutoDnsStatus = 0; + break; + case "AUTO_DNS_OK": + case 1: + message.writeEndpointAutoDnsStatus = 1; + break; + case "AUTO_DNS_FAILED": + case 2: + message.writeEndpointAutoDnsStatus = 2; + break; + case "AUTO_DNS_UNKNOWN": + case 3: + message.writeEndpointAutoDnsStatus = 3; + break; + } return message; }; @@ -122116,33 +131251,57 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PscAutoConnectionConfig.toObject = function toObject(message, options) { + PscAutoConnectionConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.consumerProject = ""; object.consumerNetwork = ""; } - if (message.consumerProject != null && message.hasOwnProperty("consumerProject")) + if (message.consumerProject != null && Object.hasOwnProperty.call(message, "consumerProject")) object.consumerProject = message.consumerProject; - if (message.consumerNetwork != null && message.hasOwnProperty("consumerNetwork")) + if (message.consumerNetwork != null && Object.hasOwnProperty.call(message, "consumerNetwork")) object.consumerNetwork = message.consumerNetwork; - if (message.ipAddress != null && message.hasOwnProperty("ipAddress")) { + if (message.ipAddress != null && Object.hasOwnProperty.call(message, "ipAddress")) { object.ipAddress = message.ipAddress; if (options.oneofs) object._ipAddress = "ipAddress"; } - if (message.status != null && message.hasOwnProperty("status")) { + if (message.status != null && Object.hasOwnProperty.call(message, "status")) { object.status = message.status; if (options.oneofs) object._status = "status"; } - if (message.consumerNetworkStatus != null && message.hasOwnProperty("consumerNetworkStatus")) { + if (message.consumerNetworkStatus != null && Object.hasOwnProperty.call(message, "consumerNetworkStatus")) { object.consumerNetworkStatus = message.consumerNetworkStatus; if (options.oneofs) object._consumerNetworkStatus = "consumerNetworkStatus"; } + if (message.serviceConnectionPolicy != null && Object.hasOwnProperty.call(message, "serviceConnectionPolicy")) { + object.serviceConnectionPolicy = message.serviceConnectionPolicy; + if (options.oneofs) + object._serviceConnectionPolicy = "serviceConnectionPolicy"; + } + if (message.serviceConnectionPolicyCreationResult != null && Object.hasOwnProperty.call(message, "serviceConnectionPolicyCreationResult")) { + object.serviceConnectionPolicyCreationResult = message.serviceConnectionPolicyCreationResult; + if (options.oneofs) + object._serviceConnectionPolicyCreationResult = "serviceConnectionPolicyCreationResult"; + } + if (message.instanceAutoDnsStatus != null && Object.hasOwnProperty.call(message, "instanceAutoDnsStatus")) { + object.instanceAutoDnsStatus = options.enums === String ? $root.google.cloud.sql.v1beta4.AutoDnsStatus[message.instanceAutoDnsStatus] === undefined ? message.instanceAutoDnsStatus : $root.google.cloud.sql.v1beta4.AutoDnsStatus[message.instanceAutoDnsStatus] : message.instanceAutoDnsStatus; + if (options.oneofs) + object._instanceAutoDnsStatus = "instanceAutoDnsStatus"; + } + if (message.writeEndpointAutoDnsStatus != null && Object.hasOwnProperty.call(message, "writeEndpointAutoDnsStatus")) { + object.writeEndpointAutoDnsStatus = options.enums === String ? $root.google.cloud.sql.v1beta4.AutoDnsStatus[message.writeEndpointAutoDnsStatus] === undefined ? message.writeEndpointAutoDnsStatus : $root.google.cloud.sql.v1beta4.AutoDnsStatus[message.writeEndpointAutoDnsStatus] : message.writeEndpointAutoDnsStatus; + if (options.oneofs) + object._writeEndpointAutoDnsStatus = "writeEndpointAutoDnsStatus"; + } return object; }; @@ -122197,7 +131356,7 @@ function IpMapping(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -122246,15 +131405,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - IpMapping.encode = function encode(message, writer) { + IpMapping.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.type != null && Object.hasOwnProperty.call(message, "type")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type); if (message.ipAddress != null && Object.hasOwnProperty.call(message, "ipAddress")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.ipAddress); if (message.timeToRetire != null && Object.hasOwnProperty.call(message, "timeToRetire")) - $root.google.protobuf.Timestamp.encode(message.timeToRetire, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.timeToRetire, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -122268,7 +131431,7 @@ * @returns {$protobuf.Writer} Writer */ IpMapping.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -122282,9 +131445,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - IpMapping.decode = function decode(reader, length, error) { + IpMapping.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.IpMapping(); while (reader.pos < end) { var tag = reader.uint32(); @@ -122300,11 +131467,11 @@ break; } case 3: { - message.timeToRetire = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.timeToRetire = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -122335,10 +131502,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - IpMapping.verify = function verify(message) { + IpMapping.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.type != null && message.hasOwnProperty("type")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.type != null && Object.hasOwnProperty.call(message, "type")) switch (message.type) { default: return "type: enum value expected"; @@ -122349,11 +131520,11 @@ case 4: break; } - if (message.ipAddress != null && message.hasOwnProperty("ipAddress")) + if (message.ipAddress != null && Object.hasOwnProperty.call(message, "ipAddress")) if (!$util.isString(message.ipAddress)) return "ipAddress: string expected"; - if (message.timeToRetire != null && message.hasOwnProperty("timeToRetire")) { - var error = $root.google.protobuf.Timestamp.verify(message.timeToRetire); + if (message.timeToRetire != null && Object.hasOwnProperty.call(message, "timeToRetire")) { + var error = $root.google.protobuf.Timestamp.verify(message.timeToRetire, long + 1); if (error) return "timeToRetire." + error; } @@ -122368,9 +131539,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.IpMapping} IpMapping */ - IpMapping.fromObject = function fromObject(object) { + IpMapping.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.IpMapping) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.IpMapping: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.IpMapping(); switch (object.type) { default: @@ -122403,9 +131580,9 @@ if (object.ipAddress != null) message.ipAddress = String(object.ipAddress); if (object.timeToRetire != null) { - if (typeof object.timeToRetire !== "object") + if (!$util.isObject(object.timeToRetire)) throw TypeError(".google.cloud.sql.v1beta4.IpMapping.timeToRetire: object expected"); - message.timeToRetire = $root.google.protobuf.Timestamp.fromObject(object.timeToRetire); + message.timeToRetire = $root.google.protobuf.Timestamp.fromObject(object.timeToRetire, long + 1); } return message; }; @@ -122419,21 +131596,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - IpMapping.toObject = function toObject(message, options) { + IpMapping.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.type = options.enums === String ? "SQL_IP_ADDRESS_TYPE_UNSPECIFIED" : 0; object.ipAddress = ""; object.timeToRetire = null; } - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlIpAddressType[message.type] === undefined ? message.type : $root.google.cloud.sql.v1beta4.SqlIpAddressType[message.type] : message.type; - if (message.ipAddress != null && message.hasOwnProperty("ipAddress")) + if (message.ipAddress != null && Object.hasOwnProperty.call(message, "ipAddress")) object.ipAddress = message.ipAddress; - if (message.timeToRetire != null && message.hasOwnProperty("timeToRetire")) - object.timeToRetire = $root.google.protobuf.Timestamp.toObject(message.timeToRetire, options); + if (message.timeToRetire != null && Object.hasOwnProperty.call(message, "timeToRetire")) + object.timeToRetire = $root.google.protobuf.Timestamp.toObject(message.timeToRetire, options, q + 1); return object; }; @@ -122489,7 +131670,7 @@ function LocationPreference(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -122546,9 +131727,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - LocationPreference.encode = function encode(message, writer) { + LocationPreference.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.followGaeApplication != null && Object.hasOwnProperty.call(message, "followGaeApplication")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.followGaeApplication); if (message.zone != null && Object.hasOwnProperty.call(message, "zone")) @@ -122570,7 +131755,7 @@ * @returns {$protobuf.Writer} Writer */ LocationPreference.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -122584,9 +131769,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LocationPreference.decode = function decode(reader, length, error) { + LocationPreference.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.LocationPreference(); while (reader.pos < end) { var tag = reader.uint32(); @@ -122610,7 +131799,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -122641,19 +131830,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LocationPreference.verify = function verify(message) { + LocationPreference.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.followGaeApplication != null && message.hasOwnProperty("followGaeApplication")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.followGaeApplication != null && Object.hasOwnProperty.call(message, "followGaeApplication")) if (!$util.isString(message.followGaeApplication)) return "followGaeApplication: string expected"; - if (message.zone != null && message.hasOwnProperty("zone")) + if (message.zone != null && Object.hasOwnProperty.call(message, "zone")) if (!$util.isString(message.zone)) return "zone: string expected"; - if (message.secondaryZone != null && message.hasOwnProperty("secondaryZone")) + if (message.secondaryZone != null && Object.hasOwnProperty.call(message, "secondaryZone")) if (!$util.isString(message.secondaryZone)) return "secondaryZone: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -122667,9 +131860,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.LocationPreference} LocationPreference */ - LocationPreference.fromObject = function fromObject(object) { + LocationPreference.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.LocationPreference) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.LocationPreference: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.LocationPreference(); if (object.followGaeApplication != null) message.followGaeApplication = String(object.followGaeApplication); @@ -122691,9 +131890,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - LocationPreference.toObject = function toObject(message, options) { + LocationPreference.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.followGaeApplication = ""; @@ -122701,13 +131904,13 @@ object.kind = ""; object.secondaryZone = ""; } - if (message.followGaeApplication != null && message.hasOwnProperty("followGaeApplication")) + if (message.followGaeApplication != null && Object.hasOwnProperty.call(message, "followGaeApplication")) object.followGaeApplication = message.followGaeApplication; - if (message.zone != null && message.hasOwnProperty("zone")) + if (message.zone != null && Object.hasOwnProperty.call(message, "zone")) object.zone = message.zone; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.secondaryZone != null && message.hasOwnProperty("secondaryZone")) + if (message.secondaryZone != null && Object.hasOwnProperty.call(message, "secondaryZone")) object.secondaryZone = message.secondaryZone; return object; }; @@ -122764,7 +131967,7 @@ function MaintenanceWindow(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -122821,13 +132024,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MaintenanceWindow.encode = function encode(message, writer) { + MaintenanceWindow.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.hour != null && Object.hasOwnProperty.call(message, "hour")) - $root.google.protobuf.Int32Value.encode(message.hour, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.hour, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.day != null && Object.hasOwnProperty.call(message, "day")) - $root.google.protobuf.Int32Value.encode(message.day, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.day, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.updateTrack != null && Object.hasOwnProperty.call(message, "updateTrack")) writer.uint32(/* id 3, wireType 0 =*/24).int32(message.updateTrack); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -122845,7 +132052,7 @@ * @returns {$protobuf.Writer} Writer */ MaintenanceWindow.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -122859,9 +132066,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MaintenanceWindow.decode = function decode(reader, length, error) { + MaintenanceWindow.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.MaintenanceWindow(); while (reader.pos < end) { var tag = reader.uint32(); @@ -122869,11 +132080,11 @@ break; switch (tag >>> 3) { case 1: { - message.hour = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.hour = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.day = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.day = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -122885,7 +132096,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -122916,20 +132127,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MaintenanceWindow.verify = function verify(message) { + MaintenanceWindow.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.hour != null && message.hasOwnProperty("hour")) { - var error = $root.google.protobuf.Int32Value.verify(message.hour); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.hour != null && Object.hasOwnProperty.call(message, "hour")) { + var error = $root.google.protobuf.Int32Value.verify(message.hour, long + 1); if (error) return "hour." + error; } - if (message.day != null && message.hasOwnProperty("day")) { - var error = $root.google.protobuf.Int32Value.verify(message.day); + if (message.day != null && Object.hasOwnProperty.call(message, "day")) { + var error = $root.google.protobuf.Int32Value.verify(message.day, long + 1); if (error) return "day." + error; } - if (message.updateTrack != null && message.hasOwnProperty("updateTrack")) + if (message.updateTrack != null && Object.hasOwnProperty.call(message, "updateTrack")) switch (message.updateTrack) { default: return "updateTrack: enum value expected"; @@ -122939,7 +132154,7 @@ case 3: break; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -122953,19 +132168,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.MaintenanceWindow} MaintenanceWindow */ - MaintenanceWindow.fromObject = function fromObject(object) { + MaintenanceWindow.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.MaintenanceWindow) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.MaintenanceWindow: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.MaintenanceWindow(); if (object.hour != null) { - if (typeof object.hour !== "object") + if (!$util.isObject(object.hour)) throw TypeError(".google.cloud.sql.v1beta4.MaintenanceWindow.hour: object expected"); - message.hour = $root.google.protobuf.Int32Value.fromObject(object.hour); + message.hour = $root.google.protobuf.Int32Value.fromObject(object.hour, long + 1); } if (object.day != null) { - if (typeof object.day !== "object") + if (!$util.isObject(object.day)) throw TypeError(".google.cloud.sql.v1beta4.MaintenanceWindow.day: object expected"); - message.day = $root.google.protobuf.Int32Value.fromObject(object.day); + message.day = $root.google.protobuf.Int32Value.fromObject(object.day, long + 1); } switch (object.updateTrack) { default: @@ -123005,9 +132226,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MaintenanceWindow.toObject = function toObject(message, options) { + MaintenanceWindow.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.hour = null; @@ -123015,13 +132240,13 @@ object.updateTrack = options.enums === String ? "SQL_UPDATE_TRACK_UNSPECIFIED" : 0; object.kind = ""; } - if (message.hour != null && message.hasOwnProperty("hour")) - object.hour = $root.google.protobuf.Int32Value.toObject(message.hour, options); - if (message.day != null && message.hasOwnProperty("day")) - object.day = $root.google.protobuf.Int32Value.toObject(message.day, options); - if (message.updateTrack != null && message.hasOwnProperty("updateTrack")) + if (message.hour != null && Object.hasOwnProperty.call(message, "hour")) + object.hour = $root.google.protobuf.Int32Value.toObject(message.hour, options, q + 1); + if (message.day != null && Object.hasOwnProperty.call(message, "day")) + object.day = $root.google.protobuf.Int32Value.toObject(message.day, options, q + 1); + if (message.updateTrack != null && Object.hasOwnProperty.call(message, "updateTrack")) object.updateTrack = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlUpdateTrack[message.updateTrack] === undefined ? message.updateTrack : $root.google.cloud.sql.v1beta4.SqlUpdateTrack[message.updateTrack] : message.updateTrack; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -123077,7 +132302,7 @@ function DenyMaintenancePeriod(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -123126,9 +132351,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DenyMaintenancePeriod.encode = function encode(message, writer) { + DenyMaintenancePeriod.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.startDate != null && Object.hasOwnProperty.call(message, "startDate")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.startDate); if (message.endDate != null && Object.hasOwnProperty.call(message, "endDate")) @@ -123148,7 +132377,7 @@ * @returns {$protobuf.Writer} Writer */ DenyMaintenancePeriod.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -123162,9 +132391,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DenyMaintenancePeriod.decode = function decode(reader, length, error) { + DenyMaintenancePeriod.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DenyMaintenancePeriod(); while (reader.pos < end) { var tag = reader.uint32(); @@ -123184,7 +132417,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -123215,16 +132448,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DenyMaintenancePeriod.verify = function verify(message) { + DenyMaintenancePeriod.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.startDate != null && message.hasOwnProperty("startDate")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.startDate != null && Object.hasOwnProperty.call(message, "startDate")) if (!$util.isString(message.startDate)) return "startDate: string expected"; - if (message.endDate != null && message.hasOwnProperty("endDate")) + if (message.endDate != null && Object.hasOwnProperty.call(message, "endDate")) if (!$util.isString(message.endDate)) return "endDate: string expected"; - if (message.time != null && message.hasOwnProperty("time")) + if (message.time != null && Object.hasOwnProperty.call(message, "time")) if (!$util.isString(message.time)) return "time: string expected"; return null; @@ -123238,9 +132475,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.DenyMaintenancePeriod} DenyMaintenancePeriod */ - DenyMaintenancePeriod.fromObject = function fromObject(object) { + DenyMaintenancePeriod.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.DenyMaintenancePeriod) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DenyMaintenancePeriod: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.DenyMaintenancePeriod(); if (object.startDate != null) message.startDate = String(object.startDate); @@ -123260,20 +132503,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DenyMaintenancePeriod.toObject = function toObject(message, options) { + DenyMaintenancePeriod.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.startDate = ""; object.endDate = ""; object.time = ""; } - if (message.startDate != null && message.hasOwnProperty("startDate")) + if (message.startDate != null && Object.hasOwnProperty.call(message, "startDate")) object.startDate = message.startDate; - if (message.endDate != null && message.hasOwnProperty("endDate")) + if (message.endDate != null && Object.hasOwnProperty.call(message, "endDate")) object.endDate = message.endDate; - if (message.time != null && message.hasOwnProperty("time")) + if (message.time != null && Object.hasOwnProperty.call(message, "time")) object.time = message.time; return object; }; @@ -123332,7 +132579,7 @@ function InsightsConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -123405,9 +132652,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - InsightsConfig.encode = function encode(message, writer) { + InsightsConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.queryInsightsEnabled != null && Object.hasOwnProperty.call(message, "queryInsightsEnabled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.queryInsightsEnabled); if (message.recordClientAddress != null && Object.hasOwnProperty.call(message, "recordClientAddress")) @@ -123415,11 +132666,11 @@ if (message.recordApplicationTags != null && Object.hasOwnProperty.call(message, "recordApplicationTags")) writer.uint32(/* id 3, wireType 0 =*/24).bool(message.recordApplicationTags); if (message.queryStringLength != null && Object.hasOwnProperty.call(message, "queryStringLength")) - $root.google.protobuf.Int32Value.encode(message.queryStringLength, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.queryStringLength, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.queryPlansPerMinute != null && Object.hasOwnProperty.call(message, "queryPlansPerMinute")) - $root.google.protobuf.Int32Value.encode(message.queryPlansPerMinute, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.queryPlansPerMinute, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.enhancedQueryInsightsEnabled != null && Object.hasOwnProperty.call(message, "enhancedQueryInsightsEnabled")) - $root.google.protobuf.BoolValue.encode(message.enhancedQueryInsightsEnabled, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.enhancedQueryInsightsEnabled, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); return writer; }; @@ -123433,7 +132684,7 @@ * @returns {$protobuf.Writer} Writer */ InsightsConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -123447,9 +132698,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InsightsConfig.decode = function decode(reader, length, error) { + InsightsConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.InsightsConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -123469,19 +132724,19 @@ break; } case 4: { - message.queryStringLength = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.queryStringLength = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.queryPlansPerMinute = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.queryPlansPerMinute = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.enhancedQueryInsightsEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.enhancedQueryInsightsEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -123512,30 +132767,34 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InsightsConfig.verify = function verify(message) { + InsightsConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.queryInsightsEnabled != null && message.hasOwnProperty("queryInsightsEnabled")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.queryInsightsEnabled != null && Object.hasOwnProperty.call(message, "queryInsightsEnabled")) if (typeof message.queryInsightsEnabled !== "boolean") return "queryInsightsEnabled: boolean expected"; - if (message.recordClientAddress != null && message.hasOwnProperty("recordClientAddress")) + if (message.recordClientAddress != null && Object.hasOwnProperty.call(message, "recordClientAddress")) if (typeof message.recordClientAddress !== "boolean") return "recordClientAddress: boolean expected"; - if (message.recordApplicationTags != null && message.hasOwnProperty("recordApplicationTags")) + if (message.recordApplicationTags != null && Object.hasOwnProperty.call(message, "recordApplicationTags")) if (typeof message.recordApplicationTags !== "boolean") return "recordApplicationTags: boolean expected"; - if (message.queryStringLength != null && message.hasOwnProperty("queryStringLength")) { - var error = $root.google.protobuf.Int32Value.verify(message.queryStringLength); + if (message.queryStringLength != null && Object.hasOwnProperty.call(message, "queryStringLength")) { + var error = $root.google.protobuf.Int32Value.verify(message.queryStringLength, long + 1); if (error) return "queryStringLength." + error; } - if (message.queryPlansPerMinute != null && message.hasOwnProperty("queryPlansPerMinute")) { - var error = $root.google.protobuf.Int32Value.verify(message.queryPlansPerMinute); + if (message.queryPlansPerMinute != null && Object.hasOwnProperty.call(message, "queryPlansPerMinute")) { + var error = $root.google.protobuf.Int32Value.verify(message.queryPlansPerMinute, long + 1); if (error) return "queryPlansPerMinute." + error; } - if (message.enhancedQueryInsightsEnabled != null && message.hasOwnProperty("enhancedQueryInsightsEnabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.enhancedQueryInsightsEnabled); + if (message.enhancedQueryInsightsEnabled != null && Object.hasOwnProperty.call(message, "enhancedQueryInsightsEnabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.enhancedQueryInsightsEnabled, long + 1); if (error) return "enhancedQueryInsightsEnabled." + error; } @@ -123550,9 +132809,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.InsightsConfig} InsightsConfig */ - InsightsConfig.fromObject = function fromObject(object) { + InsightsConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.InsightsConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.InsightsConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.InsightsConfig(); if (object.queryInsightsEnabled != null) message.queryInsightsEnabled = Boolean(object.queryInsightsEnabled); @@ -123561,19 +132826,19 @@ if (object.recordApplicationTags != null) message.recordApplicationTags = Boolean(object.recordApplicationTags); if (object.queryStringLength != null) { - if (typeof object.queryStringLength !== "object") + if (!$util.isObject(object.queryStringLength)) throw TypeError(".google.cloud.sql.v1beta4.InsightsConfig.queryStringLength: object expected"); - message.queryStringLength = $root.google.protobuf.Int32Value.fromObject(object.queryStringLength); + message.queryStringLength = $root.google.protobuf.Int32Value.fromObject(object.queryStringLength, long + 1); } if (object.queryPlansPerMinute != null) { - if (typeof object.queryPlansPerMinute !== "object") + if (!$util.isObject(object.queryPlansPerMinute)) throw TypeError(".google.cloud.sql.v1beta4.InsightsConfig.queryPlansPerMinute: object expected"); - message.queryPlansPerMinute = $root.google.protobuf.Int32Value.fromObject(object.queryPlansPerMinute); + message.queryPlansPerMinute = $root.google.protobuf.Int32Value.fromObject(object.queryPlansPerMinute, long + 1); } if (object.enhancedQueryInsightsEnabled != null) { - if (typeof object.enhancedQueryInsightsEnabled !== "object") + if (!$util.isObject(object.enhancedQueryInsightsEnabled)) throw TypeError(".google.cloud.sql.v1beta4.InsightsConfig.enhancedQueryInsightsEnabled: object expected"); - message.enhancedQueryInsightsEnabled = $root.google.protobuf.BoolValue.fromObject(object.enhancedQueryInsightsEnabled); + message.enhancedQueryInsightsEnabled = $root.google.protobuf.BoolValue.fromObject(object.enhancedQueryInsightsEnabled, long + 1); } return message; }; @@ -123587,9 +132852,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - InsightsConfig.toObject = function toObject(message, options) { + InsightsConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.queryInsightsEnabled = false; @@ -123599,18 +132868,18 @@ object.queryPlansPerMinute = null; object.enhancedQueryInsightsEnabled = null; } - if (message.queryInsightsEnabled != null && message.hasOwnProperty("queryInsightsEnabled")) + if (message.queryInsightsEnabled != null && Object.hasOwnProperty.call(message, "queryInsightsEnabled")) object.queryInsightsEnabled = message.queryInsightsEnabled; - if (message.recordClientAddress != null && message.hasOwnProperty("recordClientAddress")) + if (message.recordClientAddress != null && Object.hasOwnProperty.call(message, "recordClientAddress")) object.recordClientAddress = message.recordClientAddress; - if (message.recordApplicationTags != null && message.hasOwnProperty("recordApplicationTags")) + if (message.recordApplicationTags != null && Object.hasOwnProperty.call(message, "recordApplicationTags")) object.recordApplicationTags = message.recordApplicationTags; - if (message.queryStringLength != null && message.hasOwnProperty("queryStringLength")) - object.queryStringLength = $root.google.protobuf.Int32Value.toObject(message.queryStringLength, options); - if (message.queryPlansPerMinute != null && message.hasOwnProperty("queryPlansPerMinute")) - object.queryPlansPerMinute = $root.google.protobuf.Int32Value.toObject(message.queryPlansPerMinute, options); - if (message.enhancedQueryInsightsEnabled != null && message.hasOwnProperty("enhancedQueryInsightsEnabled")) - object.enhancedQueryInsightsEnabled = $root.google.protobuf.BoolValue.toObject(message.enhancedQueryInsightsEnabled, options); + if (message.queryStringLength != null && Object.hasOwnProperty.call(message, "queryStringLength")) + object.queryStringLength = $root.google.protobuf.Int32Value.toObject(message.queryStringLength, options, q + 1); + if (message.queryPlansPerMinute != null && Object.hasOwnProperty.call(message, "queryPlansPerMinute")) + object.queryPlansPerMinute = $root.google.protobuf.Int32Value.toObject(message.queryPlansPerMinute, options, q + 1); + if (message.enhancedQueryInsightsEnabled != null && Object.hasOwnProperty.call(message, "enhancedQueryInsightsEnabled")) + object.enhancedQueryInsightsEnabled = $root.google.protobuf.BoolValue.toObject(message.enhancedQueryInsightsEnabled, options, q + 1); return object; }; @@ -123673,7 +132942,7 @@ function MySqlReplicaConfiguration(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -123786,9 +133055,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MySqlReplicaConfiguration.encode = function encode(message, writer) { + MySqlReplicaConfiguration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.dumpFilePath != null && Object.hasOwnProperty.call(message, "dumpFilePath")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.dumpFilePath); if (message.username != null && Object.hasOwnProperty.call(message, "username")) @@ -123796,9 +133069,9 @@ if (message.password != null && Object.hasOwnProperty.call(message, "password")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.password); if (message.connectRetryInterval != null && Object.hasOwnProperty.call(message, "connectRetryInterval")) - $root.google.protobuf.Int32Value.encode(message.connectRetryInterval, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.connectRetryInterval, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.masterHeartbeatPeriod != null && Object.hasOwnProperty.call(message, "masterHeartbeatPeriod")) - $root.google.protobuf.Int64Value.encode(message.masterHeartbeatPeriod, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.masterHeartbeatPeriod, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.caCertificate != null && Object.hasOwnProperty.call(message, "caCertificate")) writer.uint32(/* id 6, wireType 2 =*/50).string(message.caCertificate); if (message.clientCertificate != null && Object.hasOwnProperty.call(message, "clientCertificate")) @@ -123808,7 +133081,7 @@ if (message.sslCipher != null && Object.hasOwnProperty.call(message, "sslCipher")) writer.uint32(/* id 9, wireType 2 =*/74).string(message.sslCipher); if (message.verifyServerCertificate != null && Object.hasOwnProperty.call(message, "verifyServerCertificate")) - $root.google.protobuf.BoolValue.encode(message.verifyServerCertificate, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.verifyServerCertificate, writer.uint32(/* id 10, wireType 2 =*/82).fork(), q + 1).ldelim(); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 11, wireType 2 =*/90).string(message.kind); return writer; @@ -123824,7 +133097,7 @@ * @returns {$protobuf.Writer} Writer */ MySqlReplicaConfiguration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -123838,9 +133111,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MySqlReplicaConfiguration.decode = function decode(reader, length, error) { + MySqlReplicaConfiguration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.MySqlReplicaConfiguration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -123860,11 +133137,11 @@ break; } case 4: { - message.connectRetryInterval = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.connectRetryInterval = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.masterHeartbeatPeriod = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.masterHeartbeatPeriod = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { @@ -123884,7 +133161,7 @@ break; } case 10: { - message.verifyServerCertificate = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.verifyServerCertificate = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { @@ -123892,7 +133169,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -123923,46 +133200,50 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MySqlReplicaConfiguration.verify = function verify(message) { + MySqlReplicaConfiguration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.dumpFilePath != null && message.hasOwnProperty("dumpFilePath")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.dumpFilePath != null && Object.hasOwnProperty.call(message, "dumpFilePath")) if (!$util.isString(message.dumpFilePath)) return "dumpFilePath: string expected"; - if (message.username != null && message.hasOwnProperty("username")) + if (message.username != null && Object.hasOwnProperty.call(message, "username")) if (!$util.isString(message.username)) return "username: string expected"; - if (message.password != null && message.hasOwnProperty("password")) + if (message.password != null && Object.hasOwnProperty.call(message, "password")) if (!$util.isString(message.password)) return "password: string expected"; - if (message.connectRetryInterval != null && message.hasOwnProperty("connectRetryInterval")) { - var error = $root.google.protobuf.Int32Value.verify(message.connectRetryInterval); + if (message.connectRetryInterval != null && Object.hasOwnProperty.call(message, "connectRetryInterval")) { + var error = $root.google.protobuf.Int32Value.verify(message.connectRetryInterval, long + 1); if (error) return "connectRetryInterval." + error; } - if (message.masterHeartbeatPeriod != null && message.hasOwnProperty("masterHeartbeatPeriod")) { - var error = $root.google.protobuf.Int64Value.verify(message.masterHeartbeatPeriod); + if (message.masterHeartbeatPeriod != null && Object.hasOwnProperty.call(message, "masterHeartbeatPeriod")) { + var error = $root.google.protobuf.Int64Value.verify(message.masterHeartbeatPeriod, long + 1); if (error) return "masterHeartbeatPeriod." + error; } - if (message.caCertificate != null && message.hasOwnProperty("caCertificate")) + if (message.caCertificate != null && Object.hasOwnProperty.call(message, "caCertificate")) if (!$util.isString(message.caCertificate)) return "caCertificate: string expected"; - if (message.clientCertificate != null && message.hasOwnProperty("clientCertificate")) + if (message.clientCertificate != null && Object.hasOwnProperty.call(message, "clientCertificate")) if (!$util.isString(message.clientCertificate)) return "clientCertificate: string expected"; - if (message.clientKey != null && message.hasOwnProperty("clientKey")) + if (message.clientKey != null && Object.hasOwnProperty.call(message, "clientKey")) if (!$util.isString(message.clientKey)) return "clientKey: string expected"; - if (message.sslCipher != null && message.hasOwnProperty("sslCipher")) + if (message.sslCipher != null && Object.hasOwnProperty.call(message, "sslCipher")) if (!$util.isString(message.sslCipher)) return "sslCipher: string expected"; - if (message.verifyServerCertificate != null && message.hasOwnProperty("verifyServerCertificate")) { - var error = $root.google.protobuf.BoolValue.verify(message.verifyServerCertificate); + if (message.verifyServerCertificate != null && Object.hasOwnProperty.call(message, "verifyServerCertificate")) { + var error = $root.google.protobuf.BoolValue.verify(message.verifyServerCertificate, long + 1); if (error) return "verifyServerCertificate." + error; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -123976,9 +133257,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.MySqlReplicaConfiguration} MySqlReplicaConfiguration */ - MySqlReplicaConfiguration.fromObject = function fromObject(object) { + MySqlReplicaConfiguration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.MySqlReplicaConfiguration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.MySqlReplicaConfiguration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.MySqlReplicaConfiguration(); if (object.dumpFilePath != null) message.dumpFilePath = String(object.dumpFilePath); @@ -123987,14 +133274,14 @@ if (object.password != null) message.password = String(object.password); if (object.connectRetryInterval != null) { - if (typeof object.connectRetryInterval !== "object") + if (!$util.isObject(object.connectRetryInterval)) throw TypeError(".google.cloud.sql.v1beta4.MySqlReplicaConfiguration.connectRetryInterval: object expected"); - message.connectRetryInterval = $root.google.protobuf.Int32Value.fromObject(object.connectRetryInterval); + message.connectRetryInterval = $root.google.protobuf.Int32Value.fromObject(object.connectRetryInterval, long + 1); } if (object.masterHeartbeatPeriod != null) { - if (typeof object.masterHeartbeatPeriod !== "object") + if (!$util.isObject(object.masterHeartbeatPeriod)) throw TypeError(".google.cloud.sql.v1beta4.MySqlReplicaConfiguration.masterHeartbeatPeriod: object expected"); - message.masterHeartbeatPeriod = $root.google.protobuf.Int64Value.fromObject(object.masterHeartbeatPeriod); + message.masterHeartbeatPeriod = $root.google.protobuf.Int64Value.fromObject(object.masterHeartbeatPeriod, long + 1); } if (object.caCertificate != null) message.caCertificate = String(object.caCertificate); @@ -124005,9 +133292,9 @@ if (object.sslCipher != null) message.sslCipher = String(object.sslCipher); if (object.verifyServerCertificate != null) { - if (typeof object.verifyServerCertificate !== "object") + if (!$util.isObject(object.verifyServerCertificate)) throw TypeError(".google.cloud.sql.v1beta4.MySqlReplicaConfiguration.verifyServerCertificate: object expected"); - message.verifyServerCertificate = $root.google.protobuf.BoolValue.fromObject(object.verifyServerCertificate); + message.verifyServerCertificate = $root.google.protobuf.BoolValue.fromObject(object.verifyServerCertificate, long + 1); } if (object.kind != null) message.kind = String(object.kind); @@ -124023,9 +133310,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MySqlReplicaConfiguration.toObject = function toObject(message, options) { + MySqlReplicaConfiguration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.dumpFilePath = ""; @@ -124040,27 +133331,27 @@ object.verifyServerCertificate = null; object.kind = ""; } - if (message.dumpFilePath != null && message.hasOwnProperty("dumpFilePath")) + if (message.dumpFilePath != null && Object.hasOwnProperty.call(message, "dumpFilePath")) object.dumpFilePath = message.dumpFilePath; - if (message.username != null && message.hasOwnProperty("username")) + if (message.username != null && Object.hasOwnProperty.call(message, "username")) object.username = message.username; - if (message.password != null && message.hasOwnProperty("password")) + if (message.password != null && Object.hasOwnProperty.call(message, "password")) object.password = message.password; - if (message.connectRetryInterval != null && message.hasOwnProperty("connectRetryInterval")) - object.connectRetryInterval = $root.google.protobuf.Int32Value.toObject(message.connectRetryInterval, options); - if (message.masterHeartbeatPeriod != null && message.hasOwnProperty("masterHeartbeatPeriod")) - object.masterHeartbeatPeriod = $root.google.protobuf.Int64Value.toObject(message.masterHeartbeatPeriod, options); - if (message.caCertificate != null && message.hasOwnProperty("caCertificate")) + if (message.connectRetryInterval != null && Object.hasOwnProperty.call(message, "connectRetryInterval")) + object.connectRetryInterval = $root.google.protobuf.Int32Value.toObject(message.connectRetryInterval, options, q + 1); + if (message.masterHeartbeatPeriod != null && Object.hasOwnProperty.call(message, "masterHeartbeatPeriod")) + object.masterHeartbeatPeriod = $root.google.protobuf.Int64Value.toObject(message.masterHeartbeatPeriod, options, q + 1); + if (message.caCertificate != null && Object.hasOwnProperty.call(message, "caCertificate")) object.caCertificate = message.caCertificate; - if (message.clientCertificate != null && message.hasOwnProperty("clientCertificate")) + if (message.clientCertificate != null && Object.hasOwnProperty.call(message, "clientCertificate")) object.clientCertificate = message.clientCertificate; - if (message.clientKey != null && message.hasOwnProperty("clientKey")) + if (message.clientKey != null && Object.hasOwnProperty.call(message, "clientKey")) object.clientKey = message.clientKey; - if (message.sslCipher != null && message.hasOwnProperty("sslCipher")) + if (message.sslCipher != null && Object.hasOwnProperty.call(message, "sslCipher")) object.sslCipher = message.sslCipher; - if (message.verifyServerCertificate != null && message.hasOwnProperty("verifyServerCertificate")) - object.verifyServerCertificate = $root.google.protobuf.BoolValue.toObject(message.verifyServerCertificate, options); - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.verifyServerCertificate != null && Object.hasOwnProperty.call(message, "verifyServerCertificate")) + object.verifyServerCertificate = $root.google.protobuf.BoolValue.toObject(message.verifyServerCertificate, options, q + 1); + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -124114,7 +133405,7 @@ function SelectedObjects(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -124147,9 +133438,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SelectedObjects.encode = function encode(message, writer) { + SelectedObjects.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.database != null && Object.hasOwnProperty.call(message, "database")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.database); return writer; @@ -124165,7 +133460,7 @@ * @returns {$protobuf.Writer} Writer */ SelectedObjects.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -124179,9 +133474,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SelectedObjects.decode = function decode(reader, length, error) { + SelectedObjects.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SelectedObjects(); while (reader.pos < end) { var tag = reader.uint32(); @@ -124193,7 +133492,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -124224,10 +133523,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SelectedObjects.verify = function verify(message) { + SelectedObjects.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.database != null && message.hasOwnProperty("database")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.database != null && Object.hasOwnProperty.call(message, "database")) if (!$util.isString(message.database)) return "database: string expected"; return null; @@ -124241,9 +133544,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SelectedObjects} SelectedObjects */ - SelectedObjects.fromObject = function fromObject(object) { + SelectedObjects.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SelectedObjects) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SelectedObjects: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SelectedObjects(); if (object.database != null) message.database = String(object.database); @@ -124259,13 +133568,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SelectedObjects.toObject = function toObject(message, options) { + SelectedObjects.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.database = ""; - if (message.database != null && message.hasOwnProperty("database")) + if (message.database != null && Object.hasOwnProperty.call(message, "database")) object.database = message.database; return object; }; @@ -124330,7 +133643,7 @@ this.selectedObjects = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -124443,9 +133756,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - OnPremisesConfiguration.encode = function encode(message, writer) { + OnPremisesConfiguration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.hostPort != null && Object.hasOwnProperty.call(message, "hostPort")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.hostPort); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -124463,10 +133780,10 @@ if (message.dumpFilePath != null && Object.hasOwnProperty.call(message, "dumpFilePath")) writer.uint32(/* id 8, wireType 2 =*/66).string(message.dumpFilePath); if (message.sourceInstance != null && Object.hasOwnProperty.call(message, "sourceInstance")) - $root.google.cloud.sql.v1beta4.InstanceReference.encode(message.sourceInstance, writer.uint32(/* id 15, wireType 2 =*/122).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.InstanceReference.encode(message.sourceInstance, writer.uint32(/* id 15, wireType 2 =*/122).fork(), q + 1).ldelim(); if (message.selectedObjects != null && message.selectedObjects.length) for (var i = 0; i < message.selectedObjects.length; ++i) - $root.google.cloud.sql.v1beta4.SelectedObjects.encode(message.selectedObjects[i], writer.uint32(/* id 16, wireType 2 =*/130).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SelectedObjects.encode(message.selectedObjects[i], writer.uint32(/* id 16, wireType 2 =*/130).fork(), q + 1).ldelim(); if (message.sslOption != null && Object.hasOwnProperty.call(message, "sslOption")) writer.uint32(/* id 18, wireType 0 =*/144).int32(message.sslOption); return writer; @@ -124482,7 +133799,7 @@ * @returns {$protobuf.Writer} Writer */ OnPremisesConfiguration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -124496,9 +133813,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OnPremisesConfiguration.decode = function decode(reader, length, error) { + OnPremisesConfiguration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.OnPremisesConfiguration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -124538,13 +133859,13 @@ break; } case 15: { - message.sourceInstance = $root.google.cloud.sql.v1beta4.InstanceReference.decode(reader, reader.uint32()); + message.sourceInstance = $root.google.cloud.sql.v1beta4.InstanceReference.decode(reader, reader.uint32(), undefined, long + 1); break; } case 16: { if (!(message.selectedObjects && message.selectedObjects.length)) message.selectedObjects = []; - message.selectedObjects.push($root.google.cloud.sql.v1beta4.SelectedObjects.decode(reader, reader.uint32())); + message.selectedObjects.push($root.google.cloud.sql.v1beta4.SelectedObjects.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 18: { @@ -124552,7 +133873,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -124583,48 +133904,52 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OnPremisesConfiguration.verify = function verify(message) { + OnPremisesConfiguration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.hostPort != null && message.hasOwnProperty("hostPort")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.hostPort != null && Object.hasOwnProperty.call(message, "hostPort")) if (!$util.isString(message.hostPort)) return "hostPort: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.username != null && message.hasOwnProperty("username")) + if (message.username != null && Object.hasOwnProperty.call(message, "username")) if (!$util.isString(message.username)) return "username: string expected"; - if (message.password != null && message.hasOwnProperty("password")) + if (message.password != null && Object.hasOwnProperty.call(message, "password")) if (!$util.isString(message.password)) return "password: string expected"; - if (message.caCertificate != null && message.hasOwnProperty("caCertificate")) + if (message.caCertificate != null && Object.hasOwnProperty.call(message, "caCertificate")) if (!$util.isString(message.caCertificate)) return "caCertificate: string expected"; - if (message.clientCertificate != null && message.hasOwnProperty("clientCertificate")) + if (message.clientCertificate != null && Object.hasOwnProperty.call(message, "clientCertificate")) if (!$util.isString(message.clientCertificate)) return "clientCertificate: string expected"; - if (message.clientKey != null && message.hasOwnProperty("clientKey")) + if (message.clientKey != null && Object.hasOwnProperty.call(message, "clientKey")) if (!$util.isString(message.clientKey)) return "clientKey: string expected"; - if (message.dumpFilePath != null && message.hasOwnProperty("dumpFilePath")) + if (message.dumpFilePath != null && Object.hasOwnProperty.call(message, "dumpFilePath")) if (!$util.isString(message.dumpFilePath)) return "dumpFilePath: string expected"; - if (message.sourceInstance != null && message.hasOwnProperty("sourceInstance")) { - var error = $root.google.cloud.sql.v1beta4.InstanceReference.verify(message.sourceInstance); + if (message.sourceInstance != null && Object.hasOwnProperty.call(message, "sourceInstance")) { + var error = $root.google.cloud.sql.v1beta4.InstanceReference.verify(message.sourceInstance, long + 1); if (error) return "sourceInstance." + error; } - if (message.selectedObjects != null && message.hasOwnProperty("selectedObjects")) { + if (message.selectedObjects != null && Object.hasOwnProperty.call(message, "selectedObjects")) { if (!Array.isArray(message.selectedObjects)) return "selectedObjects: array expected"; for (var i = 0; i < message.selectedObjects.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.SelectedObjects.verify(message.selectedObjects[i]); + var error = $root.google.cloud.sql.v1beta4.SelectedObjects.verify(message.selectedObjects[i], long + 1); if (error) return "selectedObjects." + error; } } - if (message.sslOption != null && message.hasOwnProperty("sslOption")) + if (message.sslOption != null && Object.hasOwnProperty.call(message, "sslOption")) switch (message.sslOption) { default: return "sslOption: enum value expected"; @@ -124645,9 +133970,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.OnPremisesConfiguration} OnPremisesConfiguration */ - OnPremisesConfiguration.fromObject = function fromObject(object) { + OnPremisesConfiguration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.OnPremisesConfiguration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.OnPremisesConfiguration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.OnPremisesConfiguration(); if (object.hostPort != null) message.hostPort = String(object.hostPort); @@ -124666,18 +133997,18 @@ if (object.dumpFilePath != null) message.dumpFilePath = String(object.dumpFilePath); if (object.sourceInstance != null) { - if (typeof object.sourceInstance !== "object") + if (!$util.isObject(object.sourceInstance)) throw TypeError(".google.cloud.sql.v1beta4.OnPremisesConfiguration.sourceInstance: object expected"); - message.sourceInstance = $root.google.cloud.sql.v1beta4.InstanceReference.fromObject(object.sourceInstance); + message.sourceInstance = $root.google.cloud.sql.v1beta4.InstanceReference.fromObject(object.sourceInstance, long + 1); } if (object.selectedObjects) { if (!Array.isArray(object.selectedObjects)) throw TypeError(".google.cloud.sql.v1beta4.OnPremisesConfiguration.selectedObjects: array expected"); message.selectedObjects = []; for (var i = 0; i < object.selectedObjects.length; ++i) { - if (typeof object.selectedObjects[i] !== "object") + if (!$util.isObject(object.selectedObjects[i])) throw TypeError(".google.cloud.sql.v1beta4.OnPremisesConfiguration.selectedObjects: object expected"); - message.selectedObjects[i] = $root.google.cloud.sql.v1beta4.SelectedObjects.fromObject(object.selectedObjects[i]); + message.selectedObjects[i] = $root.google.cloud.sql.v1beta4.SelectedObjects.fromObject(object.selectedObjects[i], long + 1); } } switch (object.sslOption) { @@ -124716,9 +134047,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - OnPremisesConfiguration.toObject = function toObject(message, options) { + OnPremisesConfiguration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.selectedObjects = []; @@ -124734,30 +134069,30 @@ object.sourceInstance = null; object.sslOption = options.enums === String ? "SSL_OPTION_UNSPECIFIED" : 0; } - if (message.hostPort != null && message.hasOwnProperty("hostPort")) + if (message.hostPort != null && Object.hasOwnProperty.call(message, "hostPort")) object.hostPort = message.hostPort; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.username != null && message.hasOwnProperty("username")) + if (message.username != null && Object.hasOwnProperty.call(message, "username")) object.username = message.username; - if (message.password != null && message.hasOwnProperty("password")) + if (message.password != null && Object.hasOwnProperty.call(message, "password")) object.password = message.password; - if (message.caCertificate != null && message.hasOwnProperty("caCertificate")) + if (message.caCertificate != null && Object.hasOwnProperty.call(message, "caCertificate")) object.caCertificate = message.caCertificate; - if (message.clientCertificate != null && message.hasOwnProperty("clientCertificate")) + if (message.clientCertificate != null && Object.hasOwnProperty.call(message, "clientCertificate")) object.clientCertificate = message.clientCertificate; - if (message.clientKey != null && message.hasOwnProperty("clientKey")) + if (message.clientKey != null && Object.hasOwnProperty.call(message, "clientKey")) object.clientKey = message.clientKey; - if (message.dumpFilePath != null && message.hasOwnProperty("dumpFilePath")) + if (message.dumpFilePath != null && Object.hasOwnProperty.call(message, "dumpFilePath")) object.dumpFilePath = message.dumpFilePath; - if (message.sourceInstance != null && message.hasOwnProperty("sourceInstance")) - object.sourceInstance = $root.google.cloud.sql.v1beta4.InstanceReference.toObject(message.sourceInstance, options); + if (message.sourceInstance != null && Object.hasOwnProperty.call(message, "sourceInstance")) + object.sourceInstance = $root.google.cloud.sql.v1beta4.InstanceReference.toObject(message.sourceInstance, options, q + 1); if (message.selectedObjects && message.selectedObjects.length) { object.selectedObjects = []; for (var j = 0; j < message.selectedObjects.length; ++j) - object.selectedObjects[j] = $root.google.cloud.sql.v1beta4.SelectedObjects.toObject(message.selectedObjects[j], options); + object.selectedObjects[j] = $root.google.cloud.sql.v1beta4.SelectedObjects.toObject(message.selectedObjects[j], options, q + 1); } - if (message.sslOption != null && message.hasOwnProperty("sslOption")) + if (message.sslOption != null && Object.hasOwnProperty.call(message, "sslOption")) object.sslOption = options.enums === String ? $root.google.cloud.sql.v1beta4.OnPremisesConfiguration.SslOption[message.sslOption] === undefined ? message.sslOption : $root.google.cloud.sql.v1beta4.OnPremisesConfiguration.SslOption[message.sslOption] : message.sslOption; return object; }; @@ -124830,7 +134165,7 @@ function DiskEncryptionConfiguration(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -124871,9 +134206,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DiskEncryptionConfiguration.encode = function encode(message, writer) { + DiskEncryptionConfiguration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kmsKeyName != null && Object.hasOwnProperty.call(message, "kmsKeyName")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kmsKeyName); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -124891,7 +134230,7 @@ * @returns {$protobuf.Writer} Writer */ DiskEncryptionConfiguration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -124905,9 +134244,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DiskEncryptionConfiguration.decode = function decode(reader, length, error) { + DiskEncryptionConfiguration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -124923,7 +134266,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -124954,13 +134297,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DiskEncryptionConfiguration.verify = function verify(message) { + DiskEncryptionConfiguration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kmsKeyName != null && message.hasOwnProperty("kmsKeyName")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kmsKeyName != null && Object.hasOwnProperty.call(message, "kmsKeyName")) if (!$util.isString(message.kmsKeyName)) return "kmsKeyName: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -124974,9 +134321,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.DiskEncryptionConfiguration} DiskEncryptionConfiguration */ - DiskEncryptionConfiguration.fromObject = function fromObject(object) { + DiskEncryptionConfiguration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DiskEncryptionConfiguration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration(); if (object.kmsKeyName != null) message.kmsKeyName = String(object.kmsKeyName); @@ -124994,17 +134347,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DiskEncryptionConfiguration.toObject = function toObject(message, options) { + DiskEncryptionConfiguration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kmsKeyName = ""; object.kind = ""; } - if (message.kmsKeyName != null && message.hasOwnProperty("kmsKeyName")) + if (message.kmsKeyName != null && Object.hasOwnProperty.call(message, "kmsKeyName")) object.kmsKeyName = message.kmsKeyName; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -125059,7 +134416,7 @@ function DiskEncryptionStatus(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -125100,9 +134457,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DiskEncryptionStatus.encode = function encode(message, writer) { + DiskEncryptionStatus.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kmsKeyVersionName != null && Object.hasOwnProperty.call(message, "kmsKeyVersionName")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kmsKeyVersionName); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) @@ -125120,7 +134481,7 @@ * @returns {$protobuf.Writer} Writer */ DiskEncryptionStatus.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -125134,9 +134495,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DiskEncryptionStatus.decode = function decode(reader, length, error) { + DiskEncryptionStatus.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DiskEncryptionStatus(); while (reader.pos < end) { var tag = reader.uint32(); @@ -125152,7 +134517,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -125183,13 +134548,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DiskEncryptionStatus.verify = function verify(message) { + DiskEncryptionStatus.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kmsKeyVersionName != null && message.hasOwnProperty("kmsKeyVersionName")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kmsKeyVersionName != null && Object.hasOwnProperty.call(message, "kmsKeyVersionName")) if (!$util.isString(message.kmsKeyVersionName)) return "kmsKeyVersionName: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; return null; @@ -125203,9 +134572,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.DiskEncryptionStatus} DiskEncryptionStatus */ - DiskEncryptionStatus.fromObject = function fromObject(object) { + DiskEncryptionStatus.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.DiskEncryptionStatus) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DiskEncryptionStatus: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.DiskEncryptionStatus(); if (object.kmsKeyVersionName != null) message.kmsKeyVersionName = String(object.kmsKeyVersionName); @@ -125223,17 +134598,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DiskEncryptionStatus.toObject = function toObject(message, options) { + DiskEncryptionStatus.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kmsKeyVersionName = ""; object.kind = ""; } - if (message.kmsKeyVersionName != null && message.hasOwnProperty("kmsKeyVersionName")) + if (message.kmsKeyVersionName != null && Object.hasOwnProperty.call(message, "kmsKeyVersionName")) object.kmsKeyVersionName = message.kmsKeyVersionName; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; return object; }; @@ -125307,7 +134686,7 @@ function SqlSubOperationType(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -125354,9 +134733,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlSubOperationType.encode = function encode(message, writer) { + SqlSubOperationType.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.maintenanceType != null && Object.hasOwnProperty.call(message, "maintenanceType")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.maintenanceType); return writer; @@ -125372,7 +134755,7 @@ * @returns {$protobuf.Writer} Writer */ SqlSubOperationType.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -125386,9 +134769,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlSubOperationType.decode = function decode(reader, length, error) { + SqlSubOperationType.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlSubOperationType(); while (reader.pos < end) { var tag = reader.uint32(); @@ -125400,7 +134787,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -125431,11 +134818,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlSubOperationType.verify = function verify(message) { + SqlSubOperationType.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.maintenanceType != null && message.hasOwnProperty("maintenanceType")) { + if (message.maintenanceType != null && Object.hasOwnProperty.call(message, "maintenanceType")) { properties.subOperationDetails = 1; switch (message.maintenanceType) { default: @@ -125459,9 +134850,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlSubOperationType} SqlSubOperationType */ - SqlSubOperationType.fromObject = function fromObject(object) { + SqlSubOperationType.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlSubOperationType) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlSubOperationType: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlSubOperationType(); switch (object.maintenanceType) { default: @@ -125503,11 +134900,15 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlSubOperationType.toObject = function toObject(message, options) { + SqlSubOperationType.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.maintenanceType != null && message.hasOwnProperty("maintenanceType")) { + if (message.maintenanceType != null && Object.hasOwnProperty.call(message, "maintenanceType")) { object.maintenanceType = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlMaintenanceType[message.maintenanceType] === undefined ? message.maintenanceType : $root.google.cloud.sql.v1beta4.SqlMaintenanceType[message.maintenanceType] : message.maintenanceType; if (options.oneofs) object.subOperationDetails = "maintenanceType"; @@ -125583,7 +134984,7 @@ function Operation(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -125768,9 +135169,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Operation.encode = function encode(message, writer) { + Operation.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.targetLink != null && Object.hasOwnProperty.call(message, "targetLink")) @@ -125780,19 +135185,19 @@ if (message.user != null && Object.hasOwnProperty.call(message, "user")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.user); if (message.insertTime != null && Object.hasOwnProperty.call(message, "insertTime")) - $root.google.protobuf.Timestamp.encode(message.insertTime, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.insertTime, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) - $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) - $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.error != null && Object.hasOwnProperty.call(message, "error")) - $root.google.cloud.sql.v1beta4.OperationErrors.encode(message.error, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.OperationErrors.encode(message.error, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); if (message.operationType != null && Object.hasOwnProperty.call(message, "operationType")) writer.uint32(/* id 9, wireType 0 =*/72).int32(message.operationType); if (message.importContext != null && Object.hasOwnProperty.call(message, "importContext")) - $root.google.cloud.sql.v1beta4.ImportContext.encode(message.importContext, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ImportContext.encode(message.importContext, writer.uint32(/* id 10, wireType 2 =*/82).fork(), q + 1).ldelim(); if (message.exportContext != null && Object.hasOwnProperty.call(message, "exportContext")) - $root.google.cloud.sql.v1beta4.ExportContext.encode(message.exportContext, writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ExportContext.encode(message.exportContext, writer.uint32(/* id 11, wireType 2 =*/90).fork(), q + 1).ldelim(); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 12, wireType 2 =*/98).string(message.name); if (message.targetId != null && Object.hasOwnProperty.call(message, "targetId")) @@ -125802,15 +135207,15 @@ if (message.targetProject != null && Object.hasOwnProperty.call(message, "targetProject")) writer.uint32(/* id 15, wireType 2 =*/122).string(message.targetProject); if (message.backupContext != null && Object.hasOwnProperty.call(message, "backupContext")) - $root.google.cloud.sql.v1beta4.BackupContext.encode(message.backupContext, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.BackupContext.encode(message.backupContext, writer.uint32(/* id 17, wireType 2 =*/138).fork(), q + 1).ldelim(); if (message.apiWarning != null && Object.hasOwnProperty.call(message, "apiWarning")) - $root.google.cloud.sql.v1beta4.ApiWarning.encode(message.apiWarning, writer.uint32(/* id 19, wireType 2 =*/154).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ApiWarning.encode(message.apiWarning, writer.uint32(/* id 19, wireType 2 =*/154).fork(), q + 1).ldelim(); if (message.acquireSsrsLeaseContext != null && Object.hasOwnProperty.call(message, "acquireSsrsLeaseContext")) - $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.encode(message.acquireSsrsLeaseContext, writer.uint32(/* id 20, wireType 2 =*/162).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.encode(message.acquireSsrsLeaseContext, writer.uint32(/* id 20, wireType 2 =*/162).fork(), q + 1).ldelim(); if (message.subOperationType != null && Object.hasOwnProperty.call(message, "subOperationType")) - $root.google.cloud.sql.v1beta4.SqlSubOperationType.encode(message.subOperationType, writer.uint32(/* id 48, wireType 2 =*/386).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SqlSubOperationType.encode(message.subOperationType, writer.uint32(/* id 48, wireType 2 =*/386).fork(), q + 1).ldelim(); if (message.preCheckMajorVersionUpgradeContext != null && Object.hasOwnProperty.call(message, "preCheckMajorVersionUpgradeContext")) - $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.encode(message.preCheckMajorVersionUpgradeContext, writer.uint32(/* id 50, wireType 2 =*/402).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.encode(message.preCheckMajorVersionUpgradeContext, writer.uint32(/* id 50, wireType 2 =*/402).fork(), q + 1).ldelim(); return writer; }; @@ -125824,7 +135229,7 @@ * @returns {$protobuf.Writer} Writer */ Operation.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -125838,9 +135243,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Operation.decode = function decode(reader, length, error) { + Operation.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.Operation(); while (reader.pos < end) { var tag = reader.uint32(); @@ -125864,23 +135273,23 @@ break; } case 5: { - message.insertTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.insertTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { - message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.error = $root.google.cloud.sql.v1beta4.OperationErrors.decode(reader, reader.uint32()); + message.error = $root.google.cloud.sql.v1beta4.OperationErrors.decode(reader, reader.uint32(), undefined, long + 1); break; } case 19: { - message.apiWarning = $root.google.cloud.sql.v1beta4.ApiWarning.decode(reader, reader.uint32()); + message.apiWarning = $root.google.cloud.sql.v1beta4.ApiWarning.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { @@ -125888,19 +135297,19 @@ break; } case 10: { - message.importContext = $root.google.cloud.sql.v1beta4.ImportContext.decode(reader, reader.uint32()); + message.importContext = $root.google.cloud.sql.v1beta4.ImportContext.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { - message.exportContext = $root.google.cloud.sql.v1beta4.ExportContext.decode(reader, reader.uint32()); + message.exportContext = $root.google.cloud.sql.v1beta4.ExportContext.decode(reader, reader.uint32(), undefined, long + 1); break; } case 17: { - message.backupContext = $root.google.cloud.sql.v1beta4.BackupContext.decode(reader, reader.uint32()); + message.backupContext = $root.google.cloud.sql.v1beta4.BackupContext.decode(reader, reader.uint32(), undefined, long + 1); break; } case 50: { - message.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.decode(reader, reader.uint32()); + message.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.decode(reader, reader.uint32(), undefined, long + 1); break; } case 12: { @@ -125920,15 +135329,15 @@ break; } case 20: { - message.acquireSsrsLeaseContext = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.decode(reader, reader.uint32()); + message.acquireSsrsLeaseContext = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.decode(reader, reader.uint32(), undefined, long + 1); break; } case 48: { - message.subOperationType = $root.google.cloud.sql.v1beta4.SqlSubOperationType.decode(reader, reader.uint32()); + message.subOperationType = $root.google.cloud.sql.v1beta4.SqlSubOperationType.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -125959,16 +135368,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Operation.verify = function verify(message) { + Operation.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.targetLink != null && message.hasOwnProperty("targetLink")) + if (message.targetLink != null && Object.hasOwnProperty.call(message, "targetLink")) if (!$util.isString(message.targetLink)) return "targetLink: string expected"; - if (message.status != null && message.hasOwnProperty("status")) + if (message.status != null && Object.hasOwnProperty.call(message, "status")) switch (message.status) { default: return "status: enum value expected"; @@ -125978,35 +135391,35 @@ case 3: break; } - if (message.user != null && message.hasOwnProperty("user")) + if (message.user != null && Object.hasOwnProperty.call(message, "user")) if (!$util.isString(message.user)) return "user: string expected"; - if (message.insertTime != null && message.hasOwnProperty("insertTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.insertTime); + if (message.insertTime != null && Object.hasOwnProperty.call(message, "insertTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.insertTime, long + 1); if (error) return "insertTime." + error; } - if (message.startTime != null && message.hasOwnProperty("startTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.startTime); + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.startTime, long + 1); if (error) return "startTime." + error; } - if (message.endTime != null && message.hasOwnProperty("endTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.endTime); + if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.endTime, long + 1); if (error) return "endTime." + error; } - if (message.error != null && message.hasOwnProperty("error")) { - var error = $root.google.cloud.sql.v1beta4.OperationErrors.verify(message.error); + if (message.error != null && Object.hasOwnProperty.call(message, "error")) { + var error = $root.google.cloud.sql.v1beta4.OperationErrors.verify(message.error, long + 1); if (error) return "error." + error; } - if (message.apiWarning != null && message.hasOwnProperty("apiWarning")) { - var error = $root.google.cloud.sql.v1beta4.ApiWarning.verify(message.apiWarning); + if (message.apiWarning != null && Object.hasOwnProperty.call(message, "apiWarning")) { + var error = $root.google.cloud.sql.v1beta4.ApiWarning.verify(message.apiWarning, long + 1); if (error) return "apiWarning." + error; } - if (message.operationType != null && message.hasOwnProperty("operationType")) + if (message.operationType != null && Object.hasOwnProperty.call(message, "operationType")) switch (message.operationType) { default: return "operationType: enum value expected"; @@ -126062,47 +135475,50 @@ case 51: case 52: case 53: + case 54: + case 58: + case 59: break; } - if (message.importContext != null && message.hasOwnProperty("importContext")) { - var error = $root.google.cloud.sql.v1beta4.ImportContext.verify(message.importContext); + if (message.importContext != null && Object.hasOwnProperty.call(message, "importContext")) { + var error = $root.google.cloud.sql.v1beta4.ImportContext.verify(message.importContext, long + 1); if (error) return "importContext." + error; } - if (message.exportContext != null && message.hasOwnProperty("exportContext")) { - var error = $root.google.cloud.sql.v1beta4.ExportContext.verify(message.exportContext); + if (message.exportContext != null && Object.hasOwnProperty.call(message, "exportContext")) { + var error = $root.google.cloud.sql.v1beta4.ExportContext.verify(message.exportContext, long + 1); if (error) return "exportContext." + error; } - if (message.backupContext != null && message.hasOwnProperty("backupContext")) { - var error = $root.google.cloud.sql.v1beta4.BackupContext.verify(message.backupContext); + if (message.backupContext != null && Object.hasOwnProperty.call(message, "backupContext")) { + var error = $root.google.cloud.sql.v1beta4.BackupContext.verify(message.backupContext, long + 1); if (error) return "backupContext." + error; } - if (message.preCheckMajorVersionUpgradeContext != null && message.hasOwnProperty("preCheckMajorVersionUpgradeContext")) { - var error = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.verify(message.preCheckMajorVersionUpgradeContext); + if (message.preCheckMajorVersionUpgradeContext != null && Object.hasOwnProperty.call(message, "preCheckMajorVersionUpgradeContext")) { + var error = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.verify(message.preCheckMajorVersionUpgradeContext, long + 1); if (error) return "preCheckMajorVersionUpgradeContext." + error; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.targetId != null && message.hasOwnProperty("targetId")) + if (message.targetId != null && Object.hasOwnProperty.call(message, "targetId")) if (!$util.isString(message.targetId)) return "targetId: string expected"; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) if (!$util.isString(message.selfLink)) return "selfLink: string expected"; - if (message.targetProject != null && message.hasOwnProperty("targetProject")) + if (message.targetProject != null && Object.hasOwnProperty.call(message, "targetProject")) if (!$util.isString(message.targetProject)) return "targetProject: string expected"; - if (message.acquireSsrsLeaseContext != null && message.hasOwnProperty("acquireSsrsLeaseContext")) { - var error = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.verify(message.acquireSsrsLeaseContext); + if (message.acquireSsrsLeaseContext != null && Object.hasOwnProperty.call(message, "acquireSsrsLeaseContext")) { + var error = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.verify(message.acquireSsrsLeaseContext, long + 1); if (error) return "acquireSsrsLeaseContext." + error; } - if (message.subOperationType != null && message.hasOwnProperty("subOperationType")) { - var error = $root.google.cloud.sql.v1beta4.SqlSubOperationType.verify(message.subOperationType); + if (message.subOperationType != null && Object.hasOwnProperty.call(message, "subOperationType")) { + var error = $root.google.cloud.sql.v1beta4.SqlSubOperationType.verify(message.subOperationType, long + 1); if (error) return "subOperationType." + error; } @@ -126117,9 +135533,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.Operation} Operation */ - Operation.fromObject = function fromObject(object) { + Operation.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.Operation) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.Operation: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.Operation(); if (object.kind != null) message.kind = String(object.kind); @@ -126152,29 +135574,29 @@ if (object.user != null) message.user = String(object.user); if (object.insertTime != null) { - if (typeof object.insertTime !== "object") + if (!$util.isObject(object.insertTime)) throw TypeError(".google.cloud.sql.v1beta4.Operation.insertTime: object expected"); - message.insertTime = $root.google.protobuf.Timestamp.fromObject(object.insertTime); + message.insertTime = $root.google.protobuf.Timestamp.fromObject(object.insertTime, long + 1); } if (object.startTime != null) { - if (typeof object.startTime !== "object") + if (!$util.isObject(object.startTime)) throw TypeError(".google.cloud.sql.v1beta4.Operation.startTime: object expected"); - message.startTime = $root.google.protobuf.Timestamp.fromObject(object.startTime); + message.startTime = $root.google.protobuf.Timestamp.fromObject(object.startTime, long + 1); } if (object.endTime != null) { - if (typeof object.endTime !== "object") + if (!$util.isObject(object.endTime)) throw TypeError(".google.cloud.sql.v1beta4.Operation.endTime: object expected"); - message.endTime = $root.google.protobuf.Timestamp.fromObject(object.endTime); + message.endTime = $root.google.protobuf.Timestamp.fromObject(object.endTime, long + 1); } if (object.error != null) { - if (typeof object.error !== "object") + if (!$util.isObject(object.error)) throw TypeError(".google.cloud.sql.v1beta4.Operation.error: object expected"); - message.error = $root.google.cloud.sql.v1beta4.OperationErrors.fromObject(object.error); + message.error = $root.google.cloud.sql.v1beta4.OperationErrors.fromObject(object.error, long + 1); } if (object.apiWarning != null) { - if (typeof object.apiWarning !== "object") + if (!$util.isObject(object.apiWarning)) throw TypeError(".google.cloud.sql.v1beta4.Operation.apiWarning: object expected"); - message.apiWarning = $root.google.cloud.sql.v1beta4.ApiWarning.fromObject(object.apiWarning); + message.apiWarning = $root.google.cloud.sql.v1beta4.ApiWarning.fromObject(object.apiWarning, long + 1); } switch (object.operationType) { default: @@ -126391,26 +135813,38 @@ case 53: message.operationType = 53; break; + case "PRE_CHECK_MAJOR_VERSION_UPGRADE": + case 54: + message.operationType = 54; + break; + case "SETUP_MIGRATION": + case 58: + message.operationType = 58; + break; + case "AGENT_SEND_MESSAGE": + case 59: + message.operationType = 59; + break; } if (object.importContext != null) { - if (typeof object.importContext !== "object") + if (!$util.isObject(object.importContext)) throw TypeError(".google.cloud.sql.v1beta4.Operation.importContext: object expected"); - message.importContext = $root.google.cloud.sql.v1beta4.ImportContext.fromObject(object.importContext); + message.importContext = $root.google.cloud.sql.v1beta4.ImportContext.fromObject(object.importContext, long + 1); } if (object.exportContext != null) { - if (typeof object.exportContext !== "object") + if (!$util.isObject(object.exportContext)) throw TypeError(".google.cloud.sql.v1beta4.Operation.exportContext: object expected"); - message.exportContext = $root.google.cloud.sql.v1beta4.ExportContext.fromObject(object.exportContext); + message.exportContext = $root.google.cloud.sql.v1beta4.ExportContext.fromObject(object.exportContext, long + 1); } if (object.backupContext != null) { - if (typeof object.backupContext !== "object") + if (!$util.isObject(object.backupContext)) throw TypeError(".google.cloud.sql.v1beta4.Operation.backupContext: object expected"); - message.backupContext = $root.google.cloud.sql.v1beta4.BackupContext.fromObject(object.backupContext); + message.backupContext = $root.google.cloud.sql.v1beta4.BackupContext.fromObject(object.backupContext, long + 1); } if (object.preCheckMajorVersionUpgradeContext != null) { - if (typeof object.preCheckMajorVersionUpgradeContext !== "object") + if (!$util.isObject(object.preCheckMajorVersionUpgradeContext)) throw TypeError(".google.cloud.sql.v1beta4.Operation.preCheckMajorVersionUpgradeContext: object expected"); - message.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.fromObject(object.preCheckMajorVersionUpgradeContext); + message.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.fromObject(object.preCheckMajorVersionUpgradeContext, long + 1); } if (object.name != null) message.name = String(object.name); @@ -126421,14 +135855,14 @@ if (object.targetProject != null) message.targetProject = String(object.targetProject); if (object.acquireSsrsLeaseContext != null) { - if (typeof object.acquireSsrsLeaseContext !== "object") + if (!$util.isObject(object.acquireSsrsLeaseContext)) throw TypeError(".google.cloud.sql.v1beta4.Operation.acquireSsrsLeaseContext: object expected"); - message.acquireSsrsLeaseContext = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.fromObject(object.acquireSsrsLeaseContext); + message.acquireSsrsLeaseContext = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.fromObject(object.acquireSsrsLeaseContext, long + 1); } if (object.subOperationType != null) { - if (typeof object.subOperationType !== "object") + if (!$util.isObject(object.subOperationType)) throw TypeError(".google.cloud.sql.v1beta4.Operation.subOperationType: object expected"); - message.subOperationType = $root.google.cloud.sql.v1beta4.SqlSubOperationType.fromObject(object.subOperationType); + message.subOperationType = $root.google.cloud.sql.v1beta4.SqlSubOperationType.fromObject(object.subOperationType, long + 1); } return message; }; @@ -126442,9 +135876,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Operation.toObject = function toObject(message, options) { + Operation.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -126468,46 +135906,46 @@ object.subOperationType = null; object.preCheckMajorVersionUpgradeContext = null; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.targetLink != null && message.hasOwnProperty("targetLink")) + if (message.targetLink != null && Object.hasOwnProperty.call(message, "targetLink")) object.targetLink = message.targetLink; - if (message.status != null && message.hasOwnProperty("status")) + if (message.status != null && Object.hasOwnProperty.call(message, "status")) object.status = options.enums === String ? $root.google.cloud.sql.v1beta4.Operation.SqlOperationStatus[message.status] === undefined ? message.status : $root.google.cloud.sql.v1beta4.Operation.SqlOperationStatus[message.status] : message.status; - if (message.user != null && message.hasOwnProperty("user")) + if (message.user != null && Object.hasOwnProperty.call(message, "user")) object.user = message.user; - if (message.insertTime != null && message.hasOwnProperty("insertTime")) - object.insertTime = $root.google.protobuf.Timestamp.toObject(message.insertTime, options); - if (message.startTime != null && message.hasOwnProperty("startTime")) - object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options); - if (message.endTime != null && message.hasOwnProperty("endTime")) - object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options); - if (message.error != null && message.hasOwnProperty("error")) - object.error = $root.google.cloud.sql.v1beta4.OperationErrors.toObject(message.error, options); - if (message.operationType != null && message.hasOwnProperty("operationType")) + if (message.insertTime != null && Object.hasOwnProperty.call(message, "insertTime")) + object.insertTime = $root.google.protobuf.Timestamp.toObject(message.insertTime, options, q + 1); + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) + object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options, q + 1); + if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) + object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options, q + 1); + if (message.error != null && Object.hasOwnProperty.call(message, "error")) + object.error = $root.google.cloud.sql.v1beta4.OperationErrors.toObject(message.error, options, q + 1); + if (message.operationType != null && Object.hasOwnProperty.call(message, "operationType")) object.operationType = options.enums === String ? $root.google.cloud.sql.v1beta4.Operation.SqlOperationType[message.operationType] === undefined ? message.operationType : $root.google.cloud.sql.v1beta4.Operation.SqlOperationType[message.operationType] : message.operationType; - if (message.importContext != null && message.hasOwnProperty("importContext")) - object.importContext = $root.google.cloud.sql.v1beta4.ImportContext.toObject(message.importContext, options); - if (message.exportContext != null && message.hasOwnProperty("exportContext")) - object.exportContext = $root.google.cloud.sql.v1beta4.ExportContext.toObject(message.exportContext, options); - if (message.name != null && message.hasOwnProperty("name")) + if (message.importContext != null && Object.hasOwnProperty.call(message, "importContext")) + object.importContext = $root.google.cloud.sql.v1beta4.ImportContext.toObject(message.importContext, options, q + 1); + if (message.exportContext != null && Object.hasOwnProperty.call(message, "exportContext")) + object.exportContext = $root.google.cloud.sql.v1beta4.ExportContext.toObject(message.exportContext, options, q + 1); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.targetId != null && message.hasOwnProperty("targetId")) + if (message.targetId != null && Object.hasOwnProperty.call(message, "targetId")) object.targetId = message.targetId; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) object.selfLink = message.selfLink; - if (message.targetProject != null && message.hasOwnProperty("targetProject")) + if (message.targetProject != null && Object.hasOwnProperty.call(message, "targetProject")) object.targetProject = message.targetProject; - if (message.backupContext != null && message.hasOwnProperty("backupContext")) - object.backupContext = $root.google.cloud.sql.v1beta4.BackupContext.toObject(message.backupContext, options); - if (message.apiWarning != null && message.hasOwnProperty("apiWarning")) - object.apiWarning = $root.google.cloud.sql.v1beta4.ApiWarning.toObject(message.apiWarning, options); - if (message.acquireSsrsLeaseContext != null && message.hasOwnProperty("acquireSsrsLeaseContext")) - object.acquireSsrsLeaseContext = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.toObject(message.acquireSsrsLeaseContext, options); - if (message.subOperationType != null && message.hasOwnProperty("subOperationType")) - object.subOperationType = $root.google.cloud.sql.v1beta4.SqlSubOperationType.toObject(message.subOperationType, options); - if (message.preCheckMajorVersionUpgradeContext != null && message.hasOwnProperty("preCheckMajorVersionUpgradeContext")) - object.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.toObject(message.preCheckMajorVersionUpgradeContext, options); + if (message.backupContext != null && Object.hasOwnProperty.call(message, "backupContext")) + object.backupContext = $root.google.cloud.sql.v1beta4.BackupContext.toObject(message.backupContext, options, q + 1); + if (message.apiWarning != null && Object.hasOwnProperty.call(message, "apiWarning")) + object.apiWarning = $root.google.cloud.sql.v1beta4.ApiWarning.toObject(message.apiWarning, options, q + 1); + if (message.acquireSsrsLeaseContext != null && Object.hasOwnProperty.call(message, "acquireSsrsLeaseContext")) + object.acquireSsrsLeaseContext = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.toObject(message.acquireSsrsLeaseContext, options, q + 1); + if (message.subOperationType != null && Object.hasOwnProperty.call(message, "subOperationType")) + object.subOperationType = $root.google.cloud.sql.v1beta4.SqlSubOperationType.toObject(message.subOperationType, options, q + 1); + if (message.preCheckMajorVersionUpgradeContext != null && Object.hasOwnProperty.call(message, "preCheckMajorVersionUpgradeContext")) + object.preCheckMajorVersionUpgradeContext = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.toObject(message.preCheckMajorVersionUpgradeContext, options, q + 1); return object; }; @@ -126593,6 +136031,9 @@ * @property {number} ENHANCED_BACKUP=51 ENHANCED_BACKUP value * @property {number} REPAIR_READ_POOL=52 REPAIR_READ_POOL value * @property {number} CREATE_READ_POOL=53 CREATE_READ_POOL value + * @property {number} PRE_CHECK_MAJOR_VERSION_UPGRADE=54 PRE_CHECK_MAJOR_VERSION_UPGRADE value + * @property {number} SETUP_MIGRATION=58 SETUP_MIGRATION value + * @property {number} AGENT_SEND_MESSAGE=59 AGENT_SEND_MESSAGE value */ Operation.SqlOperationType = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -126648,6 +136089,9 @@ values[valuesById[51] = "ENHANCED_BACKUP"] = 51; values[valuesById[52] = "REPAIR_READ_POOL"] = 52; values[valuesById[53] = "CREATE_READ_POOL"] = 53; + values[valuesById[54] = "PRE_CHECK_MAJOR_VERSION_UPGRADE"] = 54; + values[valuesById[58] = "SETUP_MIGRATION"] = 58; + values[valuesById[59] = "AGENT_SEND_MESSAGE"] = 59; return values; })(); @@ -126694,7 +136138,7 @@ function OperationError(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -126743,9 +136187,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - OperationError.encode = function encode(message, writer) { + OperationError.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.code != null && Object.hasOwnProperty.call(message, "code")) @@ -126765,7 +136213,7 @@ * @returns {$protobuf.Writer} Writer */ OperationError.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -126779,9 +136227,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OperationError.decode = function decode(reader, length, error) { + OperationError.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.OperationError(); while (reader.pos < end) { var tag = reader.uint32(); @@ -126801,7 +136253,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -126832,16 +136284,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OperationError.verify = function verify(message) { + OperationError.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.code != null && message.hasOwnProperty("code")) + if (message.code != null && Object.hasOwnProperty.call(message, "code")) if (!$util.isString(message.code)) return "code: string expected"; - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) if (!$util.isString(message.message)) return "message: string expected"; return null; @@ -126855,9 +136311,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.OperationError} OperationError */ - OperationError.fromObject = function fromObject(object) { + OperationError.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.OperationError) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.OperationError: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.OperationError(); if (object.kind != null) message.kind = String(object.kind); @@ -126877,20 +136339,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - OperationError.toObject = function toObject(message, options) { + OperationError.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.code = ""; object.message = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.code != null && message.hasOwnProperty("code")) + if (message.code != null && Object.hasOwnProperty.call(message, "code")) object.code = message.code; - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) object.message = message.message; return object; }; @@ -126946,7 +136412,7 @@ this.errors = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -126987,14 +136453,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - OperationErrors.encode = function encode(message, writer) { + OperationErrors.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.errors != null && message.errors.length) for (var i = 0; i < message.errors.length; ++i) - $root.google.cloud.sql.v1beta4.OperationError.encode(message.errors[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.OperationError.encode(message.errors[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -127008,7 +136478,7 @@ * @returns {$protobuf.Writer} Writer */ OperationErrors.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -127022,9 +136492,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OperationErrors.decode = function decode(reader, length, error) { + OperationErrors.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.OperationErrors(); while (reader.pos < end) { var tag = reader.uint32(); @@ -127038,11 +136512,11 @@ case 2: { if (!(message.errors && message.errors.length)) message.errors = []; - message.errors.push($root.google.cloud.sql.v1beta4.OperationError.decode(reader, reader.uint32())); + message.errors.push($root.google.cloud.sql.v1beta4.OperationError.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -127073,17 +136547,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OperationErrors.verify = function verify(message) { + OperationErrors.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.errors != null && message.hasOwnProperty("errors")) { + if (message.errors != null && Object.hasOwnProperty.call(message, "errors")) { if (!Array.isArray(message.errors)) return "errors: array expected"; for (var i = 0; i < message.errors.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.OperationError.verify(message.errors[i]); + var error = $root.google.cloud.sql.v1beta4.OperationError.verify(message.errors[i], long + 1); if (error) return "errors." + error; } @@ -127099,9 +136577,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.OperationErrors} OperationErrors */ - OperationErrors.fromObject = function fromObject(object) { + OperationErrors.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.OperationErrors) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.OperationErrors: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.OperationErrors(); if (object.kind != null) message.kind = String(object.kind); @@ -127110,9 +136594,9 @@ throw TypeError(".google.cloud.sql.v1beta4.OperationErrors.errors: array expected"); message.errors = []; for (var i = 0; i < object.errors.length; ++i) { - if (typeof object.errors[i] !== "object") + if (!$util.isObject(object.errors[i])) throw TypeError(".google.cloud.sql.v1beta4.OperationErrors.errors: object expected"); - message.errors[i] = $root.google.cloud.sql.v1beta4.OperationError.fromObject(object.errors[i]); + message.errors[i] = $root.google.cloud.sql.v1beta4.OperationError.fromObject(object.errors[i], long + 1); } } return message; @@ -127127,20 +136611,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - OperationErrors.toObject = function toObject(message, options) { + OperationErrors.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.errors = []; if (options.defaults) object.kind = ""; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.errors && message.errors.length) { object.errors = []; for (var j = 0; j < message.errors.length; ++j) - object.errors[j] = $root.google.cloud.sql.v1beta4.OperationError.toObject(message.errors[j], options); + object.errors[j] = $root.google.cloud.sql.v1beta4.OperationError.toObject(message.errors[j], options, q + 1); } return object; }; @@ -127200,7 +136688,7 @@ function PasswordValidationPolicy(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -127281,23 +136769,27 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PasswordValidationPolicy.encode = function encode(message, writer) { + PasswordValidationPolicy.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.minLength != null && Object.hasOwnProperty.call(message, "minLength")) - $root.google.protobuf.Int32Value.encode(message.minLength, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.minLength, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.complexity != null && Object.hasOwnProperty.call(message, "complexity")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.complexity); if (message.reuseInterval != null && Object.hasOwnProperty.call(message, "reuseInterval")) - $root.google.protobuf.Int32Value.encode(message.reuseInterval, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.reuseInterval, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.disallowUsernameSubstring != null && Object.hasOwnProperty.call(message, "disallowUsernameSubstring")) - $root.google.protobuf.BoolValue.encode(message.disallowUsernameSubstring, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.disallowUsernameSubstring, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.passwordChangeInterval != null && Object.hasOwnProperty.call(message, "passwordChangeInterval")) - $root.google.protobuf.Duration.encode(message.passwordChangeInterval, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.passwordChangeInterval, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.enablePasswordPolicy != null && Object.hasOwnProperty.call(message, "enablePasswordPolicy")) - $root.google.protobuf.BoolValue.encode(message.enablePasswordPolicy, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.enablePasswordPolicy, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.disallowCompromisedCredentials != null && Object.hasOwnProperty.call(message, "disallowCompromisedCredentials")) - $root.google.protobuf.BoolValue.encode(message.disallowCompromisedCredentials, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.disallowCompromisedCredentials, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); return writer; }; @@ -127311,7 +136803,7 @@ * @returns {$protobuf.Writer} Writer */ PasswordValidationPolicy.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -127325,9 +136817,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PasswordValidationPolicy.decode = function decode(reader, length, error) { + PasswordValidationPolicy.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.PasswordValidationPolicy(); while (reader.pos < end) { var tag = reader.uint32(); @@ -127335,7 +136831,7 @@ break; switch (tag >>> 3) { case 1: { - message.minLength = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.minLength = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -127343,27 +136839,27 @@ break; } case 3: { - message.reuseInterval = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.reuseInterval = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { - message.disallowUsernameSubstring = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.disallowUsernameSubstring = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.passwordChangeInterval = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.passwordChangeInterval = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.enablePasswordPolicy = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.enablePasswordPolicy = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { - message.disallowCompromisedCredentials = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.disallowCompromisedCredentials = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -127394,15 +136890,19 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PasswordValidationPolicy.verify = function verify(message) { + PasswordValidationPolicy.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.minLength != null && message.hasOwnProperty("minLength")) { - var error = $root.google.protobuf.Int32Value.verify(message.minLength); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.minLength != null && Object.hasOwnProperty.call(message, "minLength")) { + var error = $root.google.protobuf.Int32Value.verify(message.minLength, long + 1); if (error) return "minLength." + error; } - if (message.complexity != null && message.hasOwnProperty("complexity")) + if (message.complexity != null && Object.hasOwnProperty.call(message, "complexity")) switch (message.complexity) { default: return "complexity: enum value expected"; @@ -127410,28 +136910,28 @@ case 1: break; } - if (message.reuseInterval != null && message.hasOwnProperty("reuseInterval")) { - var error = $root.google.protobuf.Int32Value.verify(message.reuseInterval); + if (message.reuseInterval != null && Object.hasOwnProperty.call(message, "reuseInterval")) { + var error = $root.google.protobuf.Int32Value.verify(message.reuseInterval, long + 1); if (error) return "reuseInterval." + error; } - if (message.disallowUsernameSubstring != null && message.hasOwnProperty("disallowUsernameSubstring")) { - var error = $root.google.protobuf.BoolValue.verify(message.disallowUsernameSubstring); + if (message.disallowUsernameSubstring != null && Object.hasOwnProperty.call(message, "disallowUsernameSubstring")) { + var error = $root.google.protobuf.BoolValue.verify(message.disallowUsernameSubstring, long + 1); if (error) return "disallowUsernameSubstring." + error; } - if (message.passwordChangeInterval != null && message.hasOwnProperty("passwordChangeInterval")) { - var error = $root.google.protobuf.Duration.verify(message.passwordChangeInterval); + if (message.passwordChangeInterval != null && Object.hasOwnProperty.call(message, "passwordChangeInterval")) { + var error = $root.google.protobuf.Duration.verify(message.passwordChangeInterval, long + 1); if (error) return "passwordChangeInterval." + error; } - if (message.enablePasswordPolicy != null && message.hasOwnProperty("enablePasswordPolicy")) { - var error = $root.google.protobuf.BoolValue.verify(message.enablePasswordPolicy); + if (message.enablePasswordPolicy != null && Object.hasOwnProperty.call(message, "enablePasswordPolicy")) { + var error = $root.google.protobuf.BoolValue.verify(message.enablePasswordPolicy, long + 1); if (error) return "enablePasswordPolicy." + error; } - if (message.disallowCompromisedCredentials != null && message.hasOwnProperty("disallowCompromisedCredentials")) { - var error = $root.google.protobuf.BoolValue.verify(message.disallowCompromisedCredentials); + if (message.disallowCompromisedCredentials != null && Object.hasOwnProperty.call(message, "disallowCompromisedCredentials")) { + var error = $root.google.protobuf.BoolValue.verify(message.disallowCompromisedCredentials, long + 1); if (error) return "disallowCompromisedCredentials." + error; } @@ -127446,14 +136946,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.PasswordValidationPolicy} PasswordValidationPolicy */ - PasswordValidationPolicy.fromObject = function fromObject(object) { + PasswordValidationPolicy.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.PasswordValidationPolicy) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.PasswordValidationPolicy: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.PasswordValidationPolicy(); if (object.minLength != null) { - if (typeof object.minLength !== "object") + if (!$util.isObject(object.minLength)) throw TypeError(".google.cloud.sql.v1beta4.PasswordValidationPolicy.minLength: object expected"); - message.minLength = $root.google.protobuf.Int32Value.fromObject(object.minLength); + message.minLength = $root.google.protobuf.Int32Value.fromObject(object.minLength, long + 1); } switch (object.complexity) { default: @@ -127472,29 +136978,29 @@ break; } if (object.reuseInterval != null) { - if (typeof object.reuseInterval !== "object") + if (!$util.isObject(object.reuseInterval)) throw TypeError(".google.cloud.sql.v1beta4.PasswordValidationPolicy.reuseInterval: object expected"); - message.reuseInterval = $root.google.protobuf.Int32Value.fromObject(object.reuseInterval); + message.reuseInterval = $root.google.protobuf.Int32Value.fromObject(object.reuseInterval, long + 1); } if (object.disallowUsernameSubstring != null) { - if (typeof object.disallowUsernameSubstring !== "object") + if (!$util.isObject(object.disallowUsernameSubstring)) throw TypeError(".google.cloud.sql.v1beta4.PasswordValidationPolicy.disallowUsernameSubstring: object expected"); - message.disallowUsernameSubstring = $root.google.protobuf.BoolValue.fromObject(object.disallowUsernameSubstring); + message.disallowUsernameSubstring = $root.google.protobuf.BoolValue.fromObject(object.disallowUsernameSubstring, long + 1); } if (object.passwordChangeInterval != null) { - if (typeof object.passwordChangeInterval !== "object") + if (!$util.isObject(object.passwordChangeInterval)) throw TypeError(".google.cloud.sql.v1beta4.PasswordValidationPolicy.passwordChangeInterval: object expected"); - message.passwordChangeInterval = $root.google.protobuf.Duration.fromObject(object.passwordChangeInterval); + message.passwordChangeInterval = $root.google.protobuf.Duration.fromObject(object.passwordChangeInterval, long + 1); } if (object.enablePasswordPolicy != null) { - if (typeof object.enablePasswordPolicy !== "object") + if (!$util.isObject(object.enablePasswordPolicy)) throw TypeError(".google.cloud.sql.v1beta4.PasswordValidationPolicy.enablePasswordPolicy: object expected"); - message.enablePasswordPolicy = $root.google.protobuf.BoolValue.fromObject(object.enablePasswordPolicy); + message.enablePasswordPolicy = $root.google.protobuf.BoolValue.fromObject(object.enablePasswordPolicy, long + 1); } if (object.disallowCompromisedCredentials != null) { - if (typeof object.disallowCompromisedCredentials !== "object") + if (!$util.isObject(object.disallowCompromisedCredentials)) throw TypeError(".google.cloud.sql.v1beta4.PasswordValidationPolicy.disallowCompromisedCredentials: object expected"); - message.disallowCompromisedCredentials = $root.google.protobuf.BoolValue.fromObject(object.disallowCompromisedCredentials); + message.disallowCompromisedCredentials = $root.google.protobuf.BoolValue.fromObject(object.disallowCompromisedCredentials, long + 1); } return message; }; @@ -127508,9 +137014,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PasswordValidationPolicy.toObject = function toObject(message, options) { + PasswordValidationPolicy.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.minLength = null; @@ -127521,20 +137031,20 @@ object.enablePasswordPolicy = null; object.disallowCompromisedCredentials = null; } - if (message.minLength != null && message.hasOwnProperty("minLength")) - object.minLength = $root.google.protobuf.Int32Value.toObject(message.minLength, options); - if (message.complexity != null && message.hasOwnProperty("complexity")) + if (message.minLength != null && Object.hasOwnProperty.call(message, "minLength")) + object.minLength = $root.google.protobuf.Int32Value.toObject(message.minLength, options, q + 1); + if (message.complexity != null && Object.hasOwnProperty.call(message, "complexity")) object.complexity = options.enums === String ? $root.google.cloud.sql.v1beta4.PasswordValidationPolicy.Complexity[message.complexity] === undefined ? message.complexity : $root.google.cloud.sql.v1beta4.PasswordValidationPolicy.Complexity[message.complexity] : message.complexity; - if (message.reuseInterval != null && message.hasOwnProperty("reuseInterval")) - object.reuseInterval = $root.google.protobuf.Int32Value.toObject(message.reuseInterval, options); - if (message.disallowUsernameSubstring != null && message.hasOwnProperty("disallowUsernameSubstring")) - object.disallowUsernameSubstring = $root.google.protobuf.BoolValue.toObject(message.disallowUsernameSubstring, options); - if (message.passwordChangeInterval != null && message.hasOwnProperty("passwordChangeInterval")) - object.passwordChangeInterval = $root.google.protobuf.Duration.toObject(message.passwordChangeInterval, options); - if (message.enablePasswordPolicy != null && message.hasOwnProperty("enablePasswordPolicy")) - object.enablePasswordPolicy = $root.google.protobuf.BoolValue.toObject(message.enablePasswordPolicy, options); - if (message.disallowCompromisedCredentials != null && message.hasOwnProperty("disallowCompromisedCredentials")) - object.disallowCompromisedCredentials = $root.google.protobuf.BoolValue.toObject(message.disallowCompromisedCredentials, options); + if (message.reuseInterval != null && Object.hasOwnProperty.call(message, "reuseInterval")) + object.reuseInterval = $root.google.protobuf.Int32Value.toObject(message.reuseInterval, options, q + 1); + if (message.disallowUsernameSubstring != null && Object.hasOwnProperty.call(message, "disallowUsernameSubstring")) + object.disallowUsernameSubstring = $root.google.protobuf.BoolValue.toObject(message.disallowUsernameSubstring, options, q + 1); + if (message.passwordChangeInterval != null && Object.hasOwnProperty.call(message, "passwordChangeInterval")) + object.passwordChangeInterval = $root.google.protobuf.Duration.toObject(message.passwordChangeInterval, options, q + 1); + if (message.enablePasswordPolicy != null && Object.hasOwnProperty.call(message, "enablePasswordPolicy")) + object.enablePasswordPolicy = $root.google.protobuf.BoolValue.toObject(message.enablePasswordPolicy, options, q + 1); + if (message.disallowCompromisedCredentials != null && Object.hasOwnProperty.call(message, "disallowCompromisedCredentials")) + object.disallowCompromisedCredentials = $root.google.protobuf.BoolValue.toObject(message.disallowCompromisedCredentials, options, q + 1); return object; }; @@ -127604,7 +137114,7 @@ this.items = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -127653,14 +137163,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - OperationsListResponse.encode = function encode(message, writer) { + OperationsListResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.items != null && message.items.length) for (var i = 0; i < message.items.length; ++i) - $root.google.cloud.sql.v1beta4.Operation.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.Operation.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.nextPageToken); return writer; @@ -127676,7 +137190,7 @@ * @returns {$protobuf.Writer} Writer */ OperationsListResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -127690,9 +137204,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OperationsListResponse.decode = function decode(reader, length, error) { + OperationsListResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.OperationsListResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -127706,7 +137224,7 @@ case 2: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.sql.v1beta4.Operation.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.sql.v1beta4.Operation.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { @@ -127714,7 +137232,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -127745,22 +137263,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OperationsListResponse.verify = function verify(message) { + OperationsListResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.items != null && message.hasOwnProperty("items")) { + if (message.items != null && Object.hasOwnProperty.call(message, "items")) { if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.Operation.verify(message.items[i]); + var error = $root.google.cloud.sql.v1beta4.Operation.verify(message.items[i], long + 1); if (error) return "items." + error; } } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) if (!$util.isString(message.nextPageToken)) return "nextPageToken: string expected"; return null; @@ -127774,9 +137296,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.OperationsListResponse} OperationsListResponse */ - OperationsListResponse.fromObject = function fromObject(object) { + OperationsListResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.OperationsListResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.OperationsListResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.OperationsListResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -127785,9 +137313,9 @@ throw TypeError(".google.cloud.sql.v1beta4.OperationsListResponse.items: array expected"); message.items = []; for (var i = 0; i < object.items.length; ++i) { - if (typeof object.items[i] !== "object") + if (!$util.isObject(object.items[i])) throw TypeError(".google.cloud.sql.v1beta4.OperationsListResponse.items: object expected"); - message.items[i] = $root.google.cloud.sql.v1beta4.Operation.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.sql.v1beta4.Operation.fromObject(object.items[i], long + 1); } } if (object.nextPageToken != null) @@ -127804,9 +137332,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - OperationsListResponse.toObject = function toObject(message, options) { + OperationsListResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.items = []; @@ -127814,14 +137346,14 @@ object.kind = ""; object.nextPageToken = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.items && message.items.length) { object.items = []; for (var j = 0; j < message.items.length; ++j) - object.items[j] = $root.google.cloud.sql.v1beta4.Operation.toObject(message.items[j], options); + object.items[j] = $root.google.cloud.sql.v1beta4.Operation.toObject(message.items[j], options, q + 1); } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) object.nextPageToken = message.nextPageToken; return object; }; @@ -127878,7 +137410,7 @@ function ReplicaConfiguration(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -127935,17 +137467,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ReplicaConfiguration.encode = function encode(message, writer) { + ReplicaConfiguration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.mysqlReplicaConfiguration != null && Object.hasOwnProperty.call(message, "mysqlReplicaConfiguration")) - $root.google.cloud.sql.v1beta4.MySqlReplicaConfiguration.encode(message.mysqlReplicaConfiguration, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.MySqlReplicaConfiguration.encode(message.mysqlReplicaConfiguration, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.failoverTarget != null && Object.hasOwnProperty.call(message, "failoverTarget")) - $root.google.protobuf.BoolValue.encode(message.failoverTarget, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.failoverTarget, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.cascadableReplica != null && Object.hasOwnProperty.call(message, "cascadableReplica")) - $root.google.protobuf.BoolValue.encode(message.cascadableReplica, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.cascadableReplica, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); return writer; }; @@ -127959,7 +137495,7 @@ * @returns {$protobuf.Writer} Writer */ ReplicaConfiguration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -127973,9 +137509,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ReplicaConfiguration.decode = function decode(reader, length, error) { + ReplicaConfiguration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ReplicaConfiguration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -127987,19 +137527,19 @@ break; } case 2: { - message.mysqlReplicaConfiguration = $root.google.cloud.sql.v1beta4.MySqlReplicaConfiguration.decode(reader, reader.uint32()); + message.mysqlReplicaConfiguration = $root.google.cloud.sql.v1beta4.MySqlReplicaConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { - message.failoverTarget = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.failoverTarget = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.cascadableReplica = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.cascadableReplica = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -128030,24 +137570,28 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ReplicaConfiguration.verify = function verify(message) { + ReplicaConfiguration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.mysqlReplicaConfiguration != null && message.hasOwnProperty("mysqlReplicaConfiguration")) { - var error = $root.google.cloud.sql.v1beta4.MySqlReplicaConfiguration.verify(message.mysqlReplicaConfiguration); + if (message.mysqlReplicaConfiguration != null && Object.hasOwnProperty.call(message, "mysqlReplicaConfiguration")) { + var error = $root.google.cloud.sql.v1beta4.MySqlReplicaConfiguration.verify(message.mysqlReplicaConfiguration, long + 1); if (error) return "mysqlReplicaConfiguration." + error; } - if (message.failoverTarget != null && message.hasOwnProperty("failoverTarget")) { - var error = $root.google.protobuf.BoolValue.verify(message.failoverTarget); + if (message.failoverTarget != null && Object.hasOwnProperty.call(message, "failoverTarget")) { + var error = $root.google.protobuf.BoolValue.verify(message.failoverTarget, long + 1); if (error) return "failoverTarget." + error; } - if (message.cascadableReplica != null && message.hasOwnProperty("cascadableReplica")) { - var error = $root.google.protobuf.BoolValue.verify(message.cascadableReplica); + if (message.cascadableReplica != null && Object.hasOwnProperty.call(message, "cascadableReplica")) { + var error = $root.google.protobuf.BoolValue.verify(message.cascadableReplica, long + 1); if (error) return "cascadableReplica." + error; } @@ -128062,26 +137606,32 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ReplicaConfiguration} ReplicaConfiguration */ - ReplicaConfiguration.fromObject = function fromObject(object) { + ReplicaConfiguration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ReplicaConfiguration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ReplicaConfiguration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ReplicaConfiguration(); if (object.kind != null) message.kind = String(object.kind); if (object.mysqlReplicaConfiguration != null) { - if (typeof object.mysqlReplicaConfiguration !== "object") + if (!$util.isObject(object.mysqlReplicaConfiguration)) throw TypeError(".google.cloud.sql.v1beta4.ReplicaConfiguration.mysqlReplicaConfiguration: object expected"); - message.mysqlReplicaConfiguration = $root.google.cloud.sql.v1beta4.MySqlReplicaConfiguration.fromObject(object.mysqlReplicaConfiguration); + message.mysqlReplicaConfiguration = $root.google.cloud.sql.v1beta4.MySqlReplicaConfiguration.fromObject(object.mysqlReplicaConfiguration, long + 1); } if (object.failoverTarget != null) { - if (typeof object.failoverTarget !== "object") + if (!$util.isObject(object.failoverTarget)) throw TypeError(".google.cloud.sql.v1beta4.ReplicaConfiguration.failoverTarget: object expected"); - message.failoverTarget = $root.google.protobuf.BoolValue.fromObject(object.failoverTarget); + message.failoverTarget = $root.google.protobuf.BoolValue.fromObject(object.failoverTarget, long + 1); } if (object.cascadableReplica != null) { - if (typeof object.cascadableReplica !== "object") + if (!$util.isObject(object.cascadableReplica)) throw TypeError(".google.cloud.sql.v1beta4.ReplicaConfiguration.cascadableReplica: object expected"); - message.cascadableReplica = $root.google.protobuf.BoolValue.fromObject(object.cascadableReplica); + message.cascadableReplica = $root.google.protobuf.BoolValue.fromObject(object.cascadableReplica, long + 1); } return message; }; @@ -128095,9 +137645,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ReplicaConfiguration.toObject = function toObject(message, options) { + ReplicaConfiguration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -128105,14 +137659,14 @@ object.failoverTarget = null; object.cascadableReplica = null; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.mysqlReplicaConfiguration != null && message.hasOwnProperty("mysqlReplicaConfiguration")) - object.mysqlReplicaConfiguration = $root.google.cloud.sql.v1beta4.MySqlReplicaConfiguration.toObject(message.mysqlReplicaConfiguration, options); - if (message.failoverTarget != null && message.hasOwnProperty("failoverTarget")) - object.failoverTarget = $root.google.protobuf.BoolValue.toObject(message.failoverTarget, options); - if (message.cascadableReplica != null && message.hasOwnProperty("cascadableReplica")) - object.cascadableReplica = $root.google.protobuf.BoolValue.toObject(message.cascadableReplica, options); + if (message.mysqlReplicaConfiguration != null && Object.hasOwnProperty.call(message, "mysqlReplicaConfiguration")) + object.mysqlReplicaConfiguration = $root.google.cloud.sql.v1beta4.MySqlReplicaConfiguration.toObject(message.mysqlReplicaConfiguration, options, q + 1); + if (message.failoverTarget != null && Object.hasOwnProperty.call(message, "failoverTarget")) + object.failoverTarget = $root.google.protobuf.BoolValue.toObject(message.failoverTarget, options, q + 1); + if (message.cascadableReplica != null && Object.hasOwnProperty.call(message, "cascadableReplica")) + object.cascadableReplica = $root.google.protobuf.BoolValue.toObject(message.cascadableReplica, options, q + 1); return object; }; @@ -128168,7 +137722,7 @@ function RestoreBackupContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -128225,9 +137779,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RestoreBackupContext.encode = function encode(message, writer) { + RestoreBackupContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.backupRunId != null && Object.hasOwnProperty.call(message, "backupRunId")) @@ -128249,7 +137807,7 @@ * @returns {$protobuf.Writer} Writer */ RestoreBackupContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -128263,9 +137821,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RestoreBackupContext.decode = function decode(reader, length, error) { + RestoreBackupContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.RestoreBackupContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -128289,7 +137851,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -128320,19 +137882,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RestoreBackupContext.verify = function verify(message) { + RestoreBackupContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.backupRunId != null && message.hasOwnProperty("backupRunId")) + if (message.backupRunId != null && Object.hasOwnProperty.call(message, "backupRunId")) if (!$util.isInteger(message.backupRunId) && !(message.backupRunId && $util.isInteger(message.backupRunId.low) && $util.isInteger(message.backupRunId.high))) return "backupRunId: integer|Long expected"; - if (message.instanceId != null && message.hasOwnProperty("instanceId")) + if (message.instanceId != null && Object.hasOwnProperty.call(message, "instanceId")) if (!$util.isString(message.instanceId)) return "instanceId: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -128346,15 +137912,21 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.RestoreBackupContext} RestoreBackupContext */ - RestoreBackupContext.fromObject = function fromObject(object) { + RestoreBackupContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.RestoreBackupContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.RestoreBackupContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.RestoreBackupContext(); if (object.kind != null) message.kind = String(object.kind); if (object.backupRunId != null) if ($util.Long) - (message.backupRunId = $util.Long.fromValue(object.backupRunId)).unsigned = false; + message.backupRunId = $util.Long.fromValue(object.backupRunId, false); else if (typeof object.backupRunId === "string") message.backupRunId = parseInt(object.backupRunId, 10); else if (typeof object.backupRunId === "number") @@ -128377,30 +137949,36 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RestoreBackupContext.toObject = function toObject(message, options) { + RestoreBackupContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.backupRunId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.backupRunId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.backupRunId = options.longs === String ? "0" : 0; + object.backupRunId = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.instanceId = ""; object.project = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.backupRunId != null && message.hasOwnProperty("backupRunId")) - if (typeof message.backupRunId === "number") + if (message.backupRunId != null && Object.hasOwnProperty.call(message, "backupRunId")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.backupRunId = typeof message.backupRunId === "number" ? BigInt(message.backupRunId) : $util.Long.fromBits(message.backupRunId.low >>> 0, message.backupRunId.high >>> 0, false).toBigInt(); + else if (typeof message.backupRunId === "number") object.backupRunId = options.longs === String ? String(message.backupRunId) : message.backupRunId; else object.backupRunId = options.longs === String ? $util.Long.prototype.toString.call(message.backupRunId) : options.longs === Number ? new $util.LongBits(message.backupRunId.low >>> 0, message.backupRunId.high >>> 0).toNumber() : message.backupRunId; - if (message.instanceId != null && message.hasOwnProperty("instanceId")) + if (message.instanceId != null && Object.hasOwnProperty.call(message, "instanceId")) object.instanceId = message.instanceId; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -128455,7 +138033,7 @@ function RotateServerCaContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -128496,9 +138074,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RotateServerCaContext.encode = function encode(message, writer) { + RotateServerCaContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) @@ -128516,7 +138098,7 @@ * @returns {$protobuf.Writer} Writer */ RotateServerCaContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -128530,9 +138112,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RotateServerCaContext.decode = function decode(reader, length, error) { + RotateServerCaContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.RotateServerCaContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -128548,7 +138134,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -128579,13 +138165,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RotateServerCaContext.verify = function verify(message) { + RotateServerCaContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.nextVersion != null && message.hasOwnProperty("nextVersion")) + if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) if (!$util.isString(message.nextVersion)) return "nextVersion: string expected"; return null; @@ -128599,9 +138189,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.RotateServerCaContext} RotateServerCaContext */ - RotateServerCaContext.fromObject = function fromObject(object) { + RotateServerCaContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.RotateServerCaContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.RotateServerCaContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.RotateServerCaContext(); if (object.kind != null) message.kind = String(object.kind); @@ -128619,17 +138215,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RotateServerCaContext.toObject = function toObject(message, options) { + RotateServerCaContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.nextVersion = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.nextVersion != null && message.hasOwnProperty("nextVersion")) + if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) object.nextVersion = message.nextVersion; return object; }; @@ -128684,7 +138284,7 @@ function RotateServerCertificateContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -128725,9 +138325,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RotateServerCertificateContext.encode = function encode(message, writer) { + RotateServerCertificateContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) @@ -128745,7 +138349,7 @@ * @returns {$protobuf.Writer} Writer */ RotateServerCertificateContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -128759,9 +138363,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RotateServerCertificateContext.decode = function decode(reader, length, error) { + RotateServerCertificateContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.RotateServerCertificateContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -128777,7 +138385,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -128808,13 +138416,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RotateServerCertificateContext.verify = function verify(message) { + RotateServerCertificateContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.nextVersion != null && message.hasOwnProperty("nextVersion")) + if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) if (!$util.isString(message.nextVersion)) return "nextVersion: string expected"; return null; @@ -128828,9 +138440,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.RotateServerCertificateContext} RotateServerCertificateContext */ - RotateServerCertificateContext.fromObject = function fromObject(object) { + RotateServerCertificateContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.RotateServerCertificateContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.RotateServerCertificateContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.RotateServerCertificateContext(); if (object.kind != null) message.kind = String(object.kind); @@ -128848,17 +138466,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RotateServerCertificateContext.toObject = function toObject(message, options) { + RotateServerCertificateContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.nextVersion = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.nextVersion != null && message.hasOwnProperty("nextVersion")) + if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) object.nextVersion = message.nextVersion; return object; }; @@ -128913,7 +138535,7 @@ function RotateEntraIdCertificateContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -128954,9 +138576,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RotateEntraIdCertificateContext.encode = function encode(message, writer) { + RotateEntraIdCertificateContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) @@ -128974,7 +138600,7 @@ * @returns {$protobuf.Writer} Writer */ RotateEntraIdCertificateContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -128988,9 +138614,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RotateEntraIdCertificateContext.decode = function decode(reader, length, error) { + RotateEntraIdCertificateContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.RotateEntraIdCertificateContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -129006,7 +138636,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -129037,13 +138667,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RotateEntraIdCertificateContext.verify = function verify(message) { + RotateEntraIdCertificateContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.nextVersion != null && message.hasOwnProperty("nextVersion")) + if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) if (!$util.isString(message.nextVersion)) return "nextVersion: string expected"; return null; @@ -129057,9 +138691,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.RotateEntraIdCertificateContext} RotateEntraIdCertificateContext */ - RotateEntraIdCertificateContext.fromObject = function fromObject(object) { + RotateEntraIdCertificateContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.RotateEntraIdCertificateContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.RotateEntraIdCertificateContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.RotateEntraIdCertificateContext(); if (object.kind != null) message.kind = String(object.kind); @@ -129077,17 +138717,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RotateEntraIdCertificateContext.toObject = function toObject(message, options) { + RotateEntraIdCertificateContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.nextVersion = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.nextVersion != null && message.hasOwnProperty("nextVersion")) + if (message.nextVersion != null && Object.hasOwnProperty.call(message, "nextVersion")) object.nextVersion = message.nextVersion; return object; }; @@ -129141,7 +138785,7 @@ function DataCacheConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -129174,9 +138818,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DataCacheConfig.encode = function encode(message, writer) { + DataCacheConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.dataCacheEnabled != null && Object.hasOwnProperty.call(message, "dataCacheEnabled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.dataCacheEnabled); return writer; @@ -129192,7 +138840,7 @@ * @returns {$protobuf.Writer} Writer */ DataCacheConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -129206,9 +138854,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DataCacheConfig.decode = function decode(reader, length, error) { + DataCacheConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DataCacheConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -129220,7 +138872,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -129251,10 +138903,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DataCacheConfig.verify = function verify(message) { + DataCacheConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.dataCacheEnabled != null && message.hasOwnProperty("dataCacheEnabled")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.dataCacheEnabled != null && Object.hasOwnProperty.call(message, "dataCacheEnabled")) if (typeof message.dataCacheEnabled !== "boolean") return "dataCacheEnabled: boolean expected"; return null; @@ -129268,9 +138924,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.DataCacheConfig} DataCacheConfig */ - DataCacheConfig.fromObject = function fromObject(object) { + DataCacheConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.DataCacheConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DataCacheConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.DataCacheConfig(); if (object.dataCacheEnabled != null) message.dataCacheEnabled = Boolean(object.dataCacheEnabled); @@ -129286,13 +138948,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DataCacheConfig.toObject = function toObject(message, options) { + DataCacheConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.dataCacheEnabled = false; - if (message.dataCacheEnabled != null && message.hasOwnProperty("dataCacheEnabled")) + if (message.dataCacheEnabled != null && Object.hasOwnProperty.call(message, "dataCacheEnabled")) object.dataCacheEnabled = message.dataCacheEnabled; return object; }; @@ -129347,7 +139013,7 @@ function FinalBackupConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -129403,9 +139069,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FinalBackupConfig.encode = function encode(message, writer) { + FinalBackupConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.enabled); if (message.retentionDays != null && Object.hasOwnProperty.call(message, "retentionDays")) @@ -129423,7 +139093,7 @@ * @returns {$protobuf.Writer} Writer */ FinalBackupConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -129437,9 +139107,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FinalBackupConfig.decode = function decode(reader, length, error) { + FinalBackupConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.FinalBackupConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -129455,7 +139129,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -129486,16 +139160,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FinalBackupConfig.verify = function verify(message) { + FinalBackupConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.enabled != null && message.hasOwnProperty("enabled")) { + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) { properties._enabled = 1; if (typeof message.enabled !== "boolean") return "enabled: boolean expected"; } - if (message.retentionDays != null && message.hasOwnProperty("retentionDays")) { + if (message.retentionDays != null && Object.hasOwnProperty.call(message, "retentionDays")) { properties._retentionDays = 1; if (!$util.isInteger(message.retentionDays)) return "retentionDays: integer expected"; @@ -129511,9 +139189,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.FinalBackupConfig} FinalBackupConfig */ - FinalBackupConfig.fromObject = function fromObject(object) { + FinalBackupConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.FinalBackupConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.FinalBackupConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.FinalBackupConfig(); if (object.enabled != null) message.enabled = Boolean(object.enabled); @@ -129531,16 +139215,20 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FinalBackupConfig.toObject = function toObject(message, options) { + FinalBackupConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.enabled != null && message.hasOwnProperty("enabled")) { + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) { object.enabled = message.enabled; if (options.oneofs) object._enabled = "enabled"; } - if (message.retentionDays != null && message.hasOwnProperty("retentionDays")) { + if (message.retentionDays != null && Object.hasOwnProperty.call(message, "retentionDays")) { object.retentionDays = message.retentionDays; if (options.oneofs) object._retentionDays = "retentionDays"; @@ -129624,6 +139312,7 @@ * @property {google.cloud.sql.v1beta4.IConnectionPoolConfig|null} [connectionPoolConfig] Settings connectionPoolConfig * @property {google.cloud.sql.v1beta4.IFinalBackupConfig|null} [finalBackupConfig] Settings finalBackupConfig * @property {google.cloud.sql.v1beta4.IReadPoolAutoScaleConfig|null} [readPoolAutoScaleConfig] Settings readPoolAutoScaleConfig + * @property {google.protobuf.IBoolValue|null} [acceleratedReplicaMode] Settings acceleratedReplicaMode * @property {boolean|null} [autoUpgradeEnabled] Settings autoUpgradeEnabled * @property {google.cloud.sql.v1beta4.ISqlServerEntraIdConfig|null} [entraidConfig] Settings entraidConfig * @property {google.cloud.sql.v1beta4.Settings.DataApiAccess|null} [dataApiAccess] Settings dataApiAccess @@ -129645,7 +139334,7 @@ this.denyMaintenancePeriods = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -129977,6 +139666,14 @@ */ Settings.prototype.readPoolAutoScaleConfig = null; + /** + * Settings acceleratedReplicaMode. + * @member {google.protobuf.IBoolValue|null|undefined} acceleratedReplicaMode + * @memberof google.cloud.sql.v1beta4.Settings + * @instance + */ + Settings.prototype.acceleratedReplicaMode = null; + /** * Settings autoUpgradeEnabled. * @member {boolean|null|undefined} autoUpgradeEnabled @@ -130075,11 +139772,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Settings.encode = function encode(message, writer) { + Settings.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.settingsVersion != null && Object.hasOwnProperty.call(message, "settingsVersion")) - $root.google.protobuf.Int64Value.encode(message.settingsVersion, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.settingsVersion, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.authorizedGaeApplications != null && message.authorizedGaeApplications.length) for (var i = 0; i < message.authorizedGaeApplications.length; ++i) writer.uint32(/* id 2, wireType 2 =*/18).string(message.authorizedGaeApplications[i]); @@ -130097,81 +139798,83 @@ if (message.replicationType != null && Object.hasOwnProperty.call(message, "replicationType")) writer.uint32(/* id 8, wireType 0 =*/64).int32(message.replicationType); if (message.storageAutoResizeLimit != null && Object.hasOwnProperty.call(message, "storageAutoResizeLimit")) - $root.google.protobuf.Int64Value.encode(message.storageAutoResizeLimit, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.storageAutoResizeLimit, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); if (message.activationPolicy != null && Object.hasOwnProperty.call(message, "activationPolicy")) writer.uint32(/* id 10, wireType 0 =*/80).int32(message.activationPolicy); if (message.ipConfiguration != null && Object.hasOwnProperty.call(message, "ipConfiguration")) - $root.google.cloud.sql.v1beta4.IpConfiguration.encode(message.ipConfiguration, writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.IpConfiguration.encode(message.ipConfiguration, writer.uint32(/* id 11, wireType 2 =*/90).fork(), q + 1).ldelim(); if (message.storageAutoResize != null && Object.hasOwnProperty.call(message, "storageAutoResize")) - $root.google.protobuf.BoolValue.encode(message.storageAutoResize, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.storageAutoResize, writer.uint32(/* id 12, wireType 2 =*/98).fork(), q + 1).ldelim(); if (message.locationPreference != null && Object.hasOwnProperty.call(message, "locationPreference")) - $root.google.cloud.sql.v1beta4.LocationPreference.encode(message.locationPreference, writer.uint32(/* id 13, wireType 2 =*/106).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.LocationPreference.encode(message.locationPreference, writer.uint32(/* id 13, wireType 2 =*/106).fork(), q + 1).ldelim(); if (message.databaseFlags != null && message.databaseFlags.length) for (var i = 0; i < message.databaseFlags.length; ++i) - $root.google.cloud.sql.v1beta4.DatabaseFlags.encode(message.databaseFlags[i], writer.uint32(/* id 14, wireType 2 =*/114).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DatabaseFlags.encode(message.databaseFlags[i], writer.uint32(/* id 14, wireType 2 =*/114).fork(), q + 1).ldelim(); if (message.dataDiskType != null && Object.hasOwnProperty.call(message, "dataDiskType")) writer.uint32(/* id 15, wireType 0 =*/120).int32(message.dataDiskType); if (message.maintenanceWindow != null && Object.hasOwnProperty.call(message, "maintenanceWindow")) - $root.google.cloud.sql.v1beta4.MaintenanceWindow.encode(message.maintenanceWindow, writer.uint32(/* id 16, wireType 2 =*/130).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.MaintenanceWindow.encode(message.maintenanceWindow, writer.uint32(/* id 16, wireType 2 =*/130).fork(), q + 1).ldelim(); if (message.backupConfiguration != null && Object.hasOwnProperty.call(message, "backupConfiguration")) - $root.google.cloud.sql.v1beta4.BackupConfiguration.encode(message.backupConfiguration, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.BackupConfiguration.encode(message.backupConfiguration, writer.uint32(/* id 17, wireType 2 =*/138).fork(), q + 1).ldelim(); if (message.databaseReplicationEnabled != null && Object.hasOwnProperty.call(message, "databaseReplicationEnabled")) - $root.google.protobuf.BoolValue.encode(message.databaseReplicationEnabled, writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.databaseReplicationEnabled, writer.uint32(/* id 18, wireType 2 =*/146).fork(), q + 1).ldelim(); if (message.crashSafeReplicationEnabled != null && Object.hasOwnProperty.call(message, "crashSafeReplicationEnabled")) - $root.google.protobuf.BoolValue.encode(message.crashSafeReplicationEnabled, writer.uint32(/* id 19, wireType 2 =*/154).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.crashSafeReplicationEnabled, writer.uint32(/* id 19, wireType 2 =*/154).fork(), q + 1).ldelim(); if (message.dataDiskSizeGb != null && Object.hasOwnProperty.call(message, "dataDiskSizeGb")) - $root.google.protobuf.Int64Value.encode(message.dataDiskSizeGb, writer.uint32(/* id 20, wireType 2 =*/162).fork()).ldelim(); + $root.google.protobuf.Int64Value.encode(message.dataDiskSizeGb, writer.uint32(/* id 20, wireType 2 =*/162).fork(), q + 1).ldelim(); if (message.activeDirectoryConfig != null && Object.hasOwnProperty.call(message, "activeDirectoryConfig")) - $root.google.cloud.sql.v1beta4.SqlActiveDirectoryConfig.encode(message.activeDirectoryConfig, writer.uint32(/* id 22, wireType 2 =*/178).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SqlActiveDirectoryConfig.encode(message.activeDirectoryConfig, writer.uint32(/* id 22, wireType 2 =*/178).fork(), q + 1).ldelim(); if (message.collation != null && Object.hasOwnProperty.call(message, "collation")) writer.uint32(/* id 23, wireType 2 =*/186).string(message.collation); if (message.denyMaintenancePeriods != null && message.denyMaintenancePeriods.length) for (var i = 0; i < message.denyMaintenancePeriods.length; ++i) - $root.google.cloud.sql.v1beta4.DenyMaintenancePeriod.encode(message.denyMaintenancePeriods[i], writer.uint32(/* id 24, wireType 2 =*/194).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DenyMaintenancePeriod.encode(message.denyMaintenancePeriods[i], writer.uint32(/* id 24, wireType 2 =*/194).fork(), q + 1).ldelim(); if (message.insightsConfig != null && Object.hasOwnProperty.call(message, "insightsConfig")) - $root.google.cloud.sql.v1beta4.InsightsConfig.encode(message.insightsConfig, writer.uint32(/* id 25, wireType 2 =*/202).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.InsightsConfig.encode(message.insightsConfig, writer.uint32(/* id 25, wireType 2 =*/202).fork(), q + 1).ldelim(); if (message.passwordValidationPolicy != null && Object.hasOwnProperty.call(message, "passwordValidationPolicy")) - $root.google.cloud.sql.v1beta4.PasswordValidationPolicy.encode(message.passwordValidationPolicy, writer.uint32(/* id 27, wireType 2 =*/218).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.PasswordValidationPolicy.encode(message.passwordValidationPolicy, writer.uint32(/* id 27, wireType 2 =*/218).fork(), q + 1).ldelim(); if (message.sqlServerAuditConfig != null && Object.hasOwnProperty.call(message, "sqlServerAuditConfig")) - $root.google.cloud.sql.v1beta4.SqlServerAuditConfig.encode(message.sqlServerAuditConfig, writer.uint32(/* id 29, wireType 2 =*/234).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SqlServerAuditConfig.encode(message.sqlServerAuditConfig, writer.uint32(/* id 29, wireType 2 =*/234).fork(), q + 1).ldelim(); if (message.connectorEnforcement != null && Object.hasOwnProperty.call(message, "connectorEnforcement")) writer.uint32(/* id 32, wireType 0 =*/256).int32(message.connectorEnforcement); if (message.deletionProtectionEnabled != null && Object.hasOwnProperty.call(message, "deletionProtectionEnabled")) - $root.google.protobuf.BoolValue.encode(message.deletionProtectionEnabled, writer.uint32(/* id 33, wireType 2 =*/266).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.deletionProtectionEnabled, writer.uint32(/* id 33, wireType 2 =*/266).fork(), q + 1).ldelim(); if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) writer.uint32(/* id 34, wireType 2 =*/274).string(message.timeZone); if (message.advancedMachineFeatures != null && Object.hasOwnProperty.call(message, "advancedMachineFeatures")) - $root.google.cloud.sql.v1beta4.AdvancedMachineFeatures.encode(message.advancedMachineFeatures, writer.uint32(/* id 35, wireType 2 =*/282).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.AdvancedMachineFeatures.encode(message.advancedMachineFeatures, writer.uint32(/* id 35, wireType 2 =*/282).fork(), q + 1).ldelim(); if (message.dataCacheConfig != null && Object.hasOwnProperty.call(message, "dataCacheConfig")) - $root.google.cloud.sql.v1beta4.DataCacheConfig.encode(message.dataCacheConfig, writer.uint32(/* id 37, wireType 2 =*/298).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DataCacheConfig.encode(message.dataCacheConfig, writer.uint32(/* id 37, wireType 2 =*/298).fork(), q + 1).ldelim(); if (message.edition != null && Object.hasOwnProperty.call(message, "edition")) writer.uint32(/* id 38, wireType 0 =*/304).int32(message.edition); if (message.replicationLagMaxSeconds != null && Object.hasOwnProperty.call(message, "replicationLagMaxSeconds")) - $root.google.protobuf.Int32Value.encode(message.replicationLagMaxSeconds, writer.uint32(/* id 39, wireType 2 =*/314).fork()).ldelim(); + $root.google.protobuf.Int32Value.encode(message.replicationLagMaxSeconds, writer.uint32(/* id 39, wireType 2 =*/314).fork(), q + 1).ldelim(); if (message.enableGoogleMlIntegration != null && Object.hasOwnProperty.call(message, "enableGoogleMlIntegration")) - $root.google.protobuf.BoolValue.encode(message.enableGoogleMlIntegration, writer.uint32(/* id 40, wireType 2 =*/322).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.enableGoogleMlIntegration, writer.uint32(/* id 40, wireType 2 =*/322).fork(), q + 1).ldelim(); if (message.enableDataplexIntegration != null && Object.hasOwnProperty.call(message, "enableDataplexIntegration")) - $root.google.protobuf.BoolValue.encode(message.enableDataplexIntegration, writer.uint32(/* id 41, wireType 2 =*/330).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.enableDataplexIntegration, writer.uint32(/* id 41, wireType 2 =*/330).fork(), q + 1).ldelim(); if (message.retainBackupsOnDelete != null && Object.hasOwnProperty.call(message, "retainBackupsOnDelete")) - $root.google.protobuf.BoolValue.encode(message.retainBackupsOnDelete, writer.uint32(/* id 42, wireType 2 =*/338).fork()).ldelim(); + $root.google.protobuf.BoolValue.encode(message.retainBackupsOnDelete, writer.uint32(/* id 42, wireType 2 =*/338).fork(), q + 1).ldelim(); if (message.dataDiskProvisionedIops != null && Object.hasOwnProperty.call(message, "dataDiskProvisionedIops")) writer.uint32(/* id 43, wireType 0 =*/344).int64(message.dataDiskProvisionedIops); if (message.dataDiskProvisionedThroughput != null && Object.hasOwnProperty.call(message, "dataDiskProvisionedThroughput")) writer.uint32(/* id 44, wireType 0 =*/352).int64(message.dataDiskProvisionedThroughput); if (message.connectionPoolConfig != null && Object.hasOwnProperty.call(message, "connectionPoolConfig")) - $root.google.cloud.sql.v1beta4.ConnectionPoolConfig.encode(message.connectionPoolConfig, writer.uint32(/* id 45, wireType 2 =*/362).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ConnectionPoolConfig.encode(message.connectionPoolConfig, writer.uint32(/* id 45, wireType 2 =*/362).fork(), q + 1).ldelim(); if (message.finalBackupConfig != null && Object.hasOwnProperty.call(message, "finalBackupConfig")) - $root.google.cloud.sql.v1beta4.FinalBackupConfig.encode(message.finalBackupConfig, writer.uint32(/* id 47, wireType 2 =*/378).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.FinalBackupConfig.encode(message.finalBackupConfig, writer.uint32(/* id 47, wireType 2 =*/378).fork(), q + 1).ldelim(); if (message.readPoolAutoScaleConfig != null && Object.hasOwnProperty.call(message, "readPoolAutoScaleConfig")) - $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.encode(message.readPoolAutoScaleConfig, writer.uint32(/* id 48, wireType 2 =*/386).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.encode(message.readPoolAutoScaleConfig, writer.uint32(/* id 48, wireType 2 =*/386).fork(), q + 1).ldelim(); + if (message.acceleratedReplicaMode != null && Object.hasOwnProperty.call(message, "acceleratedReplicaMode")) + $root.google.protobuf.BoolValue.encode(message.acceleratedReplicaMode, writer.uint32(/* id 49, wireType 2 =*/394).fork(), q + 1).ldelim(); if (message.autoUpgradeEnabled != null && Object.hasOwnProperty.call(message, "autoUpgradeEnabled")) writer.uint32(/* id 50, wireType 0 =*/400).bool(message.autoUpgradeEnabled); if (message.entraidConfig != null && Object.hasOwnProperty.call(message, "entraidConfig")) - $root.google.cloud.sql.v1beta4.SqlServerEntraIdConfig.encode(message.entraidConfig, writer.uint32(/* id 52, wireType 2 =*/418).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SqlServerEntraIdConfig.encode(message.entraidConfig, writer.uint32(/* id 52, wireType 2 =*/418).fork(), q + 1).ldelim(); if (message.dataApiAccess != null && Object.hasOwnProperty.call(message, "dataApiAccess")) writer.uint32(/* id 53, wireType 0 =*/424).int32(message.dataApiAccess); if (message.performanceCaptureConfig != null && Object.hasOwnProperty.call(message, "performanceCaptureConfig")) - $root.google.cloud.sql.v1beta4.PerformanceCaptureConfig.encode(message.performanceCaptureConfig, writer.uint32(/* id 54, wireType 2 =*/434).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.PerformanceCaptureConfig.encode(message.performanceCaptureConfig, writer.uint32(/* id 54, wireType 2 =*/434).fork(), q + 1).ldelim(); return writer; }; @@ -130185,7 +139888,7 @@ * @returns {$protobuf.Writer} Writer */ Settings.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -130199,9 +139902,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Settings.decode = function decode(reader, length, error) { + Settings.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.Settings(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -130209,7 +139916,7 @@ break; switch (tag >>> 3) { case 1: { - message.settingsVersion = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.settingsVersion = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -130242,10 +139949,12 @@ value = reader.string(); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.userLabels, key); message.userLabels[key] = value; break; } @@ -130262,7 +139971,7 @@ break; } case 9: { - message.storageAutoResizeLimit = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.storageAutoResizeLimit = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { @@ -130270,21 +139979,21 @@ break; } case 11: { - message.ipConfiguration = $root.google.cloud.sql.v1beta4.IpConfiguration.decode(reader, reader.uint32()); + message.ipConfiguration = $root.google.cloud.sql.v1beta4.IpConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 12: { - message.storageAutoResize = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.storageAutoResize = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 13: { - message.locationPreference = $root.google.cloud.sql.v1beta4.LocationPreference.decode(reader, reader.uint32()); + message.locationPreference = $root.google.cloud.sql.v1beta4.LocationPreference.decode(reader, reader.uint32(), undefined, long + 1); break; } case 14: { if (!(message.databaseFlags && message.databaseFlags.length)) message.databaseFlags = []; - message.databaseFlags.push($root.google.cloud.sql.v1beta4.DatabaseFlags.decode(reader, reader.uint32())); + message.databaseFlags.push($root.google.cloud.sql.v1beta4.DatabaseFlags.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 15: { @@ -130292,27 +140001,27 @@ break; } case 16: { - message.maintenanceWindow = $root.google.cloud.sql.v1beta4.MaintenanceWindow.decode(reader, reader.uint32()); + message.maintenanceWindow = $root.google.cloud.sql.v1beta4.MaintenanceWindow.decode(reader, reader.uint32(), undefined, long + 1); break; } case 17: { - message.backupConfiguration = $root.google.cloud.sql.v1beta4.BackupConfiguration.decode(reader, reader.uint32()); + message.backupConfiguration = $root.google.cloud.sql.v1beta4.BackupConfiguration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 18: { - message.databaseReplicationEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.databaseReplicationEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 19: { - message.crashSafeReplicationEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.crashSafeReplicationEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 20: { - message.dataDiskSizeGb = $root.google.protobuf.Int64Value.decode(reader, reader.uint32()); + message.dataDiskSizeGb = $root.google.protobuf.Int64Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 22: { - message.activeDirectoryConfig = $root.google.cloud.sql.v1beta4.SqlActiveDirectoryConfig.decode(reader, reader.uint32()); + message.activeDirectoryConfig = $root.google.cloud.sql.v1beta4.SqlActiveDirectoryConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 23: { @@ -130322,19 +140031,19 @@ case 24: { if (!(message.denyMaintenancePeriods && message.denyMaintenancePeriods.length)) message.denyMaintenancePeriods = []; - message.denyMaintenancePeriods.push($root.google.cloud.sql.v1beta4.DenyMaintenancePeriod.decode(reader, reader.uint32())); + message.denyMaintenancePeriods.push($root.google.cloud.sql.v1beta4.DenyMaintenancePeriod.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 25: { - message.insightsConfig = $root.google.cloud.sql.v1beta4.InsightsConfig.decode(reader, reader.uint32()); + message.insightsConfig = $root.google.cloud.sql.v1beta4.InsightsConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 27: { - message.passwordValidationPolicy = $root.google.cloud.sql.v1beta4.PasswordValidationPolicy.decode(reader, reader.uint32()); + message.passwordValidationPolicy = $root.google.cloud.sql.v1beta4.PasswordValidationPolicy.decode(reader, reader.uint32(), undefined, long + 1); break; } case 29: { - message.sqlServerAuditConfig = $root.google.cloud.sql.v1beta4.SqlServerAuditConfig.decode(reader, reader.uint32()); + message.sqlServerAuditConfig = $root.google.cloud.sql.v1beta4.SqlServerAuditConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 38: { @@ -130346,7 +140055,7 @@ break; } case 33: { - message.deletionProtectionEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.deletionProtectionEnabled = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 34: { @@ -130354,27 +140063,27 @@ break; } case 35: { - message.advancedMachineFeatures = $root.google.cloud.sql.v1beta4.AdvancedMachineFeatures.decode(reader, reader.uint32()); + message.advancedMachineFeatures = $root.google.cloud.sql.v1beta4.AdvancedMachineFeatures.decode(reader, reader.uint32(), undefined, long + 1); break; } case 37: { - message.dataCacheConfig = $root.google.cloud.sql.v1beta4.DataCacheConfig.decode(reader, reader.uint32()); + message.dataCacheConfig = $root.google.cloud.sql.v1beta4.DataCacheConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 39: { - message.replicationLagMaxSeconds = $root.google.protobuf.Int32Value.decode(reader, reader.uint32()); + message.replicationLagMaxSeconds = $root.google.protobuf.Int32Value.decode(reader, reader.uint32(), undefined, long + 1); break; } case 40: { - message.enableGoogleMlIntegration = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.enableGoogleMlIntegration = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 41: { - message.enableDataplexIntegration = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.enableDataplexIntegration = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 42: { - message.retainBackupsOnDelete = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.retainBackupsOnDelete = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 43: { @@ -130386,15 +140095,19 @@ break; } case 45: { - message.connectionPoolConfig = $root.google.cloud.sql.v1beta4.ConnectionPoolConfig.decode(reader, reader.uint32()); + message.connectionPoolConfig = $root.google.cloud.sql.v1beta4.ConnectionPoolConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 47: { - message.finalBackupConfig = $root.google.cloud.sql.v1beta4.FinalBackupConfig.decode(reader, reader.uint32()); + message.finalBackupConfig = $root.google.cloud.sql.v1beta4.FinalBackupConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 48: { - message.readPoolAutoScaleConfig = $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.decode(reader, reader.uint32()); + message.readPoolAutoScaleConfig = $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + case 49: { + message.acceleratedReplicaMode = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 50: { @@ -130402,7 +140115,7 @@ break; } case 52: { - message.entraidConfig = $root.google.cloud.sql.v1beta4.SqlServerEntraIdConfig.decode(reader, reader.uint32()); + message.entraidConfig = $root.google.cloud.sql.v1beta4.SqlServerEntraIdConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 53: { @@ -130410,11 +140123,11 @@ break; } case 54: { - message.performanceCaptureConfig = $root.google.cloud.sql.v1beta4.PerformanceCaptureConfig.decode(reader, reader.uint32()); + message.performanceCaptureConfig = $root.google.cloud.sql.v1beta4.PerformanceCaptureConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -130445,29 +140158,33 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Settings.verify = function verify(message) { + Settings.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.settingsVersion != null && message.hasOwnProperty("settingsVersion")) { - var error = $root.google.protobuf.Int64Value.verify(message.settingsVersion); + if (message.settingsVersion != null && Object.hasOwnProperty.call(message, "settingsVersion")) { + var error = $root.google.protobuf.Int64Value.verify(message.settingsVersion, long + 1); if (error) return "settingsVersion." + error; } - if (message.authorizedGaeApplications != null && message.hasOwnProperty("authorizedGaeApplications")) { + if (message.authorizedGaeApplications != null && Object.hasOwnProperty.call(message, "authorizedGaeApplications")) { if (!Array.isArray(message.authorizedGaeApplications)) return "authorizedGaeApplications: array expected"; for (var i = 0; i < message.authorizedGaeApplications.length; ++i) if (!$util.isString(message.authorizedGaeApplications[i])) return "authorizedGaeApplications: string[] expected"; } - if (message.tier != null && message.hasOwnProperty("tier")) + if (message.tier != null && Object.hasOwnProperty.call(message, "tier")) if (!$util.isString(message.tier)) return "tier: string expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.userLabels != null && message.hasOwnProperty("userLabels")) { + if (message.userLabels != null && Object.hasOwnProperty.call(message, "userLabels")) { if (!$util.isObject(message.userLabels)) return "userLabels: object expected"; var key = Object.keys(message.userLabels); @@ -130475,7 +140192,7 @@ if (!$util.isString(message.userLabels[key[i]])) return "userLabels: string{k:string} expected"; } - if (message.availabilityType != null && message.hasOwnProperty("availabilityType")) + if (message.availabilityType != null && Object.hasOwnProperty.call(message, "availabilityType")) switch (message.availabilityType) { default: return "availabilityType: enum value expected"; @@ -130484,7 +140201,7 @@ case 2: break; } - if (message.pricingPlan != null && message.hasOwnProperty("pricingPlan")) + if (message.pricingPlan != null && Object.hasOwnProperty.call(message, "pricingPlan")) switch (message.pricingPlan) { default: return "pricingPlan: enum value expected"; @@ -130493,7 +140210,7 @@ case 2: break; } - if (message.replicationType != null && message.hasOwnProperty("replicationType")) + if (message.replicationType != null && Object.hasOwnProperty.call(message, "replicationType")) switch (message.replicationType) { default: return "replicationType: enum value expected"; @@ -130502,12 +140219,12 @@ case 2: break; } - if (message.storageAutoResizeLimit != null && message.hasOwnProperty("storageAutoResizeLimit")) { - var error = $root.google.protobuf.Int64Value.verify(message.storageAutoResizeLimit); + if (message.storageAutoResizeLimit != null && Object.hasOwnProperty.call(message, "storageAutoResizeLimit")) { + var error = $root.google.protobuf.Int64Value.verify(message.storageAutoResizeLimit, long + 1); if (error) return "storageAutoResizeLimit." + error; } - if (message.activationPolicy != null && message.hasOwnProperty("activationPolicy")) + if (message.activationPolicy != null && Object.hasOwnProperty.call(message, "activationPolicy")) switch (message.activationPolicy) { default: return "activationPolicy: enum value expected"; @@ -130517,31 +140234,31 @@ case 3: break; } - if (message.ipConfiguration != null && message.hasOwnProperty("ipConfiguration")) { - var error = $root.google.cloud.sql.v1beta4.IpConfiguration.verify(message.ipConfiguration); + if (message.ipConfiguration != null && Object.hasOwnProperty.call(message, "ipConfiguration")) { + var error = $root.google.cloud.sql.v1beta4.IpConfiguration.verify(message.ipConfiguration, long + 1); if (error) return "ipConfiguration." + error; } - if (message.storageAutoResize != null && message.hasOwnProperty("storageAutoResize")) { - var error = $root.google.protobuf.BoolValue.verify(message.storageAutoResize); + if (message.storageAutoResize != null && Object.hasOwnProperty.call(message, "storageAutoResize")) { + var error = $root.google.protobuf.BoolValue.verify(message.storageAutoResize, long + 1); if (error) return "storageAutoResize." + error; } - if (message.locationPreference != null && message.hasOwnProperty("locationPreference")) { - var error = $root.google.cloud.sql.v1beta4.LocationPreference.verify(message.locationPreference); + if (message.locationPreference != null && Object.hasOwnProperty.call(message, "locationPreference")) { + var error = $root.google.cloud.sql.v1beta4.LocationPreference.verify(message.locationPreference, long + 1); if (error) return "locationPreference." + error; } - if (message.databaseFlags != null && message.hasOwnProperty("databaseFlags")) { + if (message.databaseFlags != null && Object.hasOwnProperty.call(message, "databaseFlags")) { if (!Array.isArray(message.databaseFlags)) return "databaseFlags: array expected"; for (var i = 0; i < message.databaseFlags.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.DatabaseFlags.verify(message.databaseFlags[i]); + var error = $root.google.cloud.sql.v1beta4.DatabaseFlags.verify(message.databaseFlags[i], long + 1); if (error) return "databaseFlags." + error; } } - if (message.dataDiskType != null && message.hasOwnProperty("dataDiskType")) + if (message.dataDiskType != null && Object.hasOwnProperty.call(message, "dataDiskType")) switch (message.dataDiskType) { default: return "dataDiskType: enum value expected"; @@ -130552,73 +140269,74 @@ case 4: break; } - if (message.maintenanceWindow != null && message.hasOwnProperty("maintenanceWindow")) { - var error = $root.google.cloud.sql.v1beta4.MaintenanceWindow.verify(message.maintenanceWindow); + if (message.maintenanceWindow != null && Object.hasOwnProperty.call(message, "maintenanceWindow")) { + var error = $root.google.cloud.sql.v1beta4.MaintenanceWindow.verify(message.maintenanceWindow, long + 1); if (error) return "maintenanceWindow." + error; } - if (message.backupConfiguration != null && message.hasOwnProperty("backupConfiguration")) { - var error = $root.google.cloud.sql.v1beta4.BackupConfiguration.verify(message.backupConfiguration); + if (message.backupConfiguration != null && Object.hasOwnProperty.call(message, "backupConfiguration")) { + var error = $root.google.cloud.sql.v1beta4.BackupConfiguration.verify(message.backupConfiguration, long + 1); if (error) return "backupConfiguration." + error; } - if (message.databaseReplicationEnabled != null && message.hasOwnProperty("databaseReplicationEnabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.databaseReplicationEnabled); + if (message.databaseReplicationEnabled != null && Object.hasOwnProperty.call(message, "databaseReplicationEnabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.databaseReplicationEnabled, long + 1); if (error) return "databaseReplicationEnabled." + error; } - if (message.crashSafeReplicationEnabled != null && message.hasOwnProperty("crashSafeReplicationEnabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.crashSafeReplicationEnabled); + if (message.crashSafeReplicationEnabled != null && Object.hasOwnProperty.call(message, "crashSafeReplicationEnabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.crashSafeReplicationEnabled, long + 1); if (error) return "crashSafeReplicationEnabled." + error; } - if (message.dataDiskSizeGb != null && message.hasOwnProperty("dataDiskSizeGb")) { - var error = $root.google.protobuf.Int64Value.verify(message.dataDiskSizeGb); + if (message.dataDiskSizeGb != null && Object.hasOwnProperty.call(message, "dataDiskSizeGb")) { + var error = $root.google.protobuf.Int64Value.verify(message.dataDiskSizeGb, long + 1); if (error) return "dataDiskSizeGb." + error; } - if (message.activeDirectoryConfig != null && message.hasOwnProperty("activeDirectoryConfig")) { - var error = $root.google.cloud.sql.v1beta4.SqlActiveDirectoryConfig.verify(message.activeDirectoryConfig); + if (message.activeDirectoryConfig != null && Object.hasOwnProperty.call(message, "activeDirectoryConfig")) { + var error = $root.google.cloud.sql.v1beta4.SqlActiveDirectoryConfig.verify(message.activeDirectoryConfig, long + 1); if (error) return "activeDirectoryConfig." + error; } - if (message.collation != null && message.hasOwnProperty("collation")) + if (message.collation != null && Object.hasOwnProperty.call(message, "collation")) if (!$util.isString(message.collation)) return "collation: string expected"; - if (message.denyMaintenancePeriods != null && message.hasOwnProperty("denyMaintenancePeriods")) { + if (message.denyMaintenancePeriods != null && Object.hasOwnProperty.call(message, "denyMaintenancePeriods")) { if (!Array.isArray(message.denyMaintenancePeriods)) return "denyMaintenancePeriods: array expected"; for (var i = 0; i < message.denyMaintenancePeriods.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.DenyMaintenancePeriod.verify(message.denyMaintenancePeriods[i]); + var error = $root.google.cloud.sql.v1beta4.DenyMaintenancePeriod.verify(message.denyMaintenancePeriods[i], long + 1); if (error) return "denyMaintenancePeriods." + error; } } - if (message.insightsConfig != null && message.hasOwnProperty("insightsConfig")) { - var error = $root.google.cloud.sql.v1beta4.InsightsConfig.verify(message.insightsConfig); + if (message.insightsConfig != null && Object.hasOwnProperty.call(message, "insightsConfig")) { + var error = $root.google.cloud.sql.v1beta4.InsightsConfig.verify(message.insightsConfig, long + 1); if (error) return "insightsConfig." + error; } - if (message.passwordValidationPolicy != null && message.hasOwnProperty("passwordValidationPolicy")) { - var error = $root.google.cloud.sql.v1beta4.PasswordValidationPolicy.verify(message.passwordValidationPolicy); + if (message.passwordValidationPolicy != null && Object.hasOwnProperty.call(message, "passwordValidationPolicy")) { + var error = $root.google.cloud.sql.v1beta4.PasswordValidationPolicy.verify(message.passwordValidationPolicy, long + 1); if (error) return "passwordValidationPolicy." + error; } - if (message.sqlServerAuditConfig != null && message.hasOwnProperty("sqlServerAuditConfig")) { - var error = $root.google.cloud.sql.v1beta4.SqlServerAuditConfig.verify(message.sqlServerAuditConfig); + if (message.sqlServerAuditConfig != null && Object.hasOwnProperty.call(message, "sqlServerAuditConfig")) { + var error = $root.google.cloud.sql.v1beta4.SqlServerAuditConfig.verify(message.sqlServerAuditConfig, long + 1); if (error) return "sqlServerAuditConfig." + error; } - if (message.edition != null && message.hasOwnProperty("edition")) + if (message.edition != null && Object.hasOwnProperty.call(message, "edition")) switch (message.edition) { default: return "edition: enum value expected"; case 0: case 2: case 3: + case 5: break; } - if (message.connectorEnforcement != null && message.hasOwnProperty("connectorEnforcement")) + if (message.connectorEnforcement != null && Object.hasOwnProperty.call(message, "connectorEnforcement")) switch (message.connectorEnforcement) { default: return "connectorEnforcement: enum value expected"; @@ -130627,89 +140345,94 @@ case 2: break; } - if (message.deletionProtectionEnabled != null && message.hasOwnProperty("deletionProtectionEnabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.deletionProtectionEnabled); + if (message.deletionProtectionEnabled != null && Object.hasOwnProperty.call(message, "deletionProtectionEnabled")) { + var error = $root.google.protobuf.BoolValue.verify(message.deletionProtectionEnabled, long + 1); if (error) return "deletionProtectionEnabled." + error; } - if (message.timeZone != null && message.hasOwnProperty("timeZone")) + if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) if (!$util.isString(message.timeZone)) return "timeZone: string expected"; - if (message.advancedMachineFeatures != null && message.hasOwnProperty("advancedMachineFeatures")) { - var error = $root.google.cloud.sql.v1beta4.AdvancedMachineFeatures.verify(message.advancedMachineFeatures); + if (message.advancedMachineFeatures != null && Object.hasOwnProperty.call(message, "advancedMachineFeatures")) { + var error = $root.google.cloud.sql.v1beta4.AdvancedMachineFeatures.verify(message.advancedMachineFeatures, long + 1); if (error) return "advancedMachineFeatures." + error; } - if (message.dataCacheConfig != null && message.hasOwnProperty("dataCacheConfig")) { - var error = $root.google.cloud.sql.v1beta4.DataCacheConfig.verify(message.dataCacheConfig); + if (message.dataCacheConfig != null && Object.hasOwnProperty.call(message, "dataCacheConfig")) { + var error = $root.google.cloud.sql.v1beta4.DataCacheConfig.verify(message.dataCacheConfig, long + 1); if (error) return "dataCacheConfig." + error; } - if (message.replicationLagMaxSeconds != null && message.hasOwnProperty("replicationLagMaxSeconds")) { - var error = $root.google.protobuf.Int32Value.verify(message.replicationLagMaxSeconds); + if (message.replicationLagMaxSeconds != null && Object.hasOwnProperty.call(message, "replicationLagMaxSeconds")) { + var error = $root.google.protobuf.Int32Value.verify(message.replicationLagMaxSeconds, long + 1); if (error) return "replicationLagMaxSeconds." + error; } - if (message.enableGoogleMlIntegration != null && message.hasOwnProperty("enableGoogleMlIntegration")) { - var error = $root.google.protobuf.BoolValue.verify(message.enableGoogleMlIntegration); + if (message.enableGoogleMlIntegration != null && Object.hasOwnProperty.call(message, "enableGoogleMlIntegration")) { + var error = $root.google.protobuf.BoolValue.verify(message.enableGoogleMlIntegration, long + 1); if (error) return "enableGoogleMlIntegration." + error; } - if (message.enableDataplexIntegration != null && message.hasOwnProperty("enableDataplexIntegration")) { - var error = $root.google.protobuf.BoolValue.verify(message.enableDataplexIntegration); + if (message.enableDataplexIntegration != null && Object.hasOwnProperty.call(message, "enableDataplexIntegration")) { + var error = $root.google.protobuf.BoolValue.verify(message.enableDataplexIntegration, long + 1); if (error) return "enableDataplexIntegration." + error; } - if (message.retainBackupsOnDelete != null && message.hasOwnProperty("retainBackupsOnDelete")) { - var error = $root.google.protobuf.BoolValue.verify(message.retainBackupsOnDelete); + if (message.retainBackupsOnDelete != null && Object.hasOwnProperty.call(message, "retainBackupsOnDelete")) { + var error = $root.google.protobuf.BoolValue.verify(message.retainBackupsOnDelete, long + 1); if (error) return "retainBackupsOnDelete." + error; } - if (message.dataDiskProvisionedIops != null && message.hasOwnProperty("dataDiskProvisionedIops")) { + if (message.dataDiskProvisionedIops != null && Object.hasOwnProperty.call(message, "dataDiskProvisionedIops")) { properties._dataDiskProvisionedIops = 1; if (!$util.isInteger(message.dataDiskProvisionedIops) && !(message.dataDiskProvisionedIops && $util.isInteger(message.dataDiskProvisionedIops.low) && $util.isInteger(message.dataDiskProvisionedIops.high))) return "dataDiskProvisionedIops: integer|Long expected"; } - if (message.dataDiskProvisionedThroughput != null && message.hasOwnProperty("dataDiskProvisionedThroughput")) { + if (message.dataDiskProvisionedThroughput != null && Object.hasOwnProperty.call(message, "dataDiskProvisionedThroughput")) { properties._dataDiskProvisionedThroughput = 1; if (!$util.isInteger(message.dataDiskProvisionedThroughput) && !(message.dataDiskProvisionedThroughput && $util.isInteger(message.dataDiskProvisionedThroughput.low) && $util.isInteger(message.dataDiskProvisionedThroughput.high))) return "dataDiskProvisionedThroughput: integer|Long expected"; } - if (message.connectionPoolConfig != null && message.hasOwnProperty("connectionPoolConfig")) { + if (message.connectionPoolConfig != null && Object.hasOwnProperty.call(message, "connectionPoolConfig")) { properties._connectionPoolConfig = 1; { - var error = $root.google.cloud.sql.v1beta4.ConnectionPoolConfig.verify(message.connectionPoolConfig); + var error = $root.google.cloud.sql.v1beta4.ConnectionPoolConfig.verify(message.connectionPoolConfig, long + 1); if (error) return "connectionPoolConfig." + error; } } - if (message.finalBackupConfig != null && message.hasOwnProperty("finalBackupConfig")) { + if (message.finalBackupConfig != null && Object.hasOwnProperty.call(message, "finalBackupConfig")) { properties._finalBackupConfig = 1; { - var error = $root.google.cloud.sql.v1beta4.FinalBackupConfig.verify(message.finalBackupConfig); + var error = $root.google.cloud.sql.v1beta4.FinalBackupConfig.verify(message.finalBackupConfig, long + 1); if (error) return "finalBackupConfig." + error; } } - if (message.readPoolAutoScaleConfig != null && message.hasOwnProperty("readPoolAutoScaleConfig")) { + if (message.readPoolAutoScaleConfig != null && Object.hasOwnProperty.call(message, "readPoolAutoScaleConfig")) { properties._readPoolAutoScaleConfig = 1; { - var error = $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.verify(message.readPoolAutoScaleConfig); + var error = $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.verify(message.readPoolAutoScaleConfig, long + 1); if (error) return "readPoolAutoScaleConfig." + error; } } - if (message.autoUpgradeEnabled != null && message.hasOwnProperty("autoUpgradeEnabled")) { + if (message.acceleratedReplicaMode != null && Object.hasOwnProperty.call(message, "acceleratedReplicaMode")) { + var error = $root.google.protobuf.BoolValue.verify(message.acceleratedReplicaMode, long + 1); + if (error) + return "acceleratedReplicaMode." + error; + } + if (message.autoUpgradeEnabled != null && Object.hasOwnProperty.call(message, "autoUpgradeEnabled")) { properties._autoUpgradeEnabled = 1; if (typeof message.autoUpgradeEnabled !== "boolean") return "autoUpgradeEnabled: boolean expected"; } - if (message.entraidConfig != null && message.hasOwnProperty("entraidConfig")) { - var error = $root.google.cloud.sql.v1beta4.SqlServerEntraIdConfig.verify(message.entraidConfig); + if (message.entraidConfig != null && Object.hasOwnProperty.call(message, "entraidConfig")) { + var error = $root.google.cloud.sql.v1beta4.SqlServerEntraIdConfig.verify(message.entraidConfig, long + 1); if (error) return "entraidConfig." + error; } - if (message.dataApiAccess != null && message.hasOwnProperty("dataApiAccess")) { + if (message.dataApiAccess != null && Object.hasOwnProperty.call(message, "dataApiAccess")) { properties._dataApiAccess = 1; switch (message.dataApiAccess) { default: @@ -130720,8 +140443,8 @@ break; } } - if (message.performanceCaptureConfig != null && message.hasOwnProperty("performanceCaptureConfig")) { - var error = $root.google.cloud.sql.v1beta4.PerformanceCaptureConfig.verify(message.performanceCaptureConfig); + if (message.performanceCaptureConfig != null && Object.hasOwnProperty.call(message, "performanceCaptureConfig")) { + var error = $root.google.cloud.sql.v1beta4.PerformanceCaptureConfig.verify(message.performanceCaptureConfig, long + 1); if (error) return "performanceCaptureConfig." + error; } @@ -130736,14 +140459,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.Settings} Settings */ - Settings.fromObject = function fromObject(object) { + Settings.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.Settings) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.Settings: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.Settings(); if (object.settingsVersion != null) { - if (typeof object.settingsVersion !== "object") + if (!$util.isObject(object.settingsVersion)) throw TypeError(".google.cloud.sql.v1beta4.Settings.settingsVersion: object expected"); - message.settingsVersion = $root.google.protobuf.Int64Value.fromObject(object.settingsVersion); + message.settingsVersion = $root.google.protobuf.Int64Value.fromObject(object.settingsVersion, long + 1); } if (object.authorizedGaeApplications) { if (!Array.isArray(object.authorizedGaeApplications)) @@ -130757,11 +140486,14 @@ if (object.kind != null) message.kind = String(object.kind); if (object.userLabels) { - if (typeof object.userLabels !== "object") + if (!$util.isObject(object.userLabels)) throw TypeError(".google.cloud.sql.v1beta4.Settings.userLabels: object expected"); message.userLabels = {}; - for (var keys = Object.keys(object.userLabels), i = 0; i < keys.length; ++i) + for (var keys = Object.keys(object.userLabels), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.userLabels, keys[i]); message.userLabels[keys[i]] = String(object.userLabels[keys[i]]); + } } switch (object.availabilityType) { default: @@ -130824,9 +140556,9 @@ break; } if (object.storageAutoResizeLimit != null) { - if (typeof object.storageAutoResizeLimit !== "object") + if (!$util.isObject(object.storageAutoResizeLimit)) throw TypeError(".google.cloud.sql.v1beta4.Settings.storageAutoResizeLimit: object expected"); - message.storageAutoResizeLimit = $root.google.protobuf.Int64Value.fromObject(object.storageAutoResizeLimit); + message.storageAutoResizeLimit = $root.google.protobuf.Int64Value.fromObject(object.storageAutoResizeLimit, long + 1); } switch (object.activationPolicy) { default: @@ -130853,28 +140585,28 @@ break; } if (object.ipConfiguration != null) { - if (typeof object.ipConfiguration !== "object") + if (!$util.isObject(object.ipConfiguration)) throw TypeError(".google.cloud.sql.v1beta4.Settings.ipConfiguration: object expected"); - message.ipConfiguration = $root.google.cloud.sql.v1beta4.IpConfiguration.fromObject(object.ipConfiguration); + message.ipConfiguration = $root.google.cloud.sql.v1beta4.IpConfiguration.fromObject(object.ipConfiguration, long + 1); } if (object.storageAutoResize != null) { - if (typeof object.storageAutoResize !== "object") + if (!$util.isObject(object.storageAutoResize)) throw TypeError(".google.cloud.sql.v1beta4.Settings.storageAutoResize: object expected"); - message.storageAutoResize = $root.google.protobuf.BoolValue.fromObject(object.storageAutoResize); + message.storageAutoResize = $root.google.protobuf.BoolValue.fromObject(object.storageAutoResize, long + 1); } if (object.locationPreference != null) { - if (typeof object.locationPreference !== "object") + if (!$util.isObject(object.locationPreference)) throw TypeError(".google.cloud.sql.v1beta4.Settings.locationPreference: object expected"); - message.locationPreference = $root.google.cloud.sql.v1beta4.LocationPreference.fromObject(object.locationPreference); + message.locationPreference = $root.google.cloud.sql.v1beta4.LocationPreference.fromObject(object.locationPreference, long + 1); } if (object.databaseFlags) { if (!Array.isArray(object.databaseFlags)) throw TypeError(".google.cloud.sql.v1beta4.Settings.databaseFlags: array expected"); message.databaseFlags = []; for (var i = 0; i < object.databaseFlags.length; ++i) { - if (typeof object.databaseFlags[i] !== "object") + if (!$util.isObject(object.databaseFlags[i])) throw TypeError(".google.cloud.sql.v1beta4.Settings.databaseFlags: object expected"); - message.databaseFlags[i] = $root.google.cloud.sql.v1beta4.DatabaseFlags.fromObject(object.databaseFlags[i]); + message.databaseFlags[i] = $root.google.cloud.sql.v1beta4.DatabaseFlags.fromObject(object.databaseFlags[i], long + 1); } } switch (object.dataDiskType) { @@ -130906,34 +140638,34 @@ break; } if (object.maintenanceWindow != null) { - if (typeof object.maintenanceWindow !== "object") + if (!$util.isObject(object.maintenanceWindow)) throw TypeError(".google.cloud.sql.v1beta4.Settings.maintenanceWindow: object expected"); - message.maintenanceWindow = $root.google.cloud.sql.v1beta4.MaintenanceWindow.fromObject(object.maintenanceWindow); + message.maintenanceWindow = $root.google.cloud.sql.v1beta4.MaintenanceWindow.fromObject(object.maintenanceWindow, long + 1); } if (object.backupConfiguration != null) { - if (typeof object.backupConfiguration !== "object") + if (!$util.isObject(object.backupConfiguration)) throw TypeError(".google.cloud.sql.v1beta4.Settings.backupConfiguration: object expected"); - message.backupConfiguration = $root.google.cloud.sql.v1beta4.BackupConfiguration.fromObject(object.backupConfiguration); + message.backupConfiguration = $root.google.cloud.sql.v1beta4.BackupConfiguration.fromObject(object.backupConfiguration, long + 1); } if (object.databaseReplicationEnabled != null) { - if (typeof object.databaseReplicationEnabled !== "object") + if (!$util.isObject(object.databaseReplicationEnabled)) throw TypeError(".google.cloud.sql.v1beta4.Settings.databaseReplicationEnabled: object expected"); - message.databaseReplicationEnabled = $root.google.protobuf.BoolValue.fromObject(object.databaseReplicationEnabled); + message.databaseReplicationEnabled = $root.google.protobuf.BoolValue.fromObject(object.databaseReplicationEnabled, long + 1); } if (object.crashSafeReplicationEnabled != null) { - if (typeof object.crashSafeReplicationEnabled !== "object") + if (!$util.isObject(object.crashSafeReplicationEnabled)) throw TypeError(".google.cloud.sql.v1beta4.Settings.crashSafeReplicationEnabled: object expected"); - message.crashSafeReplicationEnabled = $root.google.protobuf.BoolValue.fromObject(object.crashSafeReplicationEnabled); + message.crashSafeReplicationEnabled = $root.google.protobuf.BoolValue.fromObject(object.crashSafeReplicationEnabled, long + 1); } if (object.dataDiskSizeGb != null) { - if (typeof object.dataDiskSizeGb !== "object") + if (!$util.isObject(object.dataDiskSizeGb)) throw TypeError(".google.cloud.sql.v1beta4.Settings.dataDiskSizeGb: object expected"); - message.dataDiskSizeGb = $root.google.protobuf.Int64Value.fromObject(object.dataDiskSizeGb); + message.dataDiskSizeGb = $root.google.protobuf.Int64Value.fromObject(object.dataDiskSizeGb, long + 1); } if (object.activeDirectoryConfig != null) { - if (typeof object.activeDirectoryConfig !== "object") + if (!$util.isObject(object.activeDirectoryConfig)) throw TypeError(".google.cloud.sql.v1beta4.Settings.activeDirectoryConfig: object expected"); - message.activeDirectoryConfig = $root.google.cloud.sql.v1beta4.SqlActiveDirectoryConfig.fromObject(object.activeDirectoryConfig); + message.activeDirectoryConfig = $root.google.cloud.sql.v1beta4.SqlActiveDirectoryConfig.fromObject(object.activeDirectoryConfig, long + 1); } if (object.collation != null) message.collation = String(object.collation); @@ -130942,25 +140674,25 @@ throw TypeError(".google.cloud.sql.v1beta4.Settings.denyMaintenancePeriods: array expected"); message.denyMaintenancePeriods = []; for (var i = 0; i < object.denyMaintenancePeriods.length; ++i) { - if (typeof object.denyMaintenancePeriods[i] !== "object") + if (!$util.isObject(object.denyMaintenancePeriods[i])) throw TypeError(".google.cloud.sql.v1beta4.Settings.denyMaintenancePeriods: object expected"); - message.denyMaintenancePeriods[i] = $root.google.cloud.sql.v1beta4.DenyMaintenancePeriod.fromObject(object.denyMaintenancePeriods[i]); + message.denyMaintenancePeriods[i] = $root.google.cloud.sql.v1beta4.DenyMaintenancePeriod.fromObject(object.denyMaintenancePeriods[i], long + 1); } } if (object.insightsConfig != null) { - if (typeof object.insightsConfig !== "object") + if (!$util.isObject(object.insightsConfig)) throw TypeError(".google.cloud.sql.v1beta4.Settings.insightsConfig: object expected"); - message.insightsConfig = $root.google.cloud.sql.v1beta4.InsightsConfig.fromObject(object.insightsConfig); + message.insightsConfig = $root.google.cloud.sql.v1beta4.InsightsConfig.fromObject(object.insightsConfig, long + 1); } if (object.passwordValidationPolicy != null) { - if (typeof object.passwordValidationPolicy !== "object") + if (!$util.isObject(object.passwordValidationPolicy)) throw TypeError(".google.cloud.sql.v1beta4.Settings.passwordValidationPolicy: object expected"); - message.passwordValidationPolicy = $root.google.cloud.sql.v1beta4.PasswordValidationPolicy.fromObject(object.passwordValidationPolicy); + message.passwordValidationPolicy = $root.google.cloud.sql.v1beta4.PasswordValidationPolicy.fromObject(object.passwordValidationPolicy, long + 1); } if (object.sqlServerAuditConfig != null) { - if (typeof object.sqlServerAuditConfig !== "object") + if (!$util.isObject(object.sqlServerAuditConfig)) throw TypeError(".google.cloud.sql.v1beta4.Settings.sqlServerAuditConfig: object expected"); - message.sqlServerAuditConfig = $root.google.cloud.sql.v1beta4.SqlServerAuditConfig.fromObject(object.sqlServerAuditConfig); + message.sqlServerAuditConfig = $root.google.cloud.sql.v1beta4.SqlServerAuditConfig.fromObject(object.sqlServerAuditConfig, long + 1); } switch (object.edition) { default: @@ -130981,6 +140713,10 @@ case 3: message.edition = 3; break; + case "DEVELOPER": + case 5: + message.edition = 5; + break; } switch (object.connectorEnforcement) { default: @@ -131003,45 +140739,45 @@ break; } if (object.deletionProtectionEnabled != null) { - if (typeof object.deletionProtectionEnabled !== "object") + if (!$util.isObject(object.deletionProtectionEnabled)) throw TypeError(".google.cloud.sql.v1beta4.Settings.deletionProtectionEnabled: object expected"); - message.deletionProtectionEnabled = $root.google.protobuf.BoolValue.fromObject(object.deletionProtectionEnabled); + message.deletionProtectionEnabled = $root.google.protobuf.BoolValue.fromObject(object.deletionProtectionEnabled, long + 1); } if (object.timeZone != null) message.timeZone = String(object.timeZone); if (object.advancedMachineFeatures != null) { - if (typeof object.advancedMachineFeatures !== "object") + if (!$util.isObject(object.advancedMachineFeatures)) throw TypeError(".google.cloud.sql.v1beta4.Settings.advancedMachineFeatures: object expected"); - message.advancedMachineFeatures = $root.google.cloud.sql.v1beta4.AdvancedMachineFeatures.fromObject(object.advancedMachineFeatures); + message.advancedMachineFeatures = $root.google.cloud.sql.v1beta4.AdvancedMachineFeatures.fromObject(object.advancedMachineFeatures, long + 1); } if (object.dataCacheConfig != null) { - if (typeof object.dataCacheConfig !== "object") + if (!$util.isObject(object.dataCacheConfig)) throw TypeError(".google.cloud.sql.v1beta4.Settings.dataCacheConfig: object expected"); - message.dataCacheConfig = $root.google.cloud.sql.v1beta4.DataCacheConfig.fromObject(object.dataCacheConfig); + message.dataCacheConfig = $root.google.cloud.sql.v1beta4.DataCacheConfig.fromObject(object.dataCacheConfig, long + 1); } if (object.replicationLagMaxSeconds != null) { - if (typeof object.replicationLagMaxSeconds !== "object") + if (!$util.isObject(object.replicationLagMaxSeconds)) throw TypeError(".google.cloud.sql.v1beta4.Settings.replicationLagMaxSeconds: object expected"); - message.replicationLagMaxSeconds = $root.google.protobuf.Int32Value.fromObject(object.replicationLagMaxSeconds); + message.replicationLagMaxSeconds = $root.google.protobuf.Int32Value.fromObject(object.replicationLagMaxSeconds, long + 1); } if (object.enableGoogleMlIntegration != null) { - if (typeof object.enableGoogleMlIntegration !== "object") + if (!$util.isObject(object.enableGoogleMlIntegration)) throw TypeError(".google.cloud.sql.v1beta4.Settings.enableGoogleMlIntegration: object expected"); - message.enableGoogleMlIntegration = $root.google.protobuf.BoolValue.fromObject(object.enableGoogleMlIntegration); + message.enableGoogleMlIntegration = $root.google.protobuf.BoolValue.fromObject(object.enableGoogleMlIntegration, long + 1); } if (object.enableDataplexIntegration != null) { - if (typeof object.enableDataplexIntegration !== "object") + if (!$util.isObject(object.enableDataplexIntegration)) throw TypeError(".google.cloud.sql.v1beta4.Settings.enableDataplexIntegration: object expected"); - message.enableDataplexIntegration = $root.google.protobuf.BoolValue.fromObject(object.enableDataplexIntegration); + message.enableDataplexIntegration = $root.google.protobuf.BoolValue.fromObject(object.enableDataplexIntegration, long + 1); } if (object.retainBackupsOnDelete != null) { - if (typeof object.retainBackupsOnDelete !== "object") + if (!$util.isObject(object.retainBackupsOnDelete)) throw TypeError(".google.cloud.sql.v1beta4.Settings.retainBackupsOnDelete: object expected"); - message.retainBackupsOnDelete = $root.google.protobuf.BoolValue.fromObject(object.retainBackupsOnDelete); + message.retainBackupsOnDelete = $root.google.protobuf.BoolValue.fromObject(object.retainBackupsOnDelete, long + 1); } if (object.dataDiskProvisionedIops != null) if ($util.Long) - (message.dataDiskProvisionedIops = $util.Long.fromValue(object.dataDiskProvisionedIops)).unsigned = false; + message.dataDiskProvisionedIops = $util.Long.fromValue(object.dataDiskProvisionedIops, false); else if (typeof object.dataDiskProvisionedIops === "string") message.dataDiskProvisionedIops = parseInt(object.dataDiskProvisionedIops, 10); else if (typeof object.dataDiskProvisionedIops === "number") @@ -131050,7 +140786,7 @@ message.dataDiskProvisionedIops = new $util.LongBits(object.dataDiskProvisionedIops.low >>> 0, object.dataDiskProvisionedIops.high >>> 0).toNumber(); if (object.dataDiskProvisionedThroughput != null) if ($util.Long) - (message.dataDiskProvisionedThroughput = $util.Long.fromValue(object.dataDiskProvisionedThroughput)).unsigned = false; + message.dataDiskProvisionedThroughput = $util.Long.fromValue(object.dataDiskProvisionedThroughput, false); else if (typeof object.dataDiskProvisionedThroughput === "string") message.dataDiskProvisionedThroughput = parseInt(object.dataDiskProvisionedThroughput, 10); else if (typeof object.dataDiskProvisionedThroughput === "number") @@ -131058,26 +140794,31 @@ else if (typeof object.dataDiskProvisionedThroughput === "object") message.dataDiskProvisionedThroughput = new $util.LongBits(object.dataDiskProvisionedThroughput.low >>> 0, object.dataDiskProvisionedThroughput.high >>> 0).toNumber(); if (object.connectionPoolConfig != null) { - if (typeof object.connectionPoolConfig !== "object") + if (!$util.isObject(object.connectionPoolConfig)) throw TypeError(".google.cloud.sql.v1beta4.Settings.connectionPoolConfig: object expected"); - message.connectionPoolConfig = $root.google.cloud.sql.v1beta4.ConnectionPoolConfig.fromObject(object.connectionPoolConfig); + message.connectionPoolConfig = $root.google.cloud.sql.v1beta4.ConnectionPoolConfig.fromObject(object.connectionPoolConfig, long + 1); } if (object.finalBackupConfig != null) { - if (typeof object.finalBackupConfig !== "object") + if (!$util.isObject(object.finalBackupConfig)) throw TypeError(".google.cloud.sql.v1beta4.Settings.finalBackupConfig: object expected"); - message.finalBackupConfig = $root.google.cloud.sql.v1beta4.FinalBackupConfig.fromObject(object.finalBackupConfig); + message.finalBackupConfig = $root.google.cloud.sql.v1beta4.FinalBackupConfig.fromObject(object.finalBackupConfig, long + 1); } if (object.readPoolAutoScaleConfig != null) { - if (typeof object.readPoolAutoScaleConfig !== "object") + if (!$util.isObject(object.readPoolAutoScaleConfig)) throw TypeError(".google.cloud.sql.v1beta4.Settings.readPoolAutoScaleConfig: object expected"); - message.readPoolAutoScaleConfig = $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.fromObject(object.readPoolAutoScaleConfig); + message.readPoolAutoScaleConfig = $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.fromObject(object.readPoolAutoScaleConfig, long + 1); + } + if (object.acceleratedReplicaMode != null) { + if (!$util.isObject(object.acceleratedReplicaMode)) + throw TypeError(".google.cloud.sql.v1beta4.Settings.acceleratedReplicaMode: object expected"); + message.acceleratedReplicaMode = $root.google.protobuf.BoolValue.fromObject(object.acceleratedReplicaMode, long + 1); } if (object.autoUpgradeEnabled != null) message.autoUpgradeEnabled = Boolean(object.autoUpgradeEnabled); if (object.entraidConfig != null) { - if (typeof object.entraidConfig !== "object") + if (!$util.isObject(object.entraidConfig)) throw TypeError(".google.cloud.sql.v1beta4.Settings.entraidConfig: object expected"); - message.entraidConfig = $root.google.cloud.sql.v1beta4.SqlServerEntraIdConfig.fromObject(object.entraidConfig); + message.entraidConfig = $root.google.cloud.sql.v1beta4.SqlServerEntraIdConfig.fromObject(object.entraidConfig, long + 1); } switch (object.dataApiAccess) { default: @@ -131100,9 +140841,9 @@ break; } if (object.performanceCaptureConfig != null) { - if (typeof object.performanceCaptureConfig !== "object") + if (!$util.isObject(object.performanceCaptureConfig)) throw TypeError(".google.cloud.sql.v1beta4.Settings.performanceCaptureConfig: object expected"); - message.performanceCaptureConfig = $root.google.cloud.sql.v1beta4.PerformanceCaptureConfig.fromObject(object.performanceCaptureConfig); + message.performanceCaptureConfig = $root.google.cloud.sql.v1beta4.PerformanceCaptureConfig.fromObject(object.performanceCaptureConfig, long + 1); } return message; }; @@ -131116,9 +140857,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Settings.toObject = function toObject(message, options) { + Settings.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.authorizedGaeApplications = []; @@ -131160,139 +140905,149 @@ object.enableGoogleMlIntegration = null; object.enableDataplexIntegration = null; object.retainBackupsOnDelete = null; + object.acceleratedReplicaMode = null; object.entraidConfig = null; object.performanceCaptureConfig = null; } - if (message.settingsVersion != null && message.hasOwnProperty("settingsVersion")) - object.settingsVersion = $root.google.protobuf.Int64Value.toObject(message.settingsVersion, options); + if (message.settingsVersion != null && Object.hasOwnProperty.call(message, "settingsVersion")) + object.settingsVersion = $root.google.protobuf.Int64Value.toObject(message.settingsVersion, options, q + 1); if (message.authorizedGaeApplications && message.authorizedGaeApplications.length) { object.authorizedGaeApplications = []; for (var j = 0; j < message.authorizedGaeApplications.length; ++j) object.authorizedGaeApplications[j] = message.authorizedGaeApplications[j]; } - if (message.tier != null && message.hasOwnProperty("tier")) + if (message.tier != null && Object.hasOwnProperty.call(message, "tier")) object.tier = message.tier; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; var keys2; if (message.userLabels && (keys2 = Object.keys(message.userLabels)).length) { object.userLabels = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.userLabels, keys2[j]); object.userLabels[keys2[j]] = message.userLabels[keys2[j]]; + } } - if (message.availabilityType != null && message.hasOwnProperty("availabilityType")) + if (message.availabilityType != null && Object.hasOwnProperty.call(message, "availabilityType")) object.availabilityType = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlAvailabilityType[message.availabilityType] === undefined ? message.availabilityType : $root.google.cloud.sql.v1beta4.SqlAvailabilityType[message.availabilityType] : message.availabilityType; - if (message.pricingPlan != null && message.hasOwnProperty("pricingPlan")) + if (message.pricingPlan != null && Object.hasOwnProperty.call(message, "pricingPlan")) object.pricingPlan = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlPricingPlan[message.pricingPlan] === undefined ? message.pricingPlan : $root.google.cloud.sql.v1beta4.SqlPricingPlan[message.pricingPlan] : message.pricingPlan; - if (message.replicationType != null && message.hasOwnProperty("replicationType")) + if (message.replicationType != null && Object.hasOwnProperty.call(message, "replicationType")) object.replicationType = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlReplicationType[message.replicationType] === undefined ? message.replicationType : $root.google.cloud.sql.v1beta4.SqlReplicationType[message.replicationType] : message.replicationType; - if (message.storageAutoResizeLimit != null && message.hasOwnProperty("storageAutoResizeLimit")) - object.storageAutoResizeLimit = $root.google.protobuf.Int64Value.toObject(message.storageAutoResizeLimit, options); - if (message.activationPolicy != null && message.hasOwnProperty("activationPolicy")) + if (message.storageAutoResizeLimit != null && Object.hasOwnProperty.call(message, "storageAutoResizeLimit")) + object.storageAutoResizeLimit = $root.google.protobuf.Int64Value.toObject(message.storageAutoResizeLimit, options, q + 1); + if (message.activationPolicy != null && Object.hasOwnProperty.call(message, "activationPolicy")) object.activationPolicy = options.enums === String ? $root.google.cloud.sql.v1beta4.Settings.SqlActivationPolicy[message.activationPolicy] === undefined ? message.activationPolicy : $root.google.cloud.sql.v1beta4.Settings.SqlActivationPolicy[message.activationPolicy] : message.activationPolicy; - if (message.ipConfiguration != null && message.hasOwnProperty("ipConfiguration")) - object.ipConfiguration = $root.google.cloud.sql.v1beta4.IpConfiguration.toObject(message.ipConfiguration, options); - if (message.storageAutoResize != null && message.hasOwnProperty("storageAutoResize")) - object.storageAutoResize = $root.google.protobuf.BoolValue.toObject(message.storageAutoResize, options); - if (message.locationPreference != null && message.hasOwnProperty("locationPreference")) - object.locationPreference = $root.google.cloud.sql.v1beta4.LocationPreference.toObject(message.locationPreference, options); + if (message.ipConfiguration != null && Object.hasOwnProperty.call(message, "ipConfiguration")) + object.ipConfiguration = $root.google.cloud.sql.v1beta4.IpConfiguration.toObject(message.ipConfiguration, options, q + 1); + if (message.storageAutoResize != null && Object.hasOwnProperty.call(message, "storageAutoResize")) + object.storageAutoResize = $root.google.protobuf.BoolValue.toObject(message.storageAutoResize, options, q + 1); + if (message.locationPreference != null && Object.hasOwnProperty.call(message, "locationPreference")) + object.locationPreference = $root.google.cloud.sql.v1beta4.LocationPreference.toObject(message.locationPreference, options, q + 1); if (message.databaseFlags && message.databaseFlags.length) { object.databaseFlags = []; for (var j = 0; j < message.databaseFlags.length; ++j) - object.databaseFlags[j] = $root.google.cloud.sql.v1beta4.DatabaseFlags.toObject(message.databaseFlags[j], options); + object.databaseFlags[j] = $root.google.cloud.sql.v1beta4.DatabaseFlags.toObject(message.databaseFlags[j], options, q + 1); } - if (message.dataDiskType != null && message.hasOwnProperty("dataDiskType")) + if (message.dataDiskType != null && Object.hasOwnProperty.call(message, "dataDiskType")) object.dataDiskType = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlDataDiskType[message.dataDiskType] === undefined ? message.dataDiskType : $root.google.cloud.sql.v1beta4.SqlDataDiskType[message.dataDiskType] : message.dataDiskType; - if (message.maintenanceWindow != null && message.hasOwnProperty("maintenanceWindow")) - object.maintenanceWindow = $root.google.cloud.sql.v1beta4.MaintenanceWindow.toObject(message.maintenanceWindow, options); - if (message.backupConfiguration != null && message.hasOwnProperty("backupConfiguration")) - object.backupConfiguration = $root.google.cloud.sql.v1beta4.BackupConfiguration.toObject(message.backupConfiguration, options); - if (message.databaseReplicationEnabled != null && message.hasOwnProperty("databaseReplicationEnabled")) - object.databaseReplicationEnabled = $root.google.protobuf.BoolValue.toObject(message.databaseReplicationEnabled, options); - if (message.crashSafeReplicationEnabled != null && message.hasOwnProperty("crashSafeReplicationEnabled")) - object.crashSafeReplicationEnabled = $root.google.protobuf.BoolValue.toObject(message.crashSafeReplicationEnabled, options); - if (message.dataDiskSizeGb != null && message.hasOwnProperty("dataDiskSizeGb")) - object.dataDiskSizeGb = $root.google.protobuf.Int64Value.toObject(message.dataDiskSizeGb, options); - if (message.activeDirectoryConfig != null && message.hasOwnProperty("activeDirectoryConfig")) - object.activeDirectoryConfig = $root.google.cloud.sql.v1beta4.SqlActiveDirectoryConfig.toObject(message.activeDirectoryConfig, options); - if (message.collation != null && message.hasOwnProperty("collation")) + if (message.maintenanceWindow != null && Object.hasOwnProperty.call(message, "maintenanceWindow")) + object.maintenanceWindow = $root.google.cloud.sql.v1beta4.MaintenanceWindow.toObject(message.maintenanceWindow, options, q + 1); + if (message.backupConfiguration != null && Object.hasOwnProperty.call(message, "backupConfiguration")) + object.backupConfiguration = $root.google.cloud.sql.v1beta4.BackupConfiguration.toObject(message.backupConfiguration, options, q + 1); + if (message.databaseReplicationEnabled != null && Object.hasOwnProperty.call(message, "databaseReplicationEnabled")) + object.databaseReplicationEnabled = $root.google.protobuf.BoolValue.toObject(message.databaseReplicationEnabled, options, q + 1); + if (message.crashSafeReplicationEnabled != null && Object.hasOwnProperty.call(message, "crashSafeReplicationEnabled")) + object.crashSafeReplicationEnabled = $root.google.protobuf.BoolValue.toObject(message.crashSafeReplicationEnabled, options, q + 1); + if (message.dataDiskSizeGb != null && Object.hasOwnProperty.call(message, "dataDiskSizeGb")) + object.dataDiskSizeGb = $root.google.protobuf.Int64Value.toObject(message.dataDiskSizeGb, options, q + 1); + if (message.activeDirectoryConfig != null && Object.hasOwnProperty.call(message, "activeDirectoryConfig")) + object.activeDirectoryConfig = $root.google.cloud.sql.v1beta4.SqlActiveDirectoryConfig.toObject(message.activeDirectoryConfig, options, q + 1); + if (message.collation != null && Object.hasOwnProperty.call(message, "collation")) object.collation = message.collation; if (message.denyMaintenancePeriods && message.denyMaintenancePeriods.length) { object.denyMaintenancePeriods = []; for (var j = 0; j < message.denyMaintenancePeriods.length; ++j) - object.denyMaintenancePeriods[j] = $root.google.cloud.sql.v1beta4.DenyMaintenancePeriod.toObject(message.denyMaintenancePeriods[j], options); - } - if (message.insightsConfig != null && message.hasOwnProperty("insightsConfig")) - object.insightsConfig = $root.google.cloud.sql.v1beta4.InsightsConfig.toObject(message.insightsConfig, options); - if (message.passwordValidationPolicy != null && message.hasOwnProperty("passwordValidationPolicy")) - object.passwordValidationPolicy = $root.google.cloud.sql.v1beta4.PasswordValidationPolicy.toObject(message.passwordValidationPolicy, options); - if (message.sqlServerAuditConfig != null && message.hasOwnProperty("sqlServerAuditConfig")) - object.sqlServerAuditConfig = $root.google.cloud.sql.v1beta4.SqlServerAuditConfig.toObject(message.sqlServerAuditConfig, options); - if (message.connectorEnforcement != null && message.hasOwnProperty("connectorEnforcement")) + object.denyMaintenancePeriods[j] = $root.google.cloud.sql.v1beta4.DenyMaintenancePeriod.toObject(message.denyMaintenancePeriods[j], options, q + 1); + } + if (message.insightsConfig != null && Object.hasOwnProperty.call(message, "insightsConfig")) + object.insightsConfig = $root.google.cloud.sql.v1beta4.InsightsConfig.toObject(message.insightsConfig, options, q + 1); + if (message.passwordValidationPolicy != null && Object.hasOwnProperty.call(message, "passwordValidationPolicy")) + object.passwordValidationPolicy = $root.google.cloud.sql.v1beta4.PasswordValidationPolicy.toObject(message.passwordValidationPolicy, options, q + 1); + if (message.sqlServerAuditConfig != null && Object.hasOwnProperty.call(message, "sqlServerAuditConfig")) + object.sqlServerAuditConfig = $root.google.cloud.sql.v1beta4.SqlServerAuditConfig.toObject(message.sqlServerAuditConfig, options, q + 1); + if (message.connectorEnforcement != null && Object.hasOwnProperty.call(message, "connectorEnforcement")) object.connectorEnforcement = options.enums === String ? $root.google.cloud.sql.v1beta4.Settings.ConnectorEnforcement[message.connectorEnforcement] === undefined ? message.connectorEnforcement : $root.google.cloud.sql.v1beta4.Settings.ConnectorEnforcement[message.connectorEnforcement] : message.connectorEnforcement; - if (message.deletionProtectionEnabled != null && message.hasOwnProperty("deletionProtectionEnabled")) - object.deletionProtectionEnabled = $root.google.protobuf.BoolValue.toObject(message.deletionProtectionEnabled, options); - if (message.timeZone != null && message.hasOwnProperty("timeZone")) + if (message.deletionProtectionEnabled != null && Object.hasOwnProperty.call(message, "deletionProtectionEnabled")) + object.deletionProtectionEnabled = $root.google.protobuf.BoolValue.toObject(message.deletionProtectionEnabled, options, q + 1); + if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) object.timeZone = message.timeZone; - if (message.advancedMachineFeatures != null && message.hasOwnProperty("advancedMachineFeatures")) - object.advancedMachineFeatures = $root.google.cloud.sql.v1beta4.AdvancedMachineFeatures.toObject(message.advancedMachineFeatures, options); - if (message.dataCacheConfig != null && message.hasOwnProperty("dataCacheConfig")) - object.dataCacheConfig = $root.google.cloud.sql.v1beta4.DataCacheConfig.toObject(message.dataCacheConfig, options); - if (message.edition != null && message.hasOwnProperty("edition")) + if (message.advancedMachineFeatures != null && Object.hasOwnProperty.call(message, "advancedMachineFeatures")) + object.advancedMachineFeatures = $root.google.cloud.sql.v1beta4.AdvancedMachineFeatures.toObject(message.advancedMachineFeatures, options, q + 1); + if (message.dataCacheConfig != null && Object.hasOwnProperty.call(message, "dataCacheConfig")) + object.dataCacheConfig = $root.google.cloud.sql.v1beta4.DataCacheConfig.toObject(message.dataCacheConfig, options, q + 1); + if (message.edition != null && Object.hasOwnProperty.call(message, "edition")) object.edition = options.enums === String ? $root.google.cloud.sql.v1beta4.Settings.Edition[message.edition] === undefined ? message.edition : $root.google.cloud.sql.v1beta4.Settings.Edition[message.edition] : message.edition; - if (message.replicationLagMaxSeconds != null && message.hasOwnProperty("replicationLagMaxSeconds")) - object.replicationLagMaxSeconds = $root.google.protobuf.Int32Value.toObject(message.replicationLagMaxSeconds, options); - if (message.enableGoogleMlIntegration != null && message.hasOwnProperty("enableGoogleMlIntegration")) - object.enableGoogleMlIntegration = $root.google.protobuf.BoolValue.toObject(message.enableGoogleMlIntegration, options); - if (message.enableDataplexIntegration != null && message.hasOwnProperty("enableDataplexIntegration")) - object.enableDataplexIntegration = $root.google.protobuf.BoolValue.toObject(message.enableDataplexIntegration, options); - if (message.retainBackupsOnDelete != null && message.hasOwnProperty("retainBackupsOnDelete")) - object.retainBackupsOnDelete = $root.google.protobuf.BoolValue.toObject(message.retainBackupsOnDelete, options); - if (message.dataDiskProvisionedIops != null && message.hasOwnProperty("dataDiskProvisionedIops")) { - if (typeof message.dataDiskProvisionedIops === "number") + if (message.replicationLagMaxSeconds != null && Object.hasOwnProperty.call(message, "replicationLagMaxSeconds")) + object.replicationLagMaxSeconds = $root.google.protobuf.Int32Value.toObject(message.replicationLagMaxSeconds, options, q + 1); + if (message.enableGoogleMlIntegration != null && Object.hasOwnProperty.call(message, "enableGoogleMlIntegration")) + object.enableGoogleMlIntegration = $root.google.protobuf.BoolValue.toObject(message.enableGoogleMlIntegration, options, q + 1); + if (message.enableDataplexIntegration != null && Object.hasOwnProperty.call(message, "enableDataplexIntegration")) + object.enableDataplexIntegration = $root.google.protobuf.BoolValue.toObject(message.enableDataplexIntegration, options, q + 1); + if (message.retainBackupsOnDelete != null && Object.hasOwnProperty.call(message, "retainBackupsOnDelete")) + object.retainBackupsOnDelete = $root.google.protobuf.BoolValue.toObject(message.retainBackupsOnDelete, options, q + 1); + if (message.dataDiskProvisionedIops != null && Object.hasOwnProperty.call(message, "dataDiskProvisionedIops")) { + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.dataDiskProvisionedIops = typeof message.dataDiskProvisionedIops === "number" ? BigInt(message.dataDiskProvisionedIops) : $util.Long.fromBits(message.dataDiskProvisionedIops.low >>> 0, message.dataDiskProvisionedIops.high >>> 0, false).toBigInt(); + else if (typeof message.dataDiskProvisionedIops === "number") object.dataDiskProvisionedIops = options.longs === String ? String(message.dataDiskProvisionedIops) : message.dataDiskProvisionedIops; else object.dataDiskProvisionedIops = options.longs === String ? $util.Long.prototype.toString.call(message.dataDiskProvisionedIops) : options.longs === Number ? new $util.LongBits(message.dataDiskProvisionedIops.low >>> 0, message.dataDiskProvisionedIops.high >>> 0).toNumber() : message.dataDiskProvisionedIops; if (options.oneofs) object._dataDiskProvisionedIops = "dataDiskProvisionedIops"; } - if (message.dataDiskProvisionedThroughput != null && message.hasOwnProperty("dataDiskProvisionedThroughput")) { - if (typeof message.dataDiskProvisionedThroughput === "number") + if (message.dataDiskProvisionedThroughput != null && Object.hasOwnProperty.call(message, "dataDiskProvisionedThroughput")) { + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.dataDiskProvisionedThroughput = typeof message.dataDiskProvisionedThroughput === "number" ? BigInt(message.dataDiskProvisionedThroughput) : $util.Long.fromBits(message.dataDiskProvisionedThroughput.low >>> 0, message.dataDiskProvisionedThroughput.high >>> 0, false).toBigInt(); + else if (typeof message.dataDiskProvisionedThroughput === "number") object.dataDiskProvisionedThroughput = options.longs === String ? String(message.dataDiskProvisionedThroughput) : message.dataDiskProvisionedThroughput; else object.dataDiskProvisionedThroughput = options.longs === String ? $util.Long.prototype.toString.call(message.dataDiskProvisionedThroughput) : options.longs === Number ? new $util.LongBits(message.dataDiskProvisionedThroughput.low >>> 0, message.dataDiskProvisionedThroughput.high >>> 0).toNumber() : message.dataDiskProvisionedThroughput; if (options.oneofs) object._dataDiskProvisionedThroughput = "dataDiskProvisionedThroughput"; } - if (message.connectionPoolConfig != null && message.hasOwnProperty("connectionPoolConfig")) { - object.connectionPoolConfig = $root.google.cloud.sql.v1beta4.ConnectionPoolConfig.toObject(message.connectionPoolConfig, options); + if (message.connectionPoolConfig != null && Object.hasOwnProperty.call(message, "connectionPoolConfig")) { + object.connectionPoolConfig = $root.google.cloud.sql.v1beta4.ConnectionPoolConfig.toObject(message.connectionPoolConfig, options, q + 1); if (options.oneofs) object._connectionPoolConfig = "connectionPoolConfig"; } - if (message.finalBackupConfig != null && message.hasOwnProperty("finalBackupConfig")) { - object.finalBackupConfig = $root.google.cloud.sql.v1beta4.FinalBackupConfig.toObject(message.finalBackupConfig, options); + if (message.finalBackupConfig != null && Object.hasOwnProperty.call(message, "finalBackupConfig")) { + object.finalBackupConfig = $root.google.cloud.sql.v1beta4.FinalBackupConfig.toObject(message.finalBackupConfig, options, q + 1); if (options.oneofs) object._finalBackupConfig = "finalBackupConfig"; } - if (message.readPoolAutoScaleConfig != null && message.hasOwnProperty("readPoolAutoScaleConfig")) { - object.readPoolAutoScaleConfig = $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.toObject(message.readPoolAutoScaleConfig, options); + if (message.readPoolAutoScaleConfig != null && Object.hasOwnProperty.call(message, "readPoolAutoScaleConfig")) { + object.readPoolAutoScaleConfig = $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.toObject(message.readPoolAutoScaleConfig, options, q + 1); if (options.oneofs) object._readPoolAutoScaleConfig = "readPoolAutoScaleConfig"; } - if (message.autoUpgradeEnabled != null && message.hasOwnProperty("autoUpgradeEnabled")) { + if (message.acceleratedReplicaMode != null && Object.hasOwnProperty.call(message, "acceleratedReplicaMode")) + object.acceleratedReplicaMode = $root.google.protobuf.BoolValue.toObject(message.acceleratedReplicaMode, options, q + 1); + if (message.autoUpgradeEnabled != null && Object.hasOwnProperty.call(message, "autoUpgradeEnabled")) { object.autoUpgradeEnabled = message.autoUpgradeEnabled; if (options.oneofs) object._autoUpgradeEnabled = "autoUpgradeEnabled"; } - if (message.entraidConfig != null && message.hasOwnProperty("entraidConfig")) - object.entraidConfig = $root.google.cloud.sql.v1beta4.SqlServerEntraIdConfig.toObject(message.entraidConfig, options); - if (message.dataApiAccess != null && message.hasOwnProperty("dataApiAccess")) { + if (message.entraidConfig != null && Object.hasOwnProperty.call(message, "entraidConfig")) + object.entraidConfig = $root.google.cloud.sql.v1beta4.SqlServerEntraIdConfig.toObject(message.entraidConfig, options, q + 1); + if (message.dataApiAccess != null && Object.hasOwnProperty.call(message, "dataApiAccess")) { object.dataApiAccess = options.enums === String ? $root.google.cloud.sql.v1beta4.Settings.DataApiAccess[message.dataApiAccess] === undefined ? message.dataApiAccess : $root.google.cloud.sql.v1beta4.Settings.DataApiAccess[message.dataApiAccess] : message.dataApiAccess; if (options.oneofs) object._dataApiAccess = "dataApiAccess"; } - if (message.performanceCaptureConfig != null && message.hasOwnProperty("performanceCaptureConfig")) - object.performanceCaptureConfig = $root.google.cloud.sql.v1beta4.PerformanceCaptureConfig.toObject(message.performanceCaptureConfig, options); + if (message.performanceCaptureConfig != null && Object.hasOwnProperty.call(message, "performanceCaptureConfig")) + object.performanceCaptureConfig = $root.google.cloud.sql.v1beta4.PerformanceCaptureConfig.toObject(message.performanceCaptureConfig, options, q + 1); return object; }; @@ -131347,12 +141102,14 @@ * @property {number} EDITION_UNSPECIFIED=0 EDITION_UNSPECIFIED value * @property {number} ENTERPRISE=2 ENTERPRISE value * @property {number} ENTERPRISE_PLUS=3 ENTERPRISE_PLUS value + * @property {number} DEVELOPER=5 DEVELOPER value */ Settings.Edition = (function() { var valuesById = {}, values = Object.create(valuesById); values[valuesById[0] = "EDITION_UNSPECIFIED"] = 0; values[valuesById[2] = "ENTERPRISE"] = 2; values[valuesById[3] = "ENTERPRISE_PLUS"] = 3; + values[valuesById[5] = "DEVELOPER"] = 5; return values; })(); @@ -131403,6 +141160,14 @@ * @property {number|null} [runningThreadsThreshold] PerformanceCaptureConfig runningThreadsThreshold * @property {number|null} [secondsBehindSourceThreshold] PerformanceCaptureConfig secondsBehindSourceThreshold * @property {number|null} [transactionDurationThreshold] PerformanceCaptureConfig transactionDurationThreshold + * @property {number|null} [cpuUtilizationThresholdPercent] PerformanceCaptureConfig cpuUtilizationThresholdPercent + * @property {number|null} [memoryUsageThresholdPercent] PerformanceCaptureConfig memoryUsageThresholdPercent + * @property {number|null} [transactionLockWaitThresholdCount] PerformanceCaptureConfig transactionLockWaitThresholdCount + * @property {number|null} [semaphoreWaitThresholdCount] PerformanceCaptureConfig semaphoreWaitThresholdCount + * @property {number|null} [historyListLengthThresholdCount] PerformanceCaptureConfig historyListLengthThresholdCount + * @property {number|null} [transactionKillThresholdSeconds] PerformanceCaptureConfig transactionKillThresholdSeconds + * @property {Array.|null} [transactionKillExcludedUserHosts] PerformanceCaptureConfig transactionKillExcludedUserHosts + * @property {google.cloud.sql.v1beta4.PerformanceCaptureConfig.TransactionKillType|null} [transactionKillType] PerformanceCaptureConfig transactionKillType */ /** @@ -131414,9 +141179,10 @@ * @param {google.cloud.sql.v1beta4.IPerformanceCaptureConfig=} [properties] Properties to set */ function PerformanceCaptureConfig(properties) { + this.transactionKillExcludedUserHosts = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -131468,6 +141234,70 @@ */ PerformanceCaptureConfig.prototype.transactionDurationThreshold = null; + /** + * PerformanceCaptureConfig cpuUtilizationThresholdPercent. + * @member {number|null|undefined} cpuUtilizationThresholdPercent + * @memberof google.cloud.sql.v1beta4.PerformanceCaptureConfig + * @instance + */ + PerformanceCaptureConfig.prototype.cpuUtilizationThresholdPercent = null; + + /** + * PerformanceCaptureConfig memoryUsageThresholdPercent. + * @member {number|null|undefined} memoryUsageThresholdPercent + * @memberof google.cloud.sql.v1beta4.PerformanceCaptureConfig + * @instance + */ + PerformanceCaptureConfig.prototype.memoryUsageThresholdPercent = null; + + /** + * PerformanceCaptureConfig transactionLockWaitThresholdCount. + * @member {number|null|undefined} transactionLockWaitThresholdCount + * @memberof google.cloud.sql.v1beta4.PerformanceCaptureConfig + * @instance + */ + PerformanceCaptureConfig.prototype.transactionLockWaitThresholdCount = null; + + /** + * PerformanceCaptureConfig semaphoreWaitThresholdCount. + * @member {number|null|undefined} semaphoreWaitThresholdCount + * @memberof google.cloud.sql.v1beta4.PerformanceCaptureConfig + * @instance + */ + PerformanceCaptureConfig.prototype.semaphoreWaitThresholdCount = null; + + /** + * PerformanceCaptureConfig historyListLengthThresholdCount. + * @member {number|null|undefined} historyListLengthThresholdCount + * @memberof google.cloud.sql.v1beta4.PerformanceCaptureConfig + * @instance + */ + PerformanceCaptureConfig.prototype.historyListLengthThresholdCount = null; + + /** + * PerformanceCaptureConfig transactionKillThresholdSeconds. + * @member {number|null|undefined} transactionKillThresholdSeconds + * @memberof google.cloud.sql.v1beta4.PerformanceCaptureConfig + * @instance + */ + PerformanceCaptureConfig.prototype.transactionKillThresholdSeconds = null; + + /** + * PerformanceCaptureConfig transactionKillExcludedUserHosts. + * @member {Array.} transactionKillExcludedUserHosts + * @memberof google.cloud.sql.v1beta4.PerformanceCaptureConfig + * @instance + */ + PerformanceCaptureConfig.prototype.transactionKillExcludedUserHosts = $util.emptyArray; + + /** + * PerformanceCaptureConfig transactionKillType. + * @member {google.cloud.sql.v1beta4.PerformanceCaptureConfig.TransactionKillType|null|undefined} transactionKillType + * @memberof google.cloud.sql.v1beta4.PerformanceCaptureConfig + * @instance + */ + PerformanceCaptureConfig.prototype.transactionKillType = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -131507,6 +141337,48 @@ set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(PerformanceCaptureConfig.prototype, "_cpuUtilizationThresholdPercent", { + get: $util.oneOfGetter($oneOfFields = ["cpuUtilizationThresholdPercent"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(PerformanceCaptureConfig.prototype, "_memoryUsageThresholdPercent", { + get: $util.oneOfGetter($oneOfFields = ["memoryUsageThresholdPercent"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(PerformanceCaptureConfig.prototype, "_transactionLockWaitThresholdCount", { + get: $util.oneOfGetter($oneOfFields = ["transactionLockWaitThresholdCount"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(PerformanceCaptureConfig.prototype, "_semaphoreWaitThresholdCount", { + get: $util.oneOfGetter($oneOfFields = ["semaphoreWaitThresholdCount"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(PerformanceCaptureConfig.prototype, "_historyListLengthThresholdCount", { + get: $util.oneOfGetter($oneOfFields = ["historyListLengthThresholdCount"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(PerformanceCaptureConfig.prototype, "_transactionKillThresholdSeconds", { + get: $util.oneOfGetter($oneOfFields = ["transactionKillThresholdSeconds"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(PerformanceCaptureConfig.prototype, "_transactionKillType", { + get: $util.oneOfGetter($oneOfFields = ["transactionKillType"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new PerformanceCaptureConfig instance using the specified properties. * @function create @@ -131528,9 +141400,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PerformanceCaptureConfig.encode = function encode(message, writer) { + PerformanceCaptureConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.enabled); if (message.probingIntervalSeconds != null && Object.hasOwnProperty.call(message, "probingIntervalSeconds")) @@ -131543,6 +141419,23 @@ writer.uint32(/* id 5, wireType 0 =*/40).int32(message.secondsBehindSourceThreshold); if (message.transactionDurationThreshold != null && Object.hasOwnProperty.call(message, "transactionDurationThreshold")) writer.uint32(/* id 8, wireType 0 =*/64).int32(message.transactionDurationThreshold); + if (message.cpuUtilizationThresholdPercent != null && Object.hasOwnProperty.call(message, "cpuUtilizationThresholdPercent")) + writer.uint32(/* id 9, wireType 0 =*/72).int32(message.cpuUtilizationThresholdPercent); + if (message.memoryUsageThresholdPercent != null && Object.hasOwnProperty.call(message, "memoryUsageThresholdPercent")) + writer.uint32(/* id 10, wireType 0 =*/80).int32(message.memoryUsageThresholdPercent); + if (message.transactionLockWaitThresholdCount != null && Object.hasOwnProperty.call(message, "transactionLockWaitThresholdCount")) + writer.uint32(/* id 11, wireType 0 =*/88).int32(message.transactionLockWaitThresholdCount); + if (message.semaphoreWaitThresholdCount != null && Object.hasOwnProperty.call(message, "semaphoreWaitThresholdCount")) + writer.uint32(/* id 12, wireType 0 =*/96).int32(message.semaphoreWaitThresholdCount); + if (message.historyListLengthThresholdCount != null && Object.hasOwnProperty.call(message, "historyListLengthThresholdCount")) + writer.uint32(/* id 13, wireType 0 =*/104).int32(message.historyListLengthThresholdCount); + if (message.transactionKillThresholdSeconds != null && Object.hasOwnProperty.call(message, "transactionKillThresholdSeconds")) + writer.uint32(/* id 14, wireType 0 =*/112).int32(message.transactionKillThresholdSeconds); + if (message.transactionKillExcludedUserHosts != null && message.transactionKillExcludedUserHosts.length) + for (var i = 0; i < message.transactionKillExcludedUserHosts.length; ++i) + writer.uint32(/* id 16, wireType 2 =*/130).string(message.transactionKillExcludedUserHosts[i]); + if (message.transactionKillType != null && Object.hasOwnProperty.call(message, "transactionKillType")) + writer.uint32(/* id 17, wireType 0 =*/136).int32(message.transactionKillType); return writer; }; @@ -131556,7 +141449,7 @@ * @returns {$protobuf.Writer} Writer */ PerformanceCaptureConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -131570,9 +141463,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PerformanceCaptureConfig.decode = function decode(reader, length, error) { + PerformanceCaptureConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.PerformanceCaptureConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -131603,8 +141500,42 @@ message.transactionDurationThreshold = reader.int32(); break; } + case 9: { + message.cpuUtilizationThresholdPercent = reader.int32(); + break; + } + case 10: { + message.memoryUsageThresholdPercent = reader.int32(); + break; + } + case 11: { + message.transactionLockWaitThresholdCount = reader.int32(); + break; + } + case 12: { + message.semaphoreWaitThresholdCount = reader.int32(); + break; + } + case 13: { + message.historyListLengthThresholdCount = reader.int32(); + break; + } + case 14: { + message.transactionKillThresholdSeconds = reader.int32(); + break; + } + case 16: { + if (!(message.transactionKillExcludedUserHosts && message.transactionKillExcludedUserHosts.length)) + message.transactionKillExcludedUserHosts = []; + message.transactionKillExcludedUserHosts.push(reader.string()); + break; + } + case 17: { + message.transactionKillType = reader.int32(); + break; + } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -131635,40 +141566,92 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PerformanceCaptureConfig.verify = function verify(message) { + PerformanceCaptureConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.enabled != null && message.hasOwnProperty("enabled")) { + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) { properties._enabled = 1; if (typeof message.enabled !== "boolean") return "enabled: boolean expected"; } - if (message.probingIntervalSeconds != null && message.hasOwnProperty("probingIntervalSeconds")) { + if (message.probingIntervalSeconds != null && Object.hasOwnProperty.call(message, "probingIntervalSeconds")) { properties._probingIntervalSeconds = 1; if (!$util.isInteger(message.probingIntervalSeconds)) return "probingIntervalSeconds: integer expected"; } - if (message.probeThreshold != null && message.hasOwnProperty("probeThreshold")) { + if (message.probeThreshold != null && Object.hasOwnProperty.call(message, "probeThreshold")) { properties._probeThreshold = 1; if (!$util.isInteger(message.probeThreshold)) return "probeThreshold: integer expected"; } - if (message.runningThreadsThreshold != null && message.hasOwnProperty("runningThreadsThreshold")) { + if (message.runningThreadsThreshold != null && Object.hasOwnProperty.call(message, "runningThreadsThreshold")) { properties._runningThreadsThreshold = 1; if (!$util.isInteger(message.runningThreadsThreshold)) return "runningThreadsThreshold: integer expected"; } - if (message.secondsBehindSourceThreshold != null && message.hasOwnProperty("secondsBehindSourceThreshold")) { + if (message.secondsBehindSourceThreshold != null && Object.hasOwnProperty.call(message, "secondsBehindSourceThreshold")) { properties._secondsBehindSourceThreshold = 1; if (!$util.isInteger(message.secondsBehindSourceThreshold)) return "secondsBehindSourceThreshold: integer expected"; } - if (message.transactionDurationThreshold != null && message.hasOwnProperty("transactionDurationThreshold")) { + if (message.transactionDurationThreshold != null && Object.hasOwnProperty.call(message, "transactionDurationThreshold")) { properties._transactionDurationThreshold = 1; if (!$util.isInteger(message.transactionDurationThreshold)) return "transactionDurationThreshold: integer expected"; } + if (message.cpuUtilizationThresholdPercent != null && Object.hasOwnProperty.call(message, "cpuUtilizationThresholdPercent")) { + properties._cpuUtilizationThresholdPercent = 1; + if (!$util.isInteger(message.cpuUtilizationThresholdPercent)) + return "cpuUtilizationThresholdPercent: integer expected"; + } + if (message.memoryUsageThresholdPercent != null && Object.hasOwnProperty.call(message, "memoryUsageThresholdPercent")) { + properties._memoryUsageThresholdPercent = 1; + if (!$util.isInteger(message.memoryUsageThresholdPercent)) + return "memoryUsageThresholdPercent: integer expected"; + } + if (message.transactionLockWaitThresholdCount != null && Object.hasOwnProperty.call(message, "transactionLockWaitThresholdCount")) { + properties._transactionLockWaitThresholdCount = 1; + if (!$util.isInteger(message.transactionLockWaitThresholdCount)) + return "transactionLockWaitThresholdCount: integer expected"; + } + if (message.semaphoreWaitThresholdCount != null && Object.hasOwnProperty.call(message, "semaphoreWaitThresholdCount")) { + properties._semaphoreWaitThresholdCount = 1; + if (!$util.isInteger(message.semaphoreWaitThresholdCount)) + return "semaphoreWaitThresholdCount: integer expected"; + } + if (message.historyListLengthThresholdCount != null && Object.hasOwnProperty.call(message, "historyListLengthThresholdCount")) { + properties._historyListLengthThresholdCount = 1; + if (!$util.isInteger(message.historyListLengthThresholdCount)) + return "historyListLengthThresholdCount: integer expected"; + } + if (message.transactionKillThresholdSeconds != null && Object.hasOwnProperty.call(message, "transactionKillThresholdSeconds")) { + properties._transactionKillThresholdSeconds = 1; + if (!$util.isInteger(message.transactionKillThresholdSeconds)) + return "transactionKillThresholdSeconds: integer expected"; + } + if (message.transactionKillExcludedUserHosts != null && Object.hasOwnProperty.call(message, "transactionKillExcludedUserHosts")) { + if (!Array.isArray(message.transactionKillExcludedUserHosts)) + return "transactionKillExcludedUserHosts: array expected"; + for (var i = 0; i < message.transactionKillExcludedUserHosts.length; ++i) + if (!$util.isString(message.transactionKillExcludedUserHosts[i])) + return "transactionKillExcludedUserHosts: string[] expected"; + } + if (message.transactionKillType != null && Object.hasOwnProperty.call(message, "transactionKillType")) { + properties._transactionKillType = 1; + switch (message.transactionKillType) { + default: + return "transactionKillType: enum value expected"; + case 0: + case 1: + case 2: + break; + } + } return null; }; @@ -131680,9 +141663,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.PerformanceCaptureConfig} PerformanceCaptureConfig */ - PerformanceCaptureConfig.fromObject = function fromObject(object) { + PerformanceCaptureConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.PerformanceCaptureConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.PerformanceCaptureConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.PerformanceCaptureConfig(); if (object.enabled != null) message.enabled = Boolean(object.enabled); @@ -131696,6 +141685,45 @@ message.secondsBehindSourceThreshold = object.secondsBehindSourceThreshold | 0; if (object.transactionDurationThreshold != null) message.transactionDurationThreshold = object.transactionDurationThreshold | 0; + if (object.cpuUtilizationThresholdPercent != null) + message.cpuUtilizationThresholdPercent = object.cpuUtilizationThresholdPercent | 0; + if (object.memoryUsageThresholdPercent != null) + message.memoryUsageThresholdPercent = object.memoryUsageThresholdPercent | 0; + if (object.transactionLockWaitThresholdCount != null) + message.transactionLockWaitThresholdCount = object.transactionLockWaitThresholdCount | 0; + if (object.semaphoreWaitThresholdCount != null) + message.semaphoreWaitThresholdCount = object.semaphoreWaitThresholdCount | 0; + if (object.historyListLengthThresholdCount != null) + message.historyListLengthThresholdCount = object.historyListLengthThresholdCount | 0; + if (object.transactionKillThresholdSeconds != null) + message.transactionKillThresholdSeconds = object.transactionKillThresholdSeconds | 0; + if (object.transactionKillExcludedUserHosts) { + if (!Array.isArray(object.transactionKillExcludedUserHosts)) + throw TypeError(".google.cloud.sql.v1beta4.PerformanceCaptureConfig.transactionKillExcludedUserHosts: array expected"); + message.transactionKillExcludedUserHosts = []; + for (var i = 0; i < object.transactionKillExcludedUserHosts.length; ++i) + message.transactionKillExcludedUserHosts[i] = String(object.transactionKillExcludedUserHosts[i]); + } + switch (object.transactionKillType) { + default: + if (typeof object.transactionKillType === "number") { + message.transactionKillType = object.transactionKillType; + break; + } + break; + case "TRANSACTION_KILL_TYPE_UNSPECIFIED": + case 0: + message.transactionKillType = 0; + break; + case "READ_ONLY_TRANSACTIONS": + case 1: + message.transactionKillType = 1; + break; + case "ALL_TRANSACTIONS": + case 2: + message.transactionKillType = 2; + break; + } return message; }; @@ -131708,40 +141736,86 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PerformanceCaptureConfig.toObject = function toObject(message, options) { + PerformanceCaptureConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.enabled != null && message.hasOwnProperty("enabled")) { + if (options.arrays || options.defaults) + object.transactionKillExcludedUserHosts = []; + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) { object.enabled = message.enabled; if (options.oneofs) object._enabled = "enabled"; } - if (message.probingIntervalSeconds != null && message.hasOwnProperty("probingIntervalSeconds")) { + if (message.probingIntervalSeconds != null && Object.hasOwnProperty.call(message, "probingIntervalSeconds")) { object.probingIntervalSeconds = message.probingIntervalSeconds; if (options.oneofs) object._probingIntervalSeconds = "probingIntervalSeconds"; } - if (message.probeThreshold != null && message.hasOwnProperty("probeThreshold")) { + if (message.probeThreshold != null && Object.hasOwnProperty.call(message, "probeThreshold")) { object.probeThreshold = message.probeThreshold; if (options.oneofs) object._probeThreshold = "probeThreshold"; } - if (message.runningThreadsThreshold != null && message.hasOwnProperty("runningThreadsThreshold")) { + if (message.runningThreadsThreshold != null && Object.hasOwnProperty.call(message, "runningThreadsThreshold")) { object.runningThreadsThreshold = message.runningThreadsThreshold; if (options.oneofs) object._runningThreadsThreshold = "runningThreadsThreshold"; } - if (message.secondsBehindSourceThreshold != null && message.hasOwnProperty("secondsBehindSourceThreshold")) { + if (message.secondsBehindSourceThreshold != null && Object.hasOwnProperty.call(message, "secondsBehindSourceThreshold")) { object.secondsBehindSourceThreshold = message.secondsBehindSourceThreshold; if (options.oneofs) object._secondsBehindSourceThreshold = "secondsBehindSourceThreshold"; } - if (message.transactionDurationThreshold != null && message.hasOwnProperty("transactionDurationThreshold")) { + if (message.transactionDurationThreshold != null && Object.hasOwnProperty.call(message, "transactionDurationThreshold")) { object.transactionDurationThreshold = message.transactionDurationThreshold; if (options.oneofs) object._transactionDurationThreshold = "transactionDurationThreshold"; } + if (message.cpuUtilizationThresholdPercent != null && Object.hasOwnProperty.call(message, "cpuUtilizationThresholdPercent")) { + object.cpuUtilizationThresholdPercent = message.cpuUtilizationThresholdPercent; + if (options.oneofs) + object._cpuUtilizationThresholdPercent = "cpuUtilizationThresholdPercent"; + } + if (message.memoryUsageThresholdPercent != null && Object.hasOwnProperty.call(message, "memoryUsageThresholdPercent")) { + object.memoryUsageThresholdPercent = message.memoryUsageThresholdPercent; + if (options.oneofs) + object._memoryUsageThresholdPercent = "memoryUsageThresholdPercent"; + } + if (message.transactionLockWaitThresholdCount != null && Object.hasOwnProperty.call(message, "transactionLockWaitThresholdCount")) { + object.transactionLockWaitThresholdCount = message.transactionLockWaitThresholdCount; + if (options.oneofs) + object._transactionLockWaitThresholdCount = "transactionLockWaitThresholdCount"; + } + if (message.semaphoreWaitThresholdCount != null && Object.hasOwnProperty.call(message, "semaphoreWaitThresholdCount")) { + object.semaphoreWaitThresholdCount = message.semaphoreWaitThresholdCount; + if (options.oneofs) + object._semaphoreWaitThresholdCount = "semaphoreWaitThresholdCount"; + } + if (message.historyListLengthThresholdCount != null && Object.hasOwnProperty.call(message, "historyListLengthThresholdCount")) { + object.historyListLengthThresholdCount = message.historyListLengthThresholdCount; + if (options.oneofs) + object._historyListLengthThresholdCount = "historyListLengthThresholdCount"; + } + if (message.transactionKillThresholdSeconds != null && Object.hasOwnProperty.call(message, "transactionKillThresholdSeconds")) { + object.transactionKillThresholdSeconds = message.transactionKillThresholdSeconds; + if (options.oneofs) + object._transactionKillThresholdSeconds = "transactionKillThresholdSeconds"; + } + if (message.transactionKillExcludedUserHosts && message.transactionKillExcludedUserHosts.length) { + object.transactionKillExcludedUserHosts = []; + for (var j = 0; j < message.transactionKillExcludedUserHosts.length; ++j) + object.transactionKillExcludedUserHosts[j] = message.transactionKillExcludedUserHosts[j]; + } + if (message.transactionKillType != null && Object.hasOwnProperty.call(message, "transactionKillType")) { + object.transactionKillType = options.enums === String ? $root.google.cloud.sql.v1beta4.PerformanceCaptureConfig.TransactionKillType[message.transactionKillType] === undefined ? message.transactionKillType : $root.google.cloud.sql.v1beta4.PerformanceCaptureConfig.TransactionKillType[message.transactionKillType] : message.transactionKillType; + if (options.oneofs) + object._transactionKillType = "transactionKillType"; + } return object; }; @@ -131771,6 +141845,22 @@ return typeUrlPrefix + "/google.cloud.sql.v1beta4.PerformanceCaptureConfig"; }; + /** + * TransactionKillType enum. + * @name google.cloud.sql.v1beta4.PerformanceCaptureConfig.TransactionKillType + * @enum {number} + * @property {number} TRANSACTION_KILL_TYPE_UNSPECIFIED=0 TRANSACTION_KILL_TYPE_UNSPECIFIED value + * @property {number} READ_ONLY_TRANSACTIONS=1 READ_ONLY_TRANSACTIONS value + * @property {number} ALL_TRANSACTIONS=2 ALL_TRANSACTIONS value + */ + PerformanceCaptureConfig.TransactionKillType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "TRANSACTION_KILL_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "READ_ONLY_TRANSACTIONS"] = 1; + values[valuesById[2] = "ALL_TRANSACTIONS"] = 2; + return values; + })(); + return PerformanceCaptureConfig; })(); @@ -131794,7 +141884,7 @@ function AdvancedMachineFeatures(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -131827,9 +141917,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - AdvancedMachineFeatures.encode = function encode(message, writer) { + AdvancedMachineFeatures.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.threadsPerCore != null && Object.hasOwnProperty.call(message, "threadsPerCore")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.threadsPerCore); return writer; @@ -131845,7 +141939,7 @@ * @returns {$protobuf.Writer} Writer */ AdvancedMachineFeatures.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -131859,9 +141953,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AdvancedMachineFeatures.decode = function decode(reader, length, error) { + AdvancedMachineFeatures.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.AdvancedMachineFeatures(); while (reader.pos < end) { var tag = reader.uint32(); @@ -131873,7 +141971,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -131904,10 +142002,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - AdvancedMachineFeatures.verify = function verify(message) { + AdvancedMachineFeatures.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.threadsPerCore != null && message.hasOwnProperty("threadsPerCore")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.threadsPerCore != null && Object.hasOwnProperty.call(message, "threadsPerCore")) if (!$util.isInteger(message.threadsPerCore)) return "threadsPerCore: integer expected"; return null; @@ -131921,9 +142023,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.AdvancedMachineFeatures} AdvancedMachineFeatures */ - AdvancedMachineFeatures.fromObject = function fromObject(object) { + AdvancedMachineFeatures.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.AdvancedMachineFeatures) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.AdvancedMachineFeatures: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.AdvancedMachineFeatures(); if (object.threadsPerCore != null) message.threadsPerCore = object.threadsPerCore | 0; @@ -131939,13 +142047,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - AdvancedMachineFeatures.toObject = function toObject(message, options) { + AdvancedMachineFeatures.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.threadsPerCore = 0; - if (message.threadsPerCore != null && message.hasOwnProperty("threadsPerCore")) + if (message.threadsPerCore != null && Object.hasOwnProperty.call(message, "threadsPerCore")) object.threadsPerCore = message.threadsPerCore; return object; }; @@ -132007,7 +142119,7 @@ function SslCert(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -132104,9 +142216,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SslCert.encode = function encode(message, writer) { + SslCert.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.certSerialNumber != null && Object.hasOwnProperty.call(message, "certSerialNumber")) @@ -132114,11 +142230,11 @@ if (message.cert != null && Object.hasOwnProperty.call(message, "cert")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.cert); if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) - $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.commonName != null && Object.hasOwnProperty.call(message, "commonName")) writer.uint32(/* id 5, wireType 2 =*/42).string(message.commonName); if (message.expirationTime != null && Object.hasOwnProperty.call(message, "expirationTime")) - $root.google.protobuf.Timestamp.encode(message.expirationTime, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.expirationTime, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.sha1Fingerprint != null && Object.hasOwnProperty.call(message, "sha1Fingerprint")) writer.uint32(/* id 7, wireType 2 =*/58).string(message.sha1Fingerprint); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) @@ -132138,7 +142254,7 @@ * @returns {$protobuf.Writer} Writer */ SslCert.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -132152,9 +142268,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SslCert.decode = function decode(reader, length, error) { + SslCert.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SslCert(); while (reader.pos < end) { var tag = reader.uint32(); @@ -132174,7 +142294,7 @@ break; } case 4: { - message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -132182,7 +142302,7 @@ break; } case 6: { - message.expirationTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.expirationTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { @@ -132198,7 +142318,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -132229,38 +142349,42 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SslCert.verify = function verify(message) { + SslCert.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.certSerialNumber != null && message.hasOwnProperty("certSerialNumber")) + if (message.certSerialNumber != null && Object.hasOwnProperty.call(message, "certSerialNumber")) if (!$util.isString(message.certSerialNumber)) return "certSerialNumber: string expected"; - if (message.cert != null && message.hasOwnProperty("cert")) + if (message.cert != null && Object.hasOwnProperty.call(message, "cert")) if (!$util.isString(message.cert)) return "cert: string expected"; - if (message.createTime != null && message.hasOwnProperty("createTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.createTime); + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.createTime, long + 1); if (error) return "createTime." + error; } - if (message.commonName != null && message.hasOwnProperty("commonName")) + if (message.commonName != null && Object.hasOwnProperty.call(message, "commonName")) if (!$util.isString(message.commonName)) return "commonName: string expected"; - if (message.expirationTime != null && message.hasOwnProperty("expirationTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.expirationTime); + if (message.expirationTime != null && Object.hasOwnProperty.call(message, "expirationTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.expirationTime, long + 1); if (error) return "expirationTime." + error; } - if (message.sha1Fingerprint != null && message.hasOwnProperty("sha1Fingerprint")) + if (message.sha1Fingerprint != null && Object.hasOwnProperty.call(message, "sha1Fingerprint")) if (!$util.isString(message.sha1Fingerprint)) return "sha1Fingerprint: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) if (!$util.isString(message.selfLink)) return "selfLink: string expected"; return null; @@ -132274,9 +142398,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SslCert} SslCert */ - SslCert.fromObject = function fromObject(object) { + SslCert.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SslCert) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SslCert: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SslCert(); if (object.kind != null) message.kind = String(object.kind); @@ -132285,16 +142415,16 @@ if (object.cert != null) message.cert = String(object.cert); if (object.createTime != null) { - if (typeof object.createTime !== "object") + if (!$util.isObject(object.createTime)) throw TypeError(".google.cloud.sql.v1beta4.SslCert.createTime: object expected"); - message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime); + message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime, long + 1); } if (object.commonName != null) message.commonName = String(object.commonName); if (object.expirationTime != null) { - if (typeof object.expirationTime !== "object") + if (!$util.isObject(object.expirationTime)) throw TypeError(".google.cloud.sql.v1beta4.SslCert.expirationTime: object expected"); - message.expirationTime = $root.google.protobuf.Timestamp.fromObject(object.expirationTime); + message.expirationTime = $root.google.protobuf.Timestamp.fromObject(object.expirationTime, long + 1); } if (object.sha1Fingerprint != null) message.sha1Fingerprint = String(object.sha1Fingerprint); @@ -132314,9 +142444,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SslCert.toObject = function toObject(message, options) { + SslCert.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -132329,23 +142463,23 @@ object.instance = ""; object.selfLink = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.certSerialNumber != null && message.hasOwnProperty("certSerialNumber")) + if (message.certSerialNumber != null && Object.hasOwnProperty.call(message, "certSerialNumber")) object.certSerialNumber = message.certSerialNumber; - if (message.cert != null && message.hasOwnProperty("cert")) + if (message.cert != null && Object.hasOwnProperty.call(message, "cert")) object.cert = message.cert; - if (message.createTime != null && message.hasOwnProperty("createTime")) - object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options); - if (message.commonName != null && message.hasOwnProperty("commonName")) + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) + object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options, q + 1); + if (message.commonName != null && Object.hasOwnProperty.call(message, "commonName")) object.commonName = message.commonName; - if (message.expirationTime != null && message.hasOwnProperty("expirationTime")) - object.expirationTime = $root.google.protobuf.Timestamp.toObject(message.expirationTime, options); - if (message.sha1Fingerprint != null && message.hasOwnProperty("sha1Fingerprint")) + if (message.expirationTime != null && Object.hasOwnProperty.call(message, "expirationTime")) + object.expirationTime = $root.google.protobuf.Timestamp.toObject(message.expirationTime, options, q + 1); + if (message.sha1Fingerprint != null && Object.hasOwnProperty.call(message, "sha1Fingerprint")) object.sha1Fingerprint = message.sha1Fingerprint; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.selfLink != null && message.hasOwnProperty("selfLink")) + if (message.selfLink != null && Object.hasOwnProperty.call(message, "selfLink")) object.selfLink = message.selfLink; return object; }; @@ -132400,7 +142534,7 @@ function SslCertDetail(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -132441,11 +142575,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SslCertDetail.encode = function encode(message, writer) { + SslCertDetail.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.certInfo != null && Object.hasOwnProperty.call(message, "certInfo")) - $root.google.cloud.sql.v1beta4.SslCert.encode(message.certInfo, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SslCert.encode(message.certInfo, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.certPrivateKey != null && Object.hasOwnProperty.call(message, "certPrivateKey")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.certPrivateKey); return writer; @@ -132461,7 +142599,7 @@ * @returns {$protobuf.Writer} Writer */ SslCertDetail.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -132475,9 +142613,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SslCertDetail.decode = function decode(reader, length, error) { + SslCertDetail.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SslCertDetail(); while (reader.pos < end) { var tag = reader.uint32(); @@ -132485,7 +142627,7 @@ break; switch (tag >>> 3) { case 1: { - message.certInfo = $root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32()); + message.certInfo = $root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -132493,7 +142635,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -132524,15 +142666,19 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SslCertDetail.verify = function verify(message) { + SslCertDetail.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.certInfo != null && message.hasOwnProperty("certInfo")) { - var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.certInfo); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.certInfo != null && Object.hasOwnProperty.call(message, "certInfo")) { + var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.certInfo, long + 1); if (error) return "certInfo." + error; } - if (message.certPrivateKey != null && message.hasOwnProperty("certPrivateKey")) + if (message.certPrivateKey != null && Object.hasOwnProperty.call(message, "certPrivateKey")) if (!$util.isString(message.certPrivateKey)) return "certPrivateKey: string expected"; return null; @@ -132546,14 +142692,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SslCertDetail} SslCertDetail */ - SslCertDetail.fromObject = function fromObject(object) { + SslCertDetail.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SslCertDetail) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SslCertDetail: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SslCertDetail(); if (object.certInfo != null) { - if (typeof object.certInfo !== "object") + if (!$util.isObject(object.certInfo)) throw TypeError(".google.cloud.sql.v1beta4.SslCertDetail.certInfo: object expected"); - message.certInfo = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.certInfo); + message.certInfo = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.certInfo, long + 1); } if (object.certPrivateKey != null) message.certPrivateKey = String(object.certPrivateKey); @@ -132569,17 +142721,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SslCertDetail.toObject = function toObject(message, options) { + SslCertDetail.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.certInfo = null; object.certPrivateKey = ""; } - if (message.certInfo != null && message.hasOwnProperty("certInfo")) - object.certInfo = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.certInfo, options); - if (message.certPrivateKey != null && message.hasOwnProperty("certPrivateKey")) + if (message.certInfo != null && Object.hasOwnProperty.call(message, "certInfo")) + object.certInfo = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.certInfo, options, q + 1); + if (message.certPrivateKey != null && Object.hasOwnProperty.call(message, "certPrivateKey")) object.certPrivateKey = message.certPrivateKey; return object; }; @@ -132634,7 +142790,7 @@ function SslCertsCreateEphemeralRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -132675,9 +142831,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SslCertsCreateEphemeralRequest.encode = function encode(message, writer) { + SslCertsCreateEphemeralRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.publicKey != null && Object.hasOwnProperty.call(message, "publicKey")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.publicKey); if (message.accessToken != null && Object.hasOwnProperty.call(message, "accessToken")) @@ -132695,7 +142855,7 @@ * @returns {$protobuf.Writer} Writer */ SslCertsCreateEphemeralRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -132709,9 +142869,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SslCertsCreateEphemeralRequest.decode = function decode(reader, length, error) { + SslCertsCreateEphemeralRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -132727,7 +142891,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -132758,13 +142922,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SslCertsCreateEphemeralRequest.verify = function verify(message) { + SslCertsCreateEphemeralRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.publicKey != null && message.hasOwnProperty("publicKey")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.publicKey != null && Object.hasOwnProperty.call(message, "publicKey")) if (!$util.isString(message.publicKey)) return "publicKey: string expected"; - if (message.accessToken != null && message.hasOwnProperty("accessToken")) + if (message.accessToken != null && Object.hasOwnProperty.call(message, "accessToken")) if (!$util.isString(message.accessToken)) return "accessToken: string expected"; return null; @@ -132778,9 +142946,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest} SslCertsCreateEphemeralRequest */ - SslCertsCreateEphemeralRequest.fromObject = function fromObject(object) { + SslCertsCreateEphemeralRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest(); if (object.publicKey != null) message.publicKey = String(object.publicKey); @@ -132798,17 +142972,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SslCertsCreateEphemeralRequest.toObject = function toObject(message, options) { + SslCertsCreateEphemeralRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.publicKey = ""; object.accessToken = ""; } - if (message.publicKey != null && message.hasOwnProperty("publicKey")) + if (message.publicKey != null && Object.hasOwnProperty.call(message, "publicKey")) object.publicKey = message.publicKey; - if (message.accessToken != null && message.hasOwnProperty("accessToken")) + if (message.accessToken != null && Object.hasOwnProperty.call(message, "accessToken")) object.accessToken = message.accessToken; return object; }; @@ -132862,7 +143040,7 @@ function SslCertsInsertRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -132895,9 +143073,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SslCertsInsertRequest.encode = function encode(message, writer) { + SslCertsInsertRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.commonName != null && Object.hasOwnProperty.call(message, "commonName")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.commonName); return writer; @@ -132913,7 +143095,7 @@ * @returns {$protobuf.Writer} Writer */ SslCertsInsertRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -132927,9 +143109,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SslCertsInsertRequest.decode = function decode(reader, length, error) { + SslCertsInsertRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SslCertsInsertRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -132941,7 +143127,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -132972,10 +143158,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SslCertsInsertRequest.verify = function verify(message) { + SslCertsInsertRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.commonName != null && message.hasOwnProperty("commonName")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.commonName != null && Object.hasOwnProperty.call(message, "commonName")) if (!$util.isString(message.commonName)) return "commonName: string expected"; return null; @@ -132989,9 +143179,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SslCertsInsertRequest} SslCertsInsertRequest */ - SslCertsInsertRequest.fromObject = function fromObject(object) { + SslCertsInsertRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SslCertsInsertRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SslCertsInsertRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SslCertsInsertRequest(); if (object.commonName != null) message.commonName = String(object.commonName); @@ -133007,13 +143203,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SslCertsInsertRequest.toObject = function toObject(message, options) { + SslCertsInsertRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.commonName = ""; - if (message.commonName != null && message.hasOwnProperty("commonName")) + if (message.commonName != null && Object.hasOwnProperty.call(message, "commonName")) object.commonName = message.commonName; return object; }; @@ -133067,7 +143267,7 @@ function SqlInstancesRescheduleMaintenanceRequestBody(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -133100,11 +143300,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlInstancesRescheduleMaintenanceRequestBody.encode = function encode(message, writer) { + SqlInstancesRescheduleMaintenanceRequestBody.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.reschedule != null && Object.hasOwnProperty.call(message, "reschedule")) - $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.encode(message.reschedule, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.encode(message.reschedule, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -133118,7 +143322,7 @@ * @returns {$protobuf.Writer} Writer */ SqlInstancesRescheduleMaintenanceRequestBody.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -133132,9 +143336,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlInstancesRescheduleMaintenanceRequestBody.decode = function decode(reader, length, error) { + SqlInstancesRescheduleMaintenanceRequestBody.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody(); while (reader.pos < end) { var tag = reader.uint32(); @@ -133142,11 +143350,11 @@ break; switch (tag >>> 3) { case 3: { - message.reschedule = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.decode(reader, reader.uint32()); + message.reschedule = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -133177,11 +143385,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlInstancesRescheduleMaintenanceRequestBody.verify = function verify(message) { + SqlInstancesRescheduleMaintenanceRequestBody.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.reschedule != null && message.hasOwnProperty("reschedule")) { - var error = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.verify(message.reschedule); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.reschedule != null && Object.hasOwnProperty.call(message, "reschedule")) { + var error = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.verify(message.reschedule, long + 1); if (error) return "reschedule." + error; } @@ -133196,14 +143408,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody} SqlInstancesRescheduleMaintenanceRequestBody */ - SqlInstancesRescheduleMaintenanceRequestBody.fromObject = function fromObject(object) { + SqlInstancesRescheduleMaintenanceRequestBody.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody(); if (object.reschedule != null) { - if (typeof object.reschedule !== "object") + if (!$util.isObject(object.reschedule)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.reschedule: object expected"); - message.reschedule = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.fromObject(object.reschedule); + message.reschedule = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.fromObject(object.reschedule, long + 1); } return message; }; @@ -133217,14 +143435,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlInstancesRescheduleMaintenanceRequestBody.toObject = function toObject(message, options) { + SqlInstancesRescheduleMaintenanceRequestBody.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.reschedule = null; - if (message.reschedule != null && message.hasOwnProperty("reschedule")) - object.reschedule = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.toObject(message.reschedule, options); + if (message.reschedule != null && Object.hasOwnProperty.call(message, "reschedule")) + object.reschedule = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.toObject(message.reschedule, options, q + 1); return object; }; @@ -133293,7 +143515,7 @@ function Reschedule(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -133334,13 +143556,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Reschedule.encode = function encode(message, writer) { + Reschedule.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.rescheduleType != null && Object.hasOwnProperty.call(message, "rescheduleType")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.rescheduleType); if (message.scheduleTime != null && Object.hasOwnProperty.call(message, "scheduleTime")) - $root.google.protobuf.Timestamp.encode(message.scheduleTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.scheduleTime, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -133354,7 +143580,7 @@ * @returns {$protobuf.Writer} Writer */ Reschedule.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -133368,9 +143594,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Reschedule.decode = function decode(reader, length, error) { + Reschedule.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule(); while (reader.pos < end) { var tag = reader.uint32(); @@ -133382,11 +143612,11 @@ break; } case 2: { - message.scheduleTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.scheduleTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -133417,10 +143647,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Reschedule.verify = function verify(message) { + Reschedule.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.rescheduleType != null && message.hasOwnProperty("rescheduleType")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.rescheduleType != null && Object.hasOwnProperty.call(message, "rescheduleType")) switch (message.rescheduleType) { default: return "rescheduleType: enum value expected"; @@ -133430,8 +143664,8 @@ case 3: break; } - if (message.scheduleTime != null && message.hasOwnProperty("scheduleTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.scheduleTime); + if (message.scheduleTime != null && Object.hasOwnProperty.call(message, "scheduleTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.scheduleTime, long + 1); if (error) return "scheduleTime." + error; } @@ -133446,9 +143680,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule} Reschedule */ - Reschedule.fromObject = function fromObject(object) { + Reschedule.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule(); switch (object.rescheduleType) { default: @@ -133475,9 +143715,9 @@ break; } if (object.scheduleTime != null) { - if (typeof object.scheduleTime !== "object") + if (!$util.isObject(object.scheduleTime)) throw TypeError(".google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.scheduleTime: object expected"); - message.scheduleTime = $root.google.protobuf.Timestamp.fromObject(object.scheduleTime); + message.scheduleTime = $root.google.protobuf.Timestamp.fromObject(object.scheduleTime, long + 1); } return message; }; @@ -133491,18 +143731,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Reschedule.toObject = function toObject(message, options) { + Reschedule.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.rescheduleType = options.enums === String ? "RESCHEDULE_TYPE_UNSPECIFIED" : 0; object.scheduleTime = null; } - if (message.rescheduleType != null && message.hasOwnProperty("rescheduleType")) + if (message.rescheduleType != null && Object.hasOwnProperty.call(message, "rescheduleType")) object.rescheduleType = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.RescheduleType[message.rescheduleType] === undefined ? message.rescheduleType : $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.RescheduleType[message.rescheduleType] : message.rescheduleType; - if (message.scheduleTime != null && message.hasOwnProperty("scheduleTime")) - object.scheduleTime = $root.google.protobuf.Timestamp.toObject(message.scheduleTime, options); + if (message.scheduleTime != null && Object.hasOwnProperty.call(message, "scheduleTime")) + object.scheduleTime = $root.google.protobuf.Timestamp.toObject(message.scheduleTime, options, q + 1); return object; }; @@ -133561,7 +143805,7 @@ function SslCertsInsertResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -133618,17 +143862,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SslCertsInsertResponse.encode = function encode(message, writer) { + SslCertsInsertResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) - $root.google.cloud.sql.v1beta4.Operation.encode(message.operation, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.Operation.encode(message.operation, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) - $root.google.cloud.sql.v1beta4.SslCert.encode(message.serverCaCert, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SslCert.encode(message.serverCaCert, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.clientCert != null && Object.hasOwnProperty.call(message, "clientCert")) - $root.google.cloud.sql.v1beta4.SslCertDetail.encode(message.clientCert, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SslCertDetail.encode(message.clientCert, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); return writer; }; @@ -133642,7 +143890,7 @@ * @returns {$protobuf.Writer} Writer */ SslCertsInsertResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -133656,9 +143904,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SslCertsInsertResponse.decode = function decode(reader, length, error) { + SslCertsInsertResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SslCertsInsertResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -133670,19 +143922,19 @@ break; } case 2: { - message.operation = $root.google.cloud.sql.v1beta4.Operation.decode(reader, reader.uint32()); + message.operation = $root.google.cloud.sql.v1beta4.Operation.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { - message.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32()); + message.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { - message.clientCert = $root.google.cloud.sql.v1beta4.SslCertDetail.decode(reader, reader.uint32()); + message.clientCert = $root.google.cloud.sql.v1beta4.SslCertDetail.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -133713,24 +143965,28 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SslCertsInsertResponse.verify = function verify(message) { + SslCertsInsertResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.operation != null && message.hasOwnProperty("operation")) { - var error = $root.google.cloud.sql.v1beta4.Operation.verify(message.operation); + if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) { + var error = $root.google.cloud.sql.v1beta4.Operation.verify(message.operation, long + 1); if (error) return "operation." + error; } - if (message.serverCaCert != null && message.hasOwnProperty("serverCaCert")) { - var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.serverCaCert); + if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) { + var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.serverCaCert, long + 1); if (error) return "serverCaCert." + error; } - if (message.clientCert != null && message.hasOwnProperty("clientCert")) { - var error = $root.google.cloud.sql.v1beta4.SslCertDetail.verify(message.clientCert); + if (message.clientCert != null && Object.hasOwnProperty.call(message, "clientCert")) { + var error = $root.google.cloud.sql.v1beta4.SslCertDetail.verify(message.clientCert, long + 1); if (error) return "clientCert." + error; } @@ -133745,26 +144001,32 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SslCertsInsertResponse} SslCertsInsertResponse */ - SslCertsInsertResponse.fromObject = function fromObject(object) { + SslCertsInsertResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SslCertsInsertResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SslCertsInsertResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SslCertsInsertResponse(); if (object.kind != null) message.kind = String(object.kind); if (object.operation != null) { - if (typeof object.operation !== "object") + if (!$util.isObject(object.operation)) throw TypeError(".google.cloud.sql.v1beta4.SslCertsInsertResponse.operation: object expected"); - message.operation = $root.google.cloud.sql.v1beta4.Operation.fromObject(object.operation); + message.operation = $root.google.cloud.sql.v1beta4.Operation.fromObject(object.operation, long + 1); } if (object.serverCaCert != null) { - if (typeof object.serverCaCert !== "object") + if (!$util.isObject(object.serverCaCert)) throw TypeError(".google.cloud.sql.v1beta4.SslCertsInsertResponse.serverCaCert: object expected"); - message.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.serverCaCert); + message.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.serverCaCert, long + 1); } if (object.clientCert != null) { - if (typeof object.clientCert !== "object") + if (!$util.isObject(object.clientCert)) throw TypeError(".google.cloud.sql.v1beta4.SslCertsInsertResponse.clientCert: object expected"); - message.clientCert = $root.google.cloud.sql.v1beta4.SslCertDetail.fromObject(object.clientCert); + message.clientCert = $root.google.cloud.sql.v1beta4.SslCertDetail.fromObject(object.clientCert, long + 1); } return message; }; @@ -133778,9 +144040,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SslCertsInsertResponse.toObject = function toObject(message, options) { + SslCertsInsertResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -133788,14 +144054,14 @@ object.serverCaCert = null; object.clientCert = null; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.operation != null && message.hasOwnProperty("operation")) - object.operation = $root.google.cloud.sql.v1beta4.Operation.toObject(message.operation, options); - if (message.serverCaCert != null && message.hasOwnProperty("serverCaCert")) - object.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.serverCaCert, options); - if (message.clientCert != null && message.hasOwnProperty("clientCert")) - object.clientCert = $root.google.cloud.sql.v1beta4.SslCertDetail.toObject(message.clientCert, options); + if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) + object.operation = $root.google.cloud.sql.v1beta4.Operation.toObject(message.operation, options, q + 1); + if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) + object.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.serverCaCert, options, q + 1); + if (message.clientCert != null && Object.hasOwnProperty.call(message, "clientCert")) + object.clientCert = $root.google.cloud.sql.v1beta4.SslCertDetail.toObject(message.clientCert, options, q + 1); return object; }; @@ -133850,7 +144116,7 @@ this.items = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -133891,14 +144157,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SslCertsListResponse.encode = function encode(message, writer) { + SslCertsListResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.items != null && message.items.length) for (var i = 0; i < message.items.length; ++i) - $root.google.cloud.sql.v1beta4.SslCert.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SslCert.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -133912,7 +144182,7 @@ * @returns {$protobuf.Writer} Writer */ SslCertsListResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -133926,9 +144196,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SslCertsListResponse.decode = function decode(reader, length, error) { + SslCertsListResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SslCertsListResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -133942,11 +144216,11 @@ case 2: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -133977,17 +144251,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SslCertsListResponse.verify = function verify(message) { + SslCertsListResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.items != null && message.hasOwnProperty("items")) { + if (message.items != null && Object.hasOwnProperty.call(message, "items")) { if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.items[i]); + var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.items[i], long + 1); if (error) return "items." + error; } @@ -134003,9 +144281,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SslCertsListResponse} SslCertsListResponse */ - SslCertsListResponse.fromObject = function fromObject(object) { + SslCertsListResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SslCertsListResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SslCertsListResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SslCertsListResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -134014,9 +144298,9 @@ throw TypeError(".google.cloud.sql.v1beta4.SslCertsListResponse.items: array expected"); message.items = []; for (var i = 0; i < object.items.length; ++i) { - if (typeof object.items[i] !== "object") + if (!$util.isObject(object.items[i])) throw TypeError(".google.cloud.sql.v1beta4.SslCertsListResponse.items: object expected"); - message.items[i] = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.items[i], long + 1); } } return message; @@ -134031,20 +144315,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SslCertsListResponse.toObject = function toObject(message, options) { + SslCertsListResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.items = []; if (options.defaults) object.kind = ""; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.items && message.items.length) { object.items = []; for (var j = 0; j < message.items.length; ++j) - object.items[j] = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.items[j], options); + object.items[j] = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.items[j], options, q + 1); } return object; }; @@ -134099,7 +144387,7 @@ function TruncateLogContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -134140,9 +144428,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - TruncateLogContext.encode = function encode(message, writer) { + TruncateLogContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.logType != null && Object.hasOwnProperty.call(message, "logType")) @@ -134160,7 +144452,7 @@ * @returns {$protobuf.Writer} Writer */ TruncateLogContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -134174,9 +144466,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - TruncateLogContext.decode = function decode(reader, length, error) { + TruncateLogContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.TruncateLogContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -134192,7 +144488,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -134223,13 +144519,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - TruncateLogContext.verify = function verify(message) { + TruncateLogContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.logType != null && message.hasOwnProperty("logType")) + if (message.logType != null && Object.hasOwnProperty.call(message, "logType")) if (!$util.isString(message.logType)) return "logType: string expected"; return null; @@ -134243,9 +144543,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.TruncateLogContext} TruncateLogContext */ - TruncateLogContext.fromObject = function fromObject(object) { + TruncateLogContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.TruncateLogContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.TruncateLogContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.TruncateLogContext(); if (object.kind != null) message.kind = String(object.kind); @@ -134263,17 +144569,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - TruncateLogContext.toObject = function toObject(message, options) { + TruncateLogContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.logType = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.logType != null && message.hasOwnProperty("logType")) + if (message.logType != null && Object.hasOwnProperty.call(message, "logType")) object.logType = message.logType; return object; }; @@ -134333,7 +144643,7 @@ this.dnsServers = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -134406,9 +144716,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlActiveDirectoryConfig.encode = function encode(message, writer) { + SqlActiveDirectoryConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.domain != null && Object.hasOwnProperty.call(message, "domain")) @@ -134435,7 +144749,7 @@ * @returns {$protobuf.Writer} Writer */ SqlActiveDirectoryConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -134449,9 +144763,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlActiveDirectoryConfig.decode = function decode(reader, length, error) { + SqlActiveDirectoryConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlActiveDirectoryConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -134485,7 +144803,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -134516,16 +144834,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlActiveDirectoryConfig.verify = function verify(message) { + SqlActiveDirectoryConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.domain != null && message.hasOwnProperty("domain")) + if (message.domain != null && Object.hasOwnProperty.call(message, "domain")) if (!$util.isString(message.domain)) return "domain: string expected"; - if (message.mode != null && message.hasOwnProperty("mode")) + if (message.mode != null && Object.hasOwnProperty.call(message, "mode")) switch (message.mode) { default: return "mode: enum value expected"; @@ -134535,17 +144857,17 @@ case 3: break; } - if (message.dnsServers != null && message.hasOwnProperty("dnsServers")) { + if (message.dnsServers != null && Object.hasOwnProperty.call(message, "dnsServers")) { if (!Array.isArray(message.dnsServers)) return "dnsServers: array expected"; for (var i = 0; i < message.dnsServers.length; ++i) if (!$util.isString(message.dnsServers[i])) return "dnsServers: string[] expected"; } - if (message.adminCredentialSecretName != null && message.hasOwnProperty("adminCredentialSecretName")) + if (message.adminCredentialSecretName != null && Object.hasOwnProperty.call(message, "adminCredentialSecretName")) if (!$util.isString(message.adminCredentialSecretName)) return "adminCredentialSecretName: string expected"; - if (message.organizationalUnit != null && message.hasOwnProperty("organizationalUnit")) + if (message.organizationalUnit != null && Object.hasOwnProperty.call(message, "organizationalUnit")) if (!$util.isString(message.organizationalUnit)) return "organizationalUnit: string expected"; return null; @@ -134559,9 +144881,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlActiveDirectoryConfig} SqlActiveDirectoryConfig */ - SqlActiveDirectoryConfig.fromObject = function fromObject(object) { + SqlActiveDirectoryConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlActiveDirectoryConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlActiveDirectoryConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlActiveDirectoryConfig(); if (object.kind != null) message.kind = String(object.kind); @@ -134614,9 +144942,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlActiveDirectoryConfig.toObject = function toObject(message, options) { + SqlActiveDirectoryConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.dnsServers = []; @@ -134627,20 +144959,20 @@ object.adminCredentialSecretName = ""; object.organizationalUnit = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.domain != null && message.hasOwnProperty("domain")) + if (message.domain != null && Object.hasOwnProperty.call(message, "domain")) object.domain = message.domain; - if (message.mode != null && message.hasOwnProperty("mode")) + if (message.mode != null && Object.hasOwnProperty.call(message, "mode")) object.mode = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlActiveDirectoryConfig.ActiveDirectoryMode[message.mode] === undefined ? message.mode : $root.google.cloud.sql.v1beta4.SqlActiveDirectoryConfig.ActiveDirectoryMode[message.mode] : message.mode; if (message.dnsServers && message.dnsServers.length) { object.dnsServers = []; for (var j = 0; j < message.dnsServers.length; ++j) object.dnsServers[j] = message.dnsServers[j]; } - if (message.adminCredentialSecretName != null && message.hasOwnProperty("adminCredentialSecretName")) + if (message.adminCredentialSecretName != null && Object.hasOwnProperty.call(message, "adminCredentialSecretName")) object.adminCredentialSecretName = message.adminCredentialSecretName; - if (message.organizationalUnit != null && message.hasOwnProperty("organizationalUnit")) + if (message.organizationalUnit != null && Object.hasOwnProperty.call(message, "organizationalUnit")) object.organizationalUnit = message.organizationalUnit; return object; }; @@ -134715,7 +145047,7 @@ function SqlServerAuditConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -134772,17 +145104,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlServerAuditConfig.encode = function encode(message, writer) { + SqlServerAuditConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.bucket != null && Object.hasOwnProperty.call(message, "bucket")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.bucket); if (message.retentionInterval != null && Object.hasOwnProperty.call(message, "retentionInterval")) - $root.google.protobuf.Duration.encode(message.retentionInterval, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.retentionInterval, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.uploadInterval != null && Object.hasOwnProperty.call(message, "uploadInterval")) - $root.google.protobuf.Duration.encode(message.uploadInterval, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.uploadInterval, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); return writer; }; @@ -134796,7 +145132,7 @@ * @returns {$protobuf.Writer} Writer */ SqlServerAuditConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -134810,9 +145146,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlServerAuditConfig.decode = function decode(reader, length, error) { + SqlServerAuditConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlServerAuditConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -134828,15 +145168,15 @@ break; } case 3: { - message.retentionInterval = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.retentionInterval = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { - message.uploadInterval = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.uploadInterval = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -134867,22 +145207,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlServerAuditConfig.verify = function verify(message) { + SqlServerAuditConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.bucket != null && message.hasOwnProperty("bucket")) + if (message.bucket != null && Object.hasOwnProperty.call(message, "bucket")) if (!$util.isString(message.bucket)) return "bucket: string expected"; - if (message.retentionInterval != null && message.hasOwnProperty("retentionInterval")) { - var error = $root.google.protobuf.Duration.verify(message.retentionInterval); + if (message.retentionInterval != null && Object.hasOwnProperty.call(message, "retentionInterval")) { + var error = $root.google.protobuf.Duration.verify(message.retentionInterval, long + 1); if (error) return "retentionInterval." + error; } - if (message.uploadInterval != null && message.hasOwnProperty("uploadInterval")) { - var error = $root.google.protobuf.Duration.verify(message.uploadInterval); + if (message.uploadInterval != null && Object.hasOwnProperty.call(message, "uploadInterval")) { + var error = $root.google.protobuf.Duration.verify(message.uploadInterval, long + 1); if (error) return "uploadInterval." + error; } @@ -134897,23 +145241,29 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlServerAuditConfig} SqlServerAuditConfig */ - SqlServerAuditConfig.fromObject = function fromObject(object) { + SqlServerAuditConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlServerAuditConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlServerAuditConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlServerAuditConfig(); if (object.kind != null) message.kind = String(object.kind); if (object.bucket != null) message.bucket = String(object.bucket); if (object.retentionInterval != null) { - if (typeof object.retentionInterval !== "object") + if (!$util.isObject(object.retentionInterval)) throw TypeError(".google.cloud.sql.v1beta4.SqlServerAuditConfig.retentionInterval: object expected"); - message.retentionInterval = $root.google.protobuf.Duration.fromObject(object.retentionInterval); + message.retentionInterval = $root.google.protobuf.Duration.fromObject(object.retentionInterval, long + 1); } if (object.uploadInterval != null) { - if (typeof object.uploadInterval !== "object") + if (!$util.isObject(object.uploadInterval)) throw TypeError(".google.cloud.sql.v1beta4.SqlServerAuditConfig.uploadInterval: object expected"); - message.uploadInterval = $root.google.protobuf.Duration.fromObject(object.uploadInterval); + message.uploadInterval = $root.google.protobuf.Duration.fromObject(object.uploadInterval, long + 1); } return message; }; @@ -134927,9 +145277,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlServerAuditConfig.toObject = function toObject(message, options) { + SqlServerAuditConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; @@ -134937,14 +145291,14 @@ object.retentionInterval = null; object.uploadInterval = null; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.bucket != null && message.hasOwnProperty("bucket")) + if (message.bucket != null && Object.hasOwnProperty.call(message, "bucket")) object.bucket = message.bucket; - if (message.retentionInterval != null && message.hasOwnProperty("retentionInterval")) - object.retentionInterval = $root.google.protobuf.Duration.toObject(message.retentionInterval, options); - if (message.uploadInterval != null && message.hasOwnProperty("uploadInterval")) - object.uploadInterval = $root.google.protobuf.Duration.toObject(message.uploadInterval, options); + if (message.retentionInterval != null && Object.hasOwnProperty.call(message, "retentionInterval")) + object.retentionInterval = $root.google.protobuf.Duration.toObject(message.retentionInterval, options, q + 1); + if (message.uploadInterval != null && Object.hasOwnProperty.call(message, "uploadInterval")) + object.uploadInterval = $root.google.protobuf.Duration.toObject(message.uploadInterval, options, q + 1); return object; }; @@ -134999,7 +145353,7 @@ function SqlServerEntraIdConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -135048,9 +145402,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlServerEntraIdConfig.encode = function encode(message, writer) { + SqlServerEntraIdConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.tenantId != null && Object.hasOwnProperty.call(message, "tenantId")) @@ -135070,7 +145428,7 @@ * @returns {$protobuf.Writer} Writer */ SqlServerEntraIdConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -135084,9 +145442,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlServerEntraIdConfig.decode = function decode(reader, length, error) { + SqlServerEntraIdConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlServerEntraIdConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -135106,7 +145468,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -135137,16 +145499,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlServerEntraIdConfig.verify = function verify(message) { + SqlServerEntraIdConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.tenantId != null && message.hasOwnProperty("tenantId")) + if (message.tenantId != null && Object.hasOwnProperty.call(message, "tenantId")) if (!$util.isString(message.tenantId)) return "tenantId: string expected"; - if (message.applicationId != null && message.hasOwnProperty("applicationId")) + if (message.applicationId != null && Object.hasOwnProperty.call(message, "applicationId")) if (!$util.isString(message.applicationId)) return "applicationId: string expected"; return null; @@ -135160,9 +145526,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlServerEntraIdConfig} SqlServerEntraIdConfig */ - SqlServerEntraIdConfig.fromObject = function fromObject(object) { + SqlServerEntraIdConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlServerEntraIdConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlServerEntraIdConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlServerEntraIdConfig(); if (object.kind != null) message.kind = String(object.kind); @@ -135182,20 +145554,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlServerEntraIdConfig.toObject = function toObject(message, options) { + SqlServerEntraIdConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.tenantId = ""; object.applicationId = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.tenantId != null && message.hasOwnProperty("tenantId")) + if (message.tenantId != null && Object.hasOwnProperty.call(message, "tenantId")) object.tenantId = message.tenantId; - if (message.applicationId != null && message.hasOwnProperty("applicationId")) + if (message.applicationId != null && Object.hasOwnProperty.call(message, "applicationId")) object.applicationId = message.applicationId; return object; }; @@ -135370,7 +145746,7 @@ function ConnectionPoolFlags(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -135411,9 +145787,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ConnectionPoolFlags.encode = function encode(message, writer) { + ConnectionPoolFlags.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.value != null && Object.hasOwnProperty.call(message, "value")) @@ -135431,7 +145811,7 @@ * @returns {$protobuf.Writer} Writer */ ConnectionPoolFlags.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -135445,9 +145825,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ConnectionPoolFlags.decode = function decode(reader, length, error) { + ConnectionPoolFlags.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ConnectionPoolFlags(); while (reader.pos < end) { var tag = reader.uint32(); @@ -135463,7 +145847,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -135494,13 +145878,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ConnectionPoolFlags.verify = function verify(message) { + ConnectionPoolFlags.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!$util.isString(message.value)) return "value: string expected"; return null; @@ -135514,9 +145902,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ConnectionPoolFlags} ConnectionPoolFlags */ - ConnectionPoolFlags.fromObject = function fromObject(object) { + ConnectionPoolFlags.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ConnectionPoolFlags) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ConnectionPoolFlags: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ConnectionPoolFlags(); if (object.name != null) message.name = String(object.name); @@ -135534,17 +145928,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ConnectionPoolFlags.toObject = function toObject(message, options) { + ConnectionPoolFlags.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; object.value = ""; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = message.value; return object; }; @@ -135605,7 +146003,7 @@ this.targetMetrics = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -135725,9 +146123,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ReadPoolAutoScaleConfig.encode = function encode(message, writer) { + ReadPoolAutoScaleConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.enabled); if (message.minNodeCount != null && Object.hasOwnProperty.call(message, "minNodeCount")) @@ -135736,7 +146138,7 @@ writer.uint32(/* id 3, wireType 0 =*/24).int32(message.maxNodeCount); if (message.targetMetrics != null && message.targetMetrics.length) for (var i = 0; i < message.targetMetrics.length; ++i) - $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.TargetMetric.encode(message.targetMetrics[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.TargetMetric.encode(message.targetMetrics[i], writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.disableScaleIn != null && Object.hasOwnProperty.call(message, "disableScaleIn")) writer.uint32(/* id 5, wireType 0 =*/40).bool(message.disableScaleIn); if (message.scaleInCooldownSeconds != null && Object.hasOwnProperty.call(message, "scaleInCooldownSeconds")) @@ -135756,7 +146158,7 @@ * @returns {$protobuf.Writer} Writer */ ReadPoolAutoScaleConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -135770,9 +146172,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ReadPoolAutoScaleConfig.decode = function decode(reader, length, error) { + ReadPoolAutoScaleConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -135794,7 +146200,7 @@ case 4: { if (!(message.targetMetrics && message.targetMetrics.length)) message.targetMetrics = []; - message.targetMetrics.push($root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.TargetMetric.decode(reader, reader.uint32())); + message.targetMetrics.push($root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.TargetMetric.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 5: { @@ -135810,7 +146216,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -135841,45 +146247,49 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ReadPoolAutoScaleConfig.verify = function verify(message) { + ReadPoolAutoScaleConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.enabled != null && message.hasOwnProperty("enabled")) { + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) { properties._enabled = 1; if (typeof message.enabled !== "boolean") return "enabled: boolean expected"; } - if (message.minNodeCount != null && message.hasOwnProperty("minNodeCount")) { + if (message.minNodeCount != null && Object.hasOwnProperty.call(message, "minNodeCount")) { properties._minNodeCount = 1; if (!$util.isInteger(message.minNodeCount)) return "minNodeCount: integer expected"; } - if (message.maxNodeCount != null && message.hasOwnProperty("maxNodeCount")) { + if (message.maxNodeCount != null && Object.hasOwnProperty.call(message, "maxNodeCount")) { properties._maxNodeCount = 1; if (!$util.isInteger(message.maxNodeCount)) return "maxNodeCount: integer expected"; } - if (message.targetMetrics != null && message.hasOwnProperty("targetMetrics")) { + if (message.targetMetrics != null && Object.hasOwnProperty.call(message, "targetMetrics")) { if (!Array.isArray(message.targetMetrics)) return "targetMetrics: array expected"; for (var i = 0; i < message.targetMetrics.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.TargetMetric.verify(message.targetMetrics[i]); + var error = $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.TargetMetric.verify(message.targetMetrics[i], long + 1); if (error) return "targetMetrics." + error; } } - if (message.disableScaleIn != null && message.hasOwnProperty("disableScaleIn")) { + if (message.disableScaleIn != null && Object.hasOwnProperty.call(message, "disableScaleIn")) { properties._disableScaleIn = 1; if (typeof message.disableScaleIn !== "boolean") return "disableScaleIn: boolean expected"; } - if (message.scaleInCooldownSeconds != null && message.hasOwnProperty("scaleInCooldownSeconds")) { + if (message.scaleInCooldownSeconds != null && Object.hasOwnProperty.call(message, "scaleInCooldownSeconds")) { properties._scaleInCooldownSeconds = 1; if (!$util.isInteger(message.scaleInCooldownSeconds)) return "scaleInCooldownSeconds: integer expected"; } - if (message.scaleOutCooldownSeconds != null && message.hasOwnProperty("scaleOutCooldownSeconds")) { + if (message.scaleOutCooldownSeconds != null && Object.hasOwnProperty.call(message, "scaleOutCooldownSeconds")) { properties._scaleOutCooldownSeconds = 1; if (!$util.isInteger(message.scaleOutCooldownSeconds)) return "scaleOutCooldownSeconds: integer expected"; @@ -135895,9 +146305,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig} ReadPoolAutoScaleConfig */ - ReadPoolAutoScaleConfig.fromObject = function fromObject(object) { + ReadPoolAutoScaleConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig(); if (object.enabled != null) message.enabled = Boolean(object.enabled); @@ -135910,9 +146326,9 @@ throw TypeError(".google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.targetMetrics: array expected"); message.targetMetrics = []; for (var i = 0; i < object.targetMetrics.length; ++i) { - if (typeof object.targetMetrics[i] !== "object") + if (!$util.isObject(object.targetMetrics[i])) throw TypeError(".google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.targetMetrics: object expected"); - message.targetMetrics[i] = $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.TargetMetric.fromObject(object.targetMetrics[i]); + message.targetMetrics[i] = $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.TargetMetric.fromObject(object.targetMetrics[i], long + 1); } } if (object.disableScaleIn != null) @@ -135933,23 +146349,27 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ReadPoolAutoScaleConfig.toObject = function toObject(message, options) { + ReadPoolAutoScaleConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.targetMetrics = []; - if (message.enabled != null && message.hasOwnProperty("enabled")) { + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) { object.enabled = message.enabled; if (options.oneofs) object._enabled = "enabled"; } - if (message.minNodeCount != null && message.hasOwnProperty("minNodeCount")) { + if (message.minNodeCount != null && Object.hasOwnProperty.call(message, "minNodeCount")) { object.minNodeCount = message.minNodeCount; if (options.oneofs) object._minNodeCount = "minNodeCount"; } - if (message.maxNodeCount != null && message.hasOwnProperty("maxNodeCount")) { + if (message.maxNodeCount != null && Object.hasOwnProperty.call(message, "maxNodeCount")) { object.maxNodeCount = message.maxNodeCount; if (options.oneofs) object._maxNodeCount = "maxNodeCount"; @@ -135957,19 +146377,19 @@ if (message.targetMetrics && message.targetMetrics.length) { object.targetMetrics = []; for (var j = 0; j < message.targetMetrics.length; ++j) - object.targetMetrics[j] = $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.TargetMetric.toObject(message.targetMetrics[j], options); + object.targetMetrics[j] = $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.TargetMetric.toObject(message.targetMetrics[j], options, q + 1); } - if (message.disableScaleIn != null && message.hasOwnProperty("disableScaleIn")) { + if (message.disableScaleIn != null && Object.hasOwnProperty.call(message, "disableScaleIn")) { object.disableScaleIn = message.disableScaleIn; if (options.oneofs) object._disableScaleIn = "disableScaleIn"; } - if (message.scaleInCooldownSeconds != null && message.hasOwnProperty("scaleInCooldownSeconds")) { + if (message.scaleInCooldownSeconds != null && Object.hasOwnProperty.call(message, "scaleInCooldownSeconds")) { object.scaleInCooldownSeconds = message.scaleInCooldownSeconds; if (options.oneofs) object._scaleInCooldownSeconds = "scaleInCooldownSeconds"; } - if (message.scaleOutCooldownSeconds != null && message.hasOwnProperty("scaleOutCooldownSeconds")) { + if (message.scaleOutCooldownSeconds != null && Object.hasOwnProperty.call(message, "scaleOutCooldownSeconds")) { object.scaleOutCooldownSeconds = message.scaleOutCooldownSeconds; if (options.oneofs) object._scaleOutCooldownSeconds = "scaleOutCooldownSeconds"; @@ -136024,7 +146444,7 @@ function TargetMetric(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -136080,9 +146500,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - TargetMetric.encode = function encode(message, writer) { + TargetMetric.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.metric != null && Object.hasOwnProperty.call(message, "metric")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.metric); if (message.targetValue != null && Object.hasOwnProperty.call(message, "targetValue")) @@ -136100,7 +146524,7 @@ * @returns {$protobuf.Writer} Writer */ TargetMetric.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -136114,9 +146538,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - TargetMetric.decode = function decode(reader, length, error) { + TargetMetric.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.TargetMetric(); while (reader.pos < end) { var tag = reader.uint32(); @@ -136132,7 +146560,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -136163,16 +146591,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - TargetMetric.verify = function verify(message) { + TargetMetric.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.metric != null && message.hasOwnProperty("metric")) { + if (message.metric != null && Object.hasOwnProperty.call(message, "metric")) { properties._metric = 1; if (!$util.isString(message.metric)) return "metric: string expected"; } - if (message.targetValue != null && message.hasOwnProperty("targetValue")) { + if (message.targetValue != null && Object.hasOwnProperty.call(message, "targetValue")) { properties._targetValue = 1; if (typeof message.targetValue !== "number") return "targetValue: number expected"; @@ -136188,9 +146620,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.TargetMetric} TargetMetric */ - TargetMetric.fromObject = function fromObject(object) { + TargetMetric.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.TargetMetric) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.TargetMetric: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ReadPoolAutoScaleConfig.TargetMetric(); if (object.metric != null) message.metric = String(object.metric); @@ -136208,16 +146646,20 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - TargetMetric.toObject = function toObject(message, options) { + TargetMetric.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.metric != null && message.hasOwnProperty("metric")) { + if (message.metric != null && Object.hasOwnProperty.call(message, "metric")) { object.metric = message.metric; if (options.oneofs) object._metric = "metric"; } - if (message.targetValue != null && message.hasOwnProperty("targetValue")) { + if (message.targetValue != null && Object.hasOwnProperty.call(message, "targetValue")) { object.targetValue = options.json && !isFinite(message.targetValue) ? String(message.targetValue) : message.targetValue; if (options.oneofs) object._targetValue = "targetValue"; @@ -136280,7 +146722,7 @@ this.flags = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -136344,14 +146786,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ConnectionPoolConfig.encode = function encode(message, writer) { + ConnectionPoolConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.connectionPoolingEnabled != null && Object.hasOwnProperty.call(message, "connectionPoolingEnabled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.connectionPoolingEnabled); if (message.flags != null && message.flags.length) for (var i = 0; i < message.flags.length; ++i) - $root.google.cloud.sql.v1beta4.ConnectionPoolFlags.encode(message.flags[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ConnectionPoolFlags.encode(message.flags[i], writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); if (message.poolerCount != null && Object.hasOwnProperty.call(message, "poolerCount")) writer.uint32(/* id 9, wireType 0 =*/72).int32(message.poolerCount); return writer; @@ -136367,7 +146813,7 @@ * @returns {$protobuf.Writer} Writer */ ConnectionPoolConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -136381,9 +146827,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ConnectionPoolConfig.decode = function decode(reader, length, error) { + ConnectionPoolConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ConnectionPoolConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -136397,7 +146847,7 @@ case 8: { if (!(message.flags && message.flags.length)) message.flags = []; - message.flags.push($root.google.cloud.sql.v1beta4.ConnectionPoolFlags.decode(reader, reader.uint32())); + message.flags.push($root.google.cloud.sql.v1beta4.ConnectionPoolFlags.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 9: { @@ -136405,7 +146855,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -136436,25 +146886,29 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ConnectionPoolConfig.verify = function verify(message) { + ConnectionPoolConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.connectionPoolingEnabled != null && message.hasOwnProperty("connectionPoolingEnabled")) { + if (message.connectionPoolingEnabled != null && Object.hasOwnProperty.call(message, "connectionPoolingEnabled")) { properties._connectionPoolingEnabled = 1; if (typeof message.connectionPoolingEnabled !== "boolean") return "connectionPoolingEnabled: boolean expected"; } - if (message.flags != null && message.hasOwnProperty("flags")) { + if (message.flags != null && Object.hasOwnProperty.call(message, "flags")) { if (!Array.isArray(message.flags)) return "flags: array expected"; for (var i = 0; i < message.flags.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.ConnectionPoolFlags.verify(message.flags[i]); + var error = $root.google.cloud.sql.v1beta4.ConnectionPoolFlags.verify(message.flags[i], long + 1); if (error) return "flags." + error; } } - if (message.poolerCount != null && message.hasOwnProperty("poolerCount")) { + if (message.poolerCount != null && Object.hasOwnProperty.call(message, "poolerCount")) { properties._poolerCount = 1; if (!$util.isInteger(message.poolerCount)) return "poolerCount: integer expected"; @@ -136470,9 +146924,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ConnectionPoolConfig} ConnectionPoolConfig */ - ConnectionPoolConfig.fromObject = function fromObject(object) { + ConnectionPoolConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ConnectionPoolConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ConnectionPoolConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ConnectionPoolConfig(); if (object.connectionPoolingEnabled != null) message.connectionPoolingEnabled = Boolean(object.connectionPoolingEnabled); @@ -136481,9 +146941,9 @@ throw TypeError(".google.cloud.sql.v1beta4.ConnectionPoolConfig.flags: array expected"); message.flags = []; for (var i = 0; i < object.flags.length; ++i) { - if (typeof object.flags[i] !== "object") + if (!$util.isObject(object.flags[i])) throw TypeError(".google.cloud.sql.v1beta4.ConnectionPoolConfig.flags: object expected"); - message.flags[i] = $root.google.cloud.sql.v1beta4.ConnectionPoolFlags.fromObject(object.flags[i]); + message.flags[i] = $root.google.cloud.sql.v1beta4.ConnectionPoolFlags.fromObject(object.flags[i], long + 1); } } if (object.poolerCount != null) @@ -136500,13 +146960,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ConnectionPoolConfig.toObject = function toObject(message, options) { + ConnectionPoolConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.flags = []; - if (message.connectionPoolingEnabled != null && message.hasOwnProperty("connectionPoolingEnabled")) { + if (message.connectionPoolingEnabled != null && Object.hasOwnProperty.call(message, "connectionPoolingEnabled")) { object.connectionPoolingEnabled = message.connectionPoolingEnabled; if (options.oneofs) object._connectionPoolingEnabled = "connectionPoolingEnabled"; @@ -136514,9 +146978,9 @@ if (message.flags && message.flags.length) { object.flags = []; for (var j = 0; j < message.flags.length; ++j) - object.flags[j] = $root.google.cloud.sql.v1beta4.ConnectionPoolFlags.toObject(message.flags[j], options); + object.flags[j] = $root.google.cloud.sql.v1beta4.ConnectionPoolFlags.toObject(message.flags[j], options, q + 1); } - if (message.poolerCount != null && message.hasOwnProperty("poolerCount")) { + if (message.poolerCount != null && Object.hasOwnProperty.call(message, "poolerCount")) { object.poolerCount = message.poolerCount; if (options.oneofs) object._poolerCount = "poolerCount"; @@ -136600,6 +147064,8 @@ * @property {number} POSTGRES_16=272 POSTGRES_16 value * @property {number} POSTGRES_17=408 POSTGRES_17 value * @property {number} POSTGRES_18=557 POSTGRES_18 value + * @property {number} POSTGRES_19=684 POSTGRES_19 value + * @property {number} POSTGRES_20=781 POSTGRES_20 value * @property {number} SQLSERVER_2019_STANDARD=26 SQLSERVER_2019_STANDARD value * @property {number} SQLSERVER_2019_ENTERPRISE=27 SQLSERVER_2019_ENTERPRISE value * @property {number} SQLSERVER_2019_EXPRESS=28 SQLSERVER_2019_EXPRESS value @@ -136608,6 +147074,9 @@ * @property {number} SQLSERVER_2022_ENTERPRISE=200 SQLSERVER_2022_ENTERPRISE value * @property {number} SQLSERVER_2022_EXPRESS=201 SQLSERVER_2022_EXPRESS value * @property {number} SQLSERVER_2022_WEB=202 SQLSERVER_2022_WEB value + * @property {number} SQLSERVER_2025_STANDARD=549 SQLSERVER_2025_STANDARD value + * @property {number} SQLSERVER_2025_ENTERPRISE=550 SQLSERVER_2025_ENTERPRISE value + * @property {number} SQLSERVER_2025_EXPRESS=551 SQLSERVER_2025_EXPRESS value */ v1beta4.SqlDatabaseVersion = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -136654,6 +147123,8 @@ values[valuesById[272] = "POSTGRES_16"] = 272; values[valuesById[408] = "POSTGRES_17"] = 408; values[valuesById[557] = "POSTGRES_18"] = 557; + values[valuesById[684] = "POSTGRES_19"] = 684; + values[valuesById[781] = "POSTGRES_20"] = 781; values[valuesById[26] = "SQLSERVER_2019_STANDARD"] = 26; values[valuesById[27] = "SQLSERVER_2019_ENTERPRISE"] = 27; values[valuesById[28] = "SQLSERVER_2019_EXPRESS"] = 28; @@ -136662,6 +147133,9 @@ values[valuesById[200] = "SQLSERVER_2022_ENTERPRISE"] = 200; values[valuesById[201] = "SQLSERVER_2022_EXPRESS"] = 201; values[valuesById[202] = "SQLSERVER_2022_WEB"] = 202; + values[valuesById[549] = "SQLSERVER_2025_STANDARD"] = 549; + values[valuesById[550] = "SQLSERVER_2025_ENTERPRISE"] = 550; + values[valuesById[551] = "SQLSERVER_2025_EXPRESS"] = 551; return values; })(); @@ -136674,6 +147148,7 @@ * @property {number} LEGAL_ISSUE=3 LEGAL_ISSUE value * @property {number} OPERATIONAL_ISSUE=4 OPERATIONAL_ISSUE value * @property {number} KMS_KEY_ISSUE=5 KMS_KEY_ISSUE value + * @property {number} PROJECT_ABUSE=8 PROJECT_ABUSE value */ v1beta4.SqlSuspensionReason = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -136682,6 +147157,7 @@ values[valuesById[3] = "LEGAL_ISSUE"] = 3; values[valuesById[4] = "OPERATIONAL_ISSUE"] = 4; values[valuesById[5] = "KMS_KEY_ISSUE"] = 5; + values[valuesById[8] = "PROJECT_ABUSE"] = 8; return values; })(); @@ -136794,7 +147270,7 @@ function AcquireSsrsLeaseContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -136878,9 +147354,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - AcquireSsrsLeaseContext.encode = function encode(message, writer) { + AcquireSsrsLeaseContext.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.setupLogin != null && Object.hasOwnProperty.call(message, "setupLogin")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.setupLogin); if (message.serviceLogin != null && Object.hasOwnProperty.call(message, "serviceLogin")) @@ -136888,7 +147368,7 @@ if (message.reportDatabase != null && Object.hasOwnProperty.call(message, "reportDatabase")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.reportDatabase); if (message.duration != null && Object.hasOwnProperty.call(message, "duration")) - $root.google.protobuf.Duration.encode(message.duration, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.duration, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); return writer; }; @@ -136902,7 +147382,7 @@ * @returns {$protobuf.Writer} Writer */ AcquireSsrsLeaseContext.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -136916,9 +147396,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AcquireSsrsLeaseContext.decode = function decode(reader, length, error) { + AcquireSsrsLeaseContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -136938,11 +147422,11 @@ break; } case 4: { - message.duration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.duration = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -136973,29 +147457,33 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - AcquireSsrsLeaseContext.verify = function verify(message) { + AcquireSsrsLeaseContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.setupLogin != null && message.hasOwnProperty("setupLogin")) { + if (message.setupLogin != null && Object.hasOwnProperty.call(message, "setupLogin")) { properties._setupLogin = 1; if (!$util.isString(message.setupLogin)) return "setupLogin: string expected"; } - if (message.serviceLogin != null && message.hasOwnProperty("serviceLogin")) { + if (message.serviceLogin != null && Object.hasOwnProperty.call(message, "serviceLogin")) { properties._serviceLogin = 1; if (!$util.isString(message.serviceLogin)) return "serviceLogin: string expected"; } - if (message.reportDatabase != null && message.hasOwnProperty("reportDatabase")) { + if (message.reportDatabase != null && Object.hasOwnProperty.call(message, "reportDatabase")) { properties._reportDatabase = 1; if (!$util.isString(message.reportDatabase)) return "reportDatabase: string expected"; } - if (message.duration != null && message.hasOwnProperty("duration")) { + if (message.duration != null && Object.hasOwnProperty.call(message, "duration")) { properties._duration = 1; { - var error = $root.google.protobuf.Duration.verify(message.duration); + var error = $root.google.protobuf.Duration.verify(message.duration, long + 1); if (error) return "duration." + error; } @@ -137011,9 +147499,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.AcquireSsrsLeaseContext} AcquireSsrsLeaseContext */ - AcquireSsrsLeaseContext.fromObject = function fromObject(object) { + AcquireSsrsLeaseContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.AcquireSsrsLeaseContext: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext(); if (object.setupLogin != null) message.setupLogin = String(object.setupLogin); @@ -137022,9 +147516,9 @@ if (object.reportDatabase != null) message.reportDatabase = String(object.reportDatabase); if (object.duration != null) { - if (typeof object.duration !== "object") + if (!$util.isObject(object.duration)) throw TypeError(".google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.duration: object expected"); - message.duration = $root.google.protobuf.Duration.fromObject(object.duration); + message.duration = $root.google.protobuf.Duration.fromObject(object.duration, long + 1); } return message; }; @@ -137038,27 +147532,31 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - AcquireSsrsLeaseContext.toObject = function toObject(message, options) { + AcquireSsrsLeaseContext.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (message.setupLogin != null && message.hasOwnProperty("setupLogin")) { + if (message.setupLogin != null && Object.hasOwnProperty.call(message, "setupLogin")) { object.setupLogin = message.setupLogin; if (options.oneofs) object._setupLogin = "setupLogin"; } - if (message.serviceLogin != null && message.hasOwnProperty("serviceLogin")) { + if (message.serviceLogin != null && Object.hasOwnProperty.call(message, "serviceLogin")) { object.serviceLogin = message.serviceLogin; if (options.oneofs) object._serviceLogin = "serviceLogin"; } - if (message.reportDatabase != null && message.hasOwnProperty("reportDatabase")) { + if (message.reportDatabase != null && Object.hasOwnProperty.call(message, "reportDatabase")) { object.reportDatabase = message.reportDatabase; if (options.oneofs) object._reportDatabase = "reportDatabase"; } - if (message.duration != null && message.hasOwnProperty("duration")) { - object.duration = $root.google.protobuf.Duration.toObject(message.duration, options); + if (message.duration != null && Object.hasOwnProperty.call(message, "duration")) { + object.duration = $root.google.protobuf.Duration.toObject(message.duration, options, q + 1); if (options.oneofs) object._duration = "duration"; } @@ -137188,7 +147686,7 @@ * @variation 1 */ Object.defineProperty(SqlConnectService.prototype.getConnectSettings = function getConnectSettings(request, callback) { - return this.rpcCall(getConnectSettings, $root.google.cloud.sql.v1beta4.GetConnectSettingsRequest, $root.google.cloud.sql.v1beta4.ConnectSettings, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, getConnectSettings, $root.google.cloud.sql.v1beta4.GetConnectSettingsRequest, $root.google.cloud.sql.v1beta4.ConnectSettings, request, callback); }, "name", { value: "GetConnectSettings" }); /** @@ -137201,6 +147699,39 @@ * @variation 2 */ + /** + * Callback as used by {@link google.cloud.sql.v1beta4.SqlConnectService|resolveConnectSettings}. + * @memberof google.cloud.sql.v1beta4.SqlConnectService + * @typedef ResolveConnectSettingsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.sql.v1beta4.ConnectSettings} [response] ConnectSettings + */ + + /** + * Calls ResolveConnectSettings. + * @function resolveConnectSettings + * @memberof google.cloud.sql.v1beta4.SqlConnectService + * @instance + * @param {google.cloud.sql.v1beta4.IResolveConnectSettingsRequest} request ResolveConnectSettingsRequest message or plain object + * @param {google.cloud.sql.v1beta4.SqlConnectService.ResolveConnectSettingsCallback} callback Node-style callback called with the error, if any, and ConnectSettings + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(SqlConnectService.prototype.resolveConnectSettings = function resolveConnectSettings(request, callback) { + return $protobuf.rpc.Service.prototype.rpcCall.call(this, resolveConnectSettings, $root.google.cloud.sql.v1beta4.ResolveConnectSettingsRequest, $root.google.cloud.sql.v1beta4.ConnectSettings, request, callback); + }, "name", { value: "ResolveConnectSettings" }); + + /** + * Calls ResolveConnectSettings. + * @function resolveConnectSettings + * @memberof google.cloud.sql.v1beta4.SqlConnectService + * @instance + * @param {google.cloud.sql.v1beta4.IResolveConnectSettingsRequest} request ResolveConnectSettingsRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + /** * Callback as used by {@link google.cloud.sql.v1beta4.SqlConnectService|generateEphemeralCert}. * @memberof google.cloud.sql.v1beta4.SqlConnectService @@ -137221,7 +147752,7 @@ * @variation 1 */ Object.defineProperty(SqlConnectService.prototype.generateEphemeralCert = function generateEphemeralCert(request, callback) { - return this.rpcCall(generateEphemeralCert, $root.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest, $root.google.cloud.sql.v1beta4.GenerateEphemeralCertResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, generateEphemeralCert, $root.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest, $root.google.cloud.sql.v1beta4.GenerateEphemeralCertResponse, request, callback); }, "name", { value: "GenerateEphemeralCert" }); /** @@ -137259,7 +147790,7 @@ function GetConnectSettingsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -137308,15 +147839,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetConnectSettingsRequest.encode = function encode(message, writer) { + GetConnectSettingsRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.readTime != null && Object.hasOwnProperty.call(message, "readTime")) - $root.google.protobuf.Timestamp.encode(message.readTime, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.readTime, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); return writer; }; @@ -137330,7 +147865,7 @@ * @returns {$protobuf.Writer} Writer */ GetConnectSettingsRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -137344,9 +147879,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetConnectSettingsRequest.decode = function decode(reader, length, error) { + GetConnectSettingsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.GetConnectSettingsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -137362,11 +147901,11 @@ break; } case 7: { - message.readTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.readTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -137397,17 +147936,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetConnectSettingsRequest.verify = function verify(message) { + GetConnectSettingsRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.readTime != null && message.hasOwnProperty("readTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.readTime); + if (message.readTime != null && Object.hasOwnProperty.call(message, "readTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.readTime, long + 1); if (error) return "readTime." + error; } @@ -137422,18 +147965,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.GetConnectSettingsRequest} GetConnectSettingsRequest */ - GetConnectSettingsRequest.fromObject = function fromObject(object) { + GetConnectSettingsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.GetConnectSettingsRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.GetConnectSettingsRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.GetConnectSettingsRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.readTime != null) { - if (typeof object.readTime !== "object") + if (!$util.isObject(object.readTime)) throw TypeError(".google.cloud.sql.v1beta4.GetConnectSettingsRequest.readTime: object expected"); - message.readTime = $root.google.protobuf.Timestamp.fromObject(object.readTime); + message.readTime = $root.google.protobuf.Timestamp.fromObject(object.readTime, long + 1); } return message; }; @@ -137447,21 +147996,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetConnectSettingsRequest.toObject = function toObject(message, options) { + GetConnectSettingsRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.readTime = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.readTime != null && message.hasOwnProperty("readTime")) - object.readTime = $root.google.protobuf.Timestamp.toObject(message.readTime, options); + if (message.readTime != null && Object.hasOwnProperty.call(message, "readTime")) + object.readTime = $root.google.protobuf.Timestamp.toObject(message.readTime, options, q + 1); return object; }; @@ -137494,6 +148047,257 @@ return GetConnectSettingsRequest; })(); + v1beta4.ResolveConnectSettingsRequest = (function() { + + /** + * Properties of a ResolveConnectSettingsRequest. + * @memberof google.cloud.sql.v1beta4 + * @interface IResolveConnectSettingsRequest + * @property {string|null} [dnsName] ResolveConnectSettingsRequest dnsName + * @property {string|null} [location] ResolveConnectSettingsRequest location + */ + + /** + * Constructs a new ResolveConnectSettingsRequest. + * @memberof google.cloud.sql.v1beta4 + * @classdesc Represents a ResolveConnectSettingsRequest. + * @implements IResolveConnectSettingsRequest + * @constructor + * @param {google.cloud.sql.v1beta4.IResolveConnectSettingsRequest=} [properties] Properties to set + */ + function ResolveConnectSettingsRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null && keys[i] !== "__proto__") + this[keys[i]] = properties[keys[i]]; + } + + /** + * ResolveConnectSettingsRequest dnsName. + * @member {string} dnsName + * @memberof google.cloud.sql.v1beta4.ResolveConnectSettingsRequest + * @instance + */ + ResolveConnectSettingsRequest.prototype.dnsName = ""; + + /** + * ResolveConnectSettingsRequest location. + * @member {string} location + * @memberof google.cloud.sql.v1beta4.ResolveConnectSettingsRequest + * @instance + */ + ResolveConnectSettingsRequest.prototype.location = ""; + + /** + * Creates a new ResolveConnectSettingsRequest instance using the specified properties. + * @function create + * @memberof google.cloud.sql.v1beta4.ResolveConnectSettingsRequest + * @static + * @param {google.cloud.sql.v1beta4.IResolveConnectSettingsRequest=} [properties] Properties to set + * @returns {google.cloud.sql.v1beta4.ResolveConnectSettingsRequest} ResolveConnectSettingsRequest instance + */ + ResolveConnectSettingsRequest.create = function create(properties) { + return new ResolveConnectSettingsRequest(properties); + }; + + /** + * Encodes the specified ResolveConnectSettingsRequest message. Does not implicitly {@link google.cloud.sql.v1beta4.ResolveConnectSettingsRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.sql.v1beta4.ResolveConnectSettingsRequest + * @static + * @param {google.cloud.sql.v1beta4.IResolveConnectSettingsRequest} message ResolveConnectSettingsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ResolveConnectSettingsRequest.encode = function encode(message, writer, q) { + if (!writer) + writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.dnsName); + if (message.location != null && Object.hasOwnProperty.call(message, "location")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.location); + return writer; + }; + + /** + * Encodes the specified ResolveConnectSettingsRequest message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.ResolveConnectSettingsRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.sql.v1beta4.ResolveConnectSettingsRequest + * @static + * @param {google.cloud.sql.v1beta4.IResolveConnectSettingsRequest} message ResolveConnectSettingsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ResolveConnectSettingsRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); + }; + + /** + * Decodes a ResolveConnectSettingsRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.sql.v1beta4.ResolveConnectSettingsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.sql.v1beta4.ResolveConnectSettingsRequest} ResolveConnectSettingsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ResolveConnectSettingsRequest.decode = function decode(reader, length, error, long) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ResolveConnectSettingsRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.dnsName = reader.string(); + break; + } + case 2: { + message.location = reader.string(); + break; + } + default: + reader.skipType(tag & 7, long); + break; + } + } + return message; + }; + + /** + * Decodes a ResolveConnectSettingsRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.sql.v1beta4.ResolveConnectSettingsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.sql.v1beta4.ResolveConnectSettingsRequest} ResolveConnectSettingsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ResolveConnectSettingsRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ResolveConnectSettingsRequest message. + * @function verify + * @memberof google.cloud.sql.v1beta4.ResolveConnectSettingsRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ResolveConnectSettingsRequest.verify = function verify(message, long) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) + if (!$util.isString(message.dnsName)) + return "dnsName: string expected"; + if (message.location != null && Object.hasOwnProperty.call(message, "location")) + if (!$util.isString(message.location)) + return "location: string expected"; + return null; + }; + + /** + * Creates a ResolveConnectSettingsRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.sql.v1beta4.ResolveConnectSettingsRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.sql.v1beta4.ResolveConnectSettingsRequest} ResolveConnectSettingsRequest + */ + ResolveConnectSettingsRequest.fromObject = function fromObject(object, long) { + if (object instanceof $root.google.cloud.sql.v1beta4.ResolveConnectSettingsRequest) + return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ResolveConnectSettingsRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var message = new $root.google.cloud.sql.v1beta4.ResolveConnectSettingsRequest(); + if (object.dnsName != null) + message.dnsName = String(object.dnsName); + if (object.location != null) + message.location = String(object.location); + return message; + }; + + /** + * Creates a plain object from a ResolveConnectSettingsRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.sql.v1beta4.ResolveConnectSettingsRequest + * @static + * @param {google.cloud.sql.v1beta4.ResolveConnectSettingsRequest} message ResolveConnectSettingsRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ResolveConnectSettingsRequest.toObject = function toObject(message, options, q) { + if (!options) + options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + var object = {}; + if (options.defaults) { + object.dnsName = ""; + object.location = ""; + } + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) + object.dnsName = message.dnsName; + if (message.location != null && Object.hasOwnProperty.call(message, "location")) + object.location = message.location; + return object; + }; + + /** + * Converts this ResolveConnectSettingsRequest to JSON. + * @function toJSON + * @memberof google.cloud.sql.v1beta4.ResolveConnectSettingsRequest + * @instance + * @returns {Object.} JSON object + */ + ResolveConnectSettingsRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ResolveConnectSettingsRequest + * @function getTypeUrl + * @memberof google.cloud.sql.v1beta4.ResolveConnectSettingsRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ResolveConnectSettingsRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.sql.v1beta4.ResolveConnectSettingsRequest"; + }; + + return ResolveConnectSettingsRequest; + })(); + v1beta4.ConnectSettings = (function() { /** @@ -137514,6 +148318,7 @@ * @property {number|null} [nodeCount] ConnectSettings nodeCount * @property {Array.|null} [nodes] ConnectSettings nodes * @property {Array.|null} [mdxProtocolSupport] ConnectSettings mdxProtocolSupport + * @property {string|null} [connectionName] ConnectSettings connectionName */ /** @@ -137532,7 +148337,7 @@ this.mdxProtocolSupport = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -137648,6 +148453,14 @@ */ ConnectSettings.prototype.mdxProtocolSupport = $util.emptyArray; + /** + * ConnectSettings connectionName. + * @member {string} connectionName + * @memberof google.cloud.sql.v1beta4.ConnectSettings + * @instance + */ + ConnectSettings.prototype.connectionName = ""; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -137678,16 +148491,20 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ConnectSettings.encode = function encode(message, writer) { + ConnectSettings.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) - $root.google.cloud.sql.v1beta4.SslCert.encode(message.serverCaCert, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SslCert.encode(message.serverCaCert, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.ipAddresses != null && message.ipAddresses.length) for (var i = 0; i < message.ipAddresses.length; ++i) - $root.google.cloud.sql.v1beta4.IpMapping.encode(message.ipAddresses[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.IpMapping.encode(message.ipAddresses[i], writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.region != null && Object.hasOwnProperty.call(message, "region")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.region); if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) @@ -137705,18 +148522,20 @@ writer.uint32(/* id 37, wireType 2 =*/298).string(message.customSubjectAlternativeNames[i]); if (message.dnsNames != null && message.dnsNames.length) for (var i = 0; i < message.dnsNames.length; ++i) - $root.google.cloud.sql.v1beta4.DnsNameMapping.encode(message.dnsNames[i], writer.uint32(/* id 38, wireType 2 =*/306).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DnsNameMapping.encode(message.dnsNames[i], writer.uint32(/* id 38, wireType 2 =*/306).fork(), q + 1).ldelim(); if (message.mdxProtocolSupport != null && message.mdxProtocolSupport.length) { writer.uint32(/* id 39, wireType 2 =*/314).fork(); for (var i = 0; i < message.mdxProtocolSupport.length; ++i) writer.int32(message.mdxProtocolSupport[i]); writer.ldelim(); } + if (message.connectionName != null && Object.hasOwnProperty.call(message, "connectionName")) + writer.uint32(/* id 40, wireType 2 =*/322).string(message.connectionName); if (message.nodeCount != null && Object.hasOwnProperty.call(message, "nodeCount")) writer.uint32(/* id 63, wireType 0 =*/504).int32(message.nodeCount); if (message.nodes != null && message.nodes.length) for (var i = 0; i < message.nodes.length; ++i) - $root.google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig.encode(message.nodes[i], writer.uint32(/* id 64, wireType 2 =*/514).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig.encode(message.nodes[i], writer.uint32(/* id 64, wireType 2 =*/514).fork(), q + 1).ldelim(); return writer; }; @@ -137730,7 +148549,7 @@ * @returns {$protobuf.Writer} Writer */ ConnectSettings.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -137744,9 +148563,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ConnectSettings.decode = function decode(reader, length, error) { + ConnectSettings.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ConnectSettings(); while (reader.pos < end) { var tag = reader.uint32(); @@ -137758,13 +148581,13 @@ break; } case 2: { - message.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32()); + message.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { if (!(message.ipAddresses && message.ipAddresses.length)) message.ipAddresses = []; - message.ipAddresses.push($root.google.cloud.sql.v1beta4.IpMapping.decode(reader, reader.uint32())); + message.ipAddresses.push($root.google.cloud.sql.v1beta4.IpMapping.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 4: { @@ -137800,7 +148623,7 @@ case 38: { if (!(message.dnsNames && message.dnsNames.length)) message.dnsNames = []; - message.dnsNames.push($root.google.cloud.sql.v1beta4.DnsNameMapping.decode(reader, reader.uint32())); + message.dnsNames.push($root.google.cloud.sql.v1beta4.DnsNameMapping.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 63: { @@ -137810,7 +148633,7 @@ case 64: { if (!(message.nodes && message.nodes.length)) message.nodes = []; - message.nodes.push($root.google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig.decode(reader, reader.uint32())); + message.nodes.push($root.google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 39: { @@ -137824,8 +148647,12 @@ message.mdxProtocolSupport.push(reader.int32()); break; } + case 40: { + message.connectionName = reader.string(); + break; + } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -137856,31 +148683,35 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ConnectSettings.verify = function verify(message) { + ConnectSettings.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.serverCaCert != null && message.hasOwnProperty("serverCaCert")) { - var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.serverCaCert); + if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) { + var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.serverCaCert, long + 1); if (error) return "serverCaCert." + error; } - if (message.ipAddresses != null && message.hasOwnProperty("ipAddresses")) { + if (message.ipAddresses != null && Object.hasOwnProperty.call(message, "ipAddresses")) { if (!Array.isArray(message.ipAddresses)) return "ipAddresses: array expected"; for (var i = 0; i < message.ipAddresses.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.IpMapping.verify(message.ipAddresses[i]); + var error = $root.google.cloud.sql.v1beta4.IpMapping.verify(message.ipAddresses[i], long + 1); if (error) return "ipAddresses." + error; } } - if (message.region != null && message.hasOwnProperty("region")) + if (message.region != null && Object.hasOwnProperty.call(message, "region")) if (!$util.isString(message.region)) return "region: string expected"; - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) switch (message.databaseVersion) { default: return "databaseVersion: enum value expected"; @@ -137927,6 +148758,8 @@ case 272: case 408: case 557: + case 684: + case 781: case 26: case 27: case 28: @@ -137935,9 +148768,12 @@ case 200: case 201: case 202: + case 549: + case 550: + case 551: break; } - if (message.backendType != null && message.hasOwnProperty("backendType")) + if (message.backendType != null && Object.hasOwnProperty.call(message, "backendType")) switch (message.backendType) { default: return "backendType: enum value expected"; @@ -137947,13 +148783,13 @@ case 3: break; } - if (message.pscEnabled != null && message.hasOwnProperty("pscEnabled")) + if (message.pscEnabled != null && Object.hasOwnProperty.call(message, "pscEnabled")) if (typeof message.pscEnabled !== "boolean") return "pscEnabled: boolean expected"; - if (message.dnsName != null && message.hasOwnProperty("dnsName")) + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) if (!$util.isString(message.dnsName)) return "dnsName: string expected"; - if (message.serverCaMode != null && message.hasOwnProperty("serverCaMode")) + if (message.serverCaMode != null && Object.hasOwnProperty.call(message, "serverCaMode")) switch (message.serverCaMode) { default: return "serverCaMode: enum value expected"; @@ -137963,37 +148799,37 @@ case 3: break; } - if (message.customSubjectAlternativeNames != null && message.hasOwnProperty("customSubjectAlternativeNames")) { + if (message.customSubjectAlternativeNames != null && Object.hasOwnProperty.call(message, "customSubjectAlternativeNames")) { if (!Array.isArray(message.customSubjectAlternativeNames)) return "customSubjectAlternativeNames: array expected"; for (var i = 0; i < message.customSubjectAlternativeNames.length; ++i) if (!$util.isString(message.customSubjectAlternativeNames[i])) return "customSubjectAlternativeNames: string[] expected"; } - if (message.dnsNames != null && message.hasOwnProperty("dnsNames")) { + if (message.dnsNames != null && Object.hasOwnProperty.call(message, "dnsNames")) { if (!Array.isArray(message.dnsNames)) return "dnsNames: array expected"; for (var i = 0; i < message.dnsNames.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.DnsNameMapping.verify(message.dnsNames[i]); + var error = $root.google.cloud.sql.v1beta4.DnsNameMapping.verify(message.dnsNames[i], long + 1); if (error) return "dnsNames." + error; } } - if (message.nodeCount != null && message.hasOwnProperty("nodeCount")) { + if (message.nodeCount != null && Object.hasOwnProperty.call(message, "nodeCount")) { properties._nodeCount = 1; if (!$util.isInteger(message.nodeCount)) return "nodeCount: integer expected"; } - if (message.nodes != null && message.hasOwnProperty("nodes")) { + if (message.nodes != null && Object.hasOwnProperty.call(message, "nodes")) { if (!Array.isArray(message.nodes)) return "nodes: array expected"; for (var i = 0; i < message.nodes.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig.verify(message.nodes[i]); + var error = $root.google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig.verify(message.nodes[i], long + 1); if (error) return "nodes." + error; } } - if (message.mdxProtocolSupport != null && message.hasOwnProperty("mdxProtocolSupport")) { + if (message.mdxProtocolSupport != null && Object.hasOwnProperty.call(message, "mdxProtocolSupport")) { if (!Array.isArray(message.mdxProtocolSupport)) return "mdxProtocolSupport: array expected"; for (var i = 0; i < message.mdxProtocolSupport.length; ++i) @@ -138005,6 +148841,9 @@ break; } } + if (message.connectionName != null && Object.hasOwnProperty.call(message, "connectionName")) + if (!$util.isString(message.connectionName)) + return "connectionName: string expected"; return null; }; @@ -138016,25 +148855,31 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ConnectSettings} ConnectSettings */ - ConnectSettings.fromObject = function fromObject(object) { + ConnectSettings.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ConnectSettings) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ConnectSettings: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ConnectSettings(); if (object.kind != null) message.kind = String(object.kind); if (object.serverCaCert != null) { - if (typeof object.serverCaCert !== "object") + if (!$util.isObject(object.serverCaCert)) throw TypeError(".google.cloud.sql.v1beta4.ConnectSettings.serverCaCert: object expected"); - message.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.serverCaCert); + message.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.serverCaCert, long + 1); } if (object.ipAddresses) { if (!Array.isArray(object.ipAddresses)) throw TypeError(".google.cloud.sql.v1beta4.ConnectSettings.ipAddresses: array expected"); message.ipAddresses = []; for (var i = 0; i < object.ipAddresses.length; ++i) { - if (typeof object.ipAddresses[i] !== "object") + if (!$util.isObject(object.ipAddresses[i])) throw TypeError(".google.cloud.sql.v1beta4.ConnectSettings.ipAddresses: object expected"); - message.ipAddresses[i] = $root.google.cloud.sql.v1beta4.IpMapping.fromObject(object.ipAddresses[i]); + message.ipAddresses[i] = $root.google.cloud.sql.v1beta4.IpMapping.fromObject(object.ipAddresses[i], long + 1); } } if (object.region != null) @@ -138218,6 +149063,14 @@ case 557: message.databaseVersion = 557; break; + case "POSTGRES_19": + case 684: + message.databaseVersion = 684; + break; + case "POSTGRES_20": + case 781: + message.databaseVersion = 781; + break; case "SQLSERVER_2019_STANDARD": case 26: message.databaseVersion = 26; @@ -138250,6 +149103,18 @@ case 202: message.databaseVersion = 202; break; + case "SQLSERVER_2025_STANDARD": + case 549: + message.databaseVersion = 549; + break; + case "SQLSERVER_2025_ENTERPRISE": + case 550: + message.databaseVersion = 550; + break; + case "SQLSERVER_2025_EXPRESS": + case 551: + message.databaseVersion = 551; + break; } switch (object.backendType) { default: @@ -138315,9 +149180,9 @@ throw TypeError(".google.cloud.sql.v1beta4.ConnectSettings.dnsNames: array expected"); message.dnsNames = []; for (var i = 0; i < object.dnsNames.length; ++i) { - if (typeof object.dnsNames[i] !== "object") + if (!$util.isObject(object.dnsNames[i])) throw TypeError(".google.cloud.sql.v1beta4.ConnectSettings.dnsNames: object expected"); - message.dnsNames[i] = $root.google.cloud.sql.v1beta4.DnsNameMapping.fromObject(object.dnsNames[i]); + message.dnsNames[i] = $root.google.cloud.sql.v1beta4.DnsNameMapping.fromObject(object.dnsNames[i], long + 1); } } if (object.nodeCount != null) @@ -138327,9 +149192,9 @@ throw TypeError(".google.cloud.sql.v1beta4.ConnectSettings.nodes: array expected"); message.nodes = []; for (var i = 0; i < object.nodes.length; ++i) { - if (typeof object.nodes[i] !== "object") + if (!$util.isObject(object.nodes[i])) throw TypeError(".google.cloud.sql.v1beta4.ConnectSettings.nodes: object expected"); - message.nodes[i] = $root.google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig.fromObject(object.nodes[i]); + message.nodes[i] = $root.google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig.fromObject(object.nodes[i], long + 1); } } if (object.mdxProtocolSupport) { @@ -138353,6 +149218,8 @@ break; } } + if (object.connectionName != null) + message.connectionName = String(object.connectionName); return message; }; @@ -138365,9 +149232,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ConnectSettings.toObject = function toObject(message, options) { + ConnectSettings.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.ipAddresses = []; @@ -138385,27 +149256,28 @@ object.pscEnabled = false; object.dnsName = ""; object.serverCaMode = options.enums === String ? "CA_MODE_UNSPECIFIED" : 0; + object.connectionName = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.serverCaCert != null && message.hasOwnProperty("serverCaCert")) - object.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.serverCaCert, options); + if (message.serverCaCert != null && Object.hasOwnProperty.call(message, "serverCaCert")) + object.serverCaCert = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.serverCaCert, options, q + 1); if (message.ipAddresses && message.ipAddresses.length) { object.ipAddresses = []; for (var j = 0; j < message.ipAddresses.length; ++j) - object.ipAddresses[j] = $root.google.cloud.sql.v1beta4.IpMapping.toObject(message.ipAddresses[j], options); + object.ipAddresses[j] = $root.google.cloud.sql.v1beta4.IpMapping.toObject(message.ipAddresses[j], options, q + 1); } - if (message.region != null && message.hasOwnProperty("region")) + if (message.region != null && Object.hasOwnProperty.call(message, "region")) object.region = message.region; - if (message.databaseVersion != null && message.hasOwnProperty("databaseVersion")) + if (message.databaseVersion != null && Object.hasOwnProperty.call(message, "databaseVersion")) object.databaseVersion = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlDatabaseVersion[message.databaseVersion] === undefined ? message.databaseVersion : $root.google.cloud.sql.v1beta4.SqlDatabaseVersion[message.databaseVersion] : message.databaseVersion; - if (message.backendType != null && message.hasOwnProperty("backendType")) + if (message.backendType != null && Object.hasOwnProperty.call(message, "backendType")) object.backendType = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlBackendType[message.backendType] === undefined ? message.backendType : $root.google.cloud.sql.v1beta4.SqlBackendType[message.backendType] : message.backendType; - if (message.pscEnabled != null && message.hasOwnProperty("pscEnabled")) + if (message.pscEnabled != null && Object.hasOwnProperty.call(message, "pscEnabled")) object.pscEnabled = message.pscEnabled; - if (message.dnsName != null && message.hasOwnProperty("dnsName")) + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) object.dnsName = message.dnsName; - if (message.serverCaMode != null && message.hasOwnProperty("serverCaMode")) + if (message.serverCaMode != null && Object.hasOwnProperty.call(message, "serverCaMode")) object.serverCaMode = options.enums === String ? $root.google.cloud.sql.v1beta4.ConnectSettings.CaMode[message.serverCaMode] === undefined ? message.serverCaMode : $root.google.cloud.sql.v1beta4.ConnectSettings.CaMode[message.serverCaMode] : message.serverCaMode; if (message.customSubjectAlternativeNames && message.customSubjectAlternativeNames.length) { object.customSubjectAlternativeNames = []; @@ -138415,14 +149287,16 @@ if (message.dnsNames && message.dnsNames.length) { object.dnsNames = []; for (var j = 0; j < message.dnsNames.length; ++j) - object.dnsNames[j] = $root.google.cloud.sql.v1beta4.DnsNameMapping.toObject(message.dnsNames[j], options); + object.dnsNames[j] = $root.google.cloud.sql.v1beta4.DnsNameMapping.toObject(message.dnsNames[j], options, q + 1); } if (message.mdxProtocolSupport && message.mdxProtocolSupport.length) { object.mdxProtocolSupport = []; for (var j = 0; j < message.mdxProtocolSupport.length; ++j) object.mdxProtocolSupport[j] = options.enums === String ? $root.google.cloud.sql.v1beta4.ConnectSettings.MdxProtocolSupport[message.mdxProtocolSupport[j]] === undefined ? message.mdxProtocolSupport[j] : $root.google.cloud.sql.v1beta4.ConnectSettings.MdxProtocolSupport[message.mdxProtocolSupport[j]] : message.mdxProtocolSupport[j]; } - if (message.nodeCount != null && message.hasOwnProperty("nodeCount")) { + if (message.connectionName != null && Object.hasOwnProperty.call(message, "connectionName")) + object.connectionName = message.connectionName; + if (message.nodeCount != null && Object.hasOwnProperty.call(message, "nodeCount")) { object.nodeCount = message.nodeCount; if (options.oneofs) object._nodeCount = "nodeCount"; @@ -138430,7 +149304,7 @@ if (message.nodes && message.nodes.length) { object.nodes = []; for (var j = 0; j < message.nodes.length; ++j) - object.nodes[j] = $root.google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig.toObject(message.nodes[j], options); + object.nodes[j] = $root.google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig.toObject(message.nodes[j], options, q + 1); } return object; }; @@ -138504,7 +149378,7 @@ this.dnsNames = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -138576,19 +149450,23 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ConnectPoolNodeConfig.encode = function encode(message, writer) { + ConnectPoolNodeConfig.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.ipAddresses != null && message.ipAddresses.length) for (var i = 0; i < message.ipAddresses.length; ++i) - $root.google.cloud.sql.v1beta4.IpMapping.encode(message.ipAddresses[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.IpMapping.encode(message.ipAddresses[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.dnsName); if (message.dnsNames != null && message.dnsNames.length) for (var i = 0; i < message.dnsNames.length; ++i) - $root.google.cloud.sql.v1beta4.DnsNameMapping.encode(message.dnsNames[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.DnsNameMapping.encode(message.dnsNames[i], writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); return writer; }; @@ -138602,7 +149480,7 @@ * @returns {$protobuf.Writer} Writer */ ConnectPoolNodeConfig.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -138616,9 +149494,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ConnectPoolNodeConfig.decode = function decode(reader, length, error) { + ConnectPoolNodeConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -138632,7 +149514,7 @@ case 2: { if (!(message.ipAddresses && message.ipAddresses.length)) message.ipAddresses = []; - message.ipAddresses.push($root.google.cloud.sql.v1beta4.IpMapping.decode(reader, reader.uint32())); + message.ipAddresses.push($root.google.cloud.sql.v1beta4.IpMapping.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { @@ -138642,11 +149524,11 @@ case 4: { if (!(message.dnsNames && message.dnsNames.length)) message.dnsNames = []; - message.dnsNames.push($root.google.cloud.sql.v1beta4.DnsNameMapping.decode(reader, reader.uint32())); + message.dnsNames.push($root.google.cloud.sql.v1beta4.DnsNameMapping.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -138677,34 +149559,38 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ConnectPoolNodeConfig.verify = function verify(message) { + ConnectPoolNodeConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.name != null && message.hasOwnProperty("name")) { + if (message.name != null && Object.hasOwnProperty.call(message, "name")) { properties._name = 1; if (!$util.isString(message.name)) return "name: string expected"; } - if (message.ipAddresses != null && message.hasOwnProperty("ipAddresses")) { + if (message.ipAddresses != null && Object.hasOwnProperty.call(message, "ipAddresses")) { if (!Array.isArray(message.ipAddresses)) return "ipAddresses: array expected"; for (var i = 0; i < message.ipAddresses.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.IpMapping.verify(message.ipAddresses[i]); + var error = $root.google.cloud.sql.v1beta4.IpMapping.verify(message.ipAddresses[i], long + 1); if (error) return "ipAddresses." + error; } } - if (message.dnsName != null && message.hasOwnProperty("dnsName")) { + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) { properties._dnsName = 1; if (!$util.isString(message.dnsName)) return "dnsName: string expected"; } - if (message.dnsNames != null && message.hasOwnProperty("dnsNames")) { + if (message.dnsNames != null && Object.hasOwnProperty.call(message, "dnsNames")) { if (!Array.isArray(message.dnsNames)) return "dnsNames: array expected"; for (var i = 0; i < message.dnsNames.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.DnsNameMapping.verify(message.dnsNames[i]); + var error = $root.google.cloud.sql.v1beta4.DnsNameMapping.verify(message.dnsNames[i], long + 1); if (error) return "dnsNames." + error; } @@ -138720,9 +149606,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig} ConnectPoolNodeConfig */ - ConnectPoolNodeConfig.fromObject = function fromObject(object) { + ConnectPoolNodeConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig(); if (object.name != null) message.name = String(object.name); @@ -138731,9 +149623,9 @@ throw TypeError(".google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig.ipAddresses: array expected"); message.ipAddresses = []; for (var i = 0; i < object.ipAddresses.length; ++i) { - if (typeof object.ipAddresses[i] !== "object") + if (!$util.isObject(object.ipAddresses[i])) throw TypeError(".google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig.ipAddresses: object expected"); - message.ipAddresses[i] = $root.google.cloud.sql.v1beta4.IpMapping.fromObject(object.ipAddresses[i]); + message.ipAddresses[i] = $root.google.cloud.sql.v1beta4.IpMapping.fromObject(object.ipAddresses[i], long + 1); } } if (object.dnsName != null) @@ -138743,9 +149635,9 @@ throw TypeError(".google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig.dnsNames: array expected"); message.dnsNames = []; for (var i = 0; i < object.dnsNames.length; ++i) { - if (typeof object.dnsNames[i] !== "object") + if (!$util.isObject(object.dnsNames[i])) throw TypeError(".google.cloud.sql.v1beta4.ConnectSettings.ConnectPoolNodeConfig.dnsNames: object expected"); - message.dnsNames[i] = $root.google.cloud.sql.v1beta4.DnsNameMapping.fromObject(object.dnsNames[i]); + message.dnsNames[i] = $root.google.cloud.sql.v1beta4.DnsNameMapping.fromObject(object.dnsNames[i], long + 1); } } return message; @@ -138760,15 +149652,19 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ConnectPoolNodeConfig.toObject = function toObject(message, options) { + ConnectPoolNodeConfig.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.ipAddresses = []; object.dnsNames = []; } - if (message.name != null && message.hasOwnProperty("name")) { + if (message.name != null && Object.hasOwnProperty.call(message, "name")) { object.name = message.name; if (options.oneofs) object._name = "name"; @@ -138776,9 +149672,9 @@ if (message.ipAddresses && message.ipAddresses.length) { object.ipAddresses = []; for (var j = 0; j < message.ipAddresses.length; ++j) - object.ipAddresses[j] = $root.google.cloud.sql.v1beta4.IpMapping.toObject(message.ipAddresses[j], options); + object.ipAddresses[j] = $root.google.cloud.sql.v1beta4.IpMapping.toObject(message.ipAddresses[j], options, q + 1); } - if (message.dnsName != null && message.hasOwnProperty("dnsName")) { + if (message.dnsName != null && Object.hasOwnProperty.call(message, "dnsName")) { object.dnsName = message.dnsName; if (options.oneofs) object._dnsName = "dnsName"; @@ -138786,7 +149682,7 @@ if (message.dnsNames && message.dnsNames.length) { object.dnsNames = []; for (var j = 0; j < message.dnsNames.length; ++j) - object.dnsNames[j] = $root.google.cloud.sql.v1beta4.DnsNameMapping.toObject(message.dnsNames[j], options); + object.dnsNames[j] = $root.google.cloud.sql.v1beta4.DnsNameMapping.toObject(message.dnsNames[j], options, q + 1); } return object; }; @@ -138862,7 +149758,7 @@ function GenerateEphemeralCertRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -138935,9 +149831,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GenerateEphemeralCertRequest.encode = function encode(message, writer) { + GenerateEphemeralCertRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -138947,9 +149847,9 @@ if (message.accessToken != null && Object.hasOwnProperty.call(message, "accessToken")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.accessToken); if (message.readTime != null && Object.hasOwnProperty.call(message, "readTime")) - $root.google.protobuf.Timestamp.encode(message.readTime, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.readTime, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.validDuration != null && Object.hasOwnProperty.call(message, "validDuration")) - $root.google.protobuf.Duration.encode(message.validDuration, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.validDuration, writer.uint32(/* id 12, wireType 2 =*/98).fork(), q + 1).ldelim(); return writer; }; @@ -138963,7 +149863,7 @@ * @returns {$protobuf.Writer} Writer */ GenerateEphemeralCertRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -138977,9 +149877,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GenerateEphemeralCertRequest.decode = function decode(reader, length, error) { + GenerateEphemeralCertRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -139003,15 +149907,15 @@ break; } case 7: { - message.readTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.readTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 12: { - message.validDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.validDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -139042,28 +149946,32 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GenerateEphemeralCertRequest.verify = function verify(message) { + GenerateEphemeralCertRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.publicKey != null && message.hasOwnProperty("publicKey")) + if (message.publicKey != null && Object.hasOwnProperty.call(message, "publicKey")) if (!$util.isString(message.publicKey)) return "publicKey: string expected"; - if (message.accessToken != null && message.hasOwnProperty("accessToken")) + if (message.accessToken != null && Object.hasOwnProperty.call(message, "accessToken")) if (!$util.isString(message.accessToken)) return "accessToken: string expected"; - if (message.readTime != null && message.hasOwnProperty("readTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.readTime); + if (message.readTime != null && Object.hasOwnProperty.call(message, "readTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.readTime, long + 1); if (error) return "readTime." + error; } - if (message.validDuration != null && message.hasOwnProperty("validDuration")) { - var error = $root.google.protobuf.Duration.verify(message.validDuration); + if (message.validDuration != null && Object.hasOwnProperty.call(message, "validDuration")) { + var error = $root.google.protobuf.Duration.verify(message.validDuration, long + 1); if (error) return "validDuration." + error; } @@ -139078,9 +149986,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.GenerateEphemeralCertRequest} GenerateEphemeralCertRequest */ - GenerateEphemeralCertRequest.fromObject = function fromObject(object) { + GenerateEphemeralCertRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.GenerateEphemeralCertRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -139091,14 +150005,14 @@ if (object.accessToken != null) message.accessToken = String(object.accessToken); if (object.readTime != null) { - if (typeof object.readTime !== "object") + if (!$util.isObject(object.readTime)) throw TypeError(".google.cloud.sql.v1beta4.GenerateEphemeralCertRequest.readTime: object expected"); - message.readTime = $root.google.protobuf.Timestamp.fromObject(object.readTime); + message.readTime = $root.google.protobuf.Timestamp.fromObject(object.readTime, long + 1); } if (object.validDuration != null) { - if (typeof object.validDuration !== "object") + if (!$util.isObject(object.validDuration)) throw TypeError(".google.cloud.sql.v1beta4.GenerateEphemeralCertRequest.validDuration: object expected"); - message.validDuration = $root.google.protobuf.Duration.fromObject(object.validDuration); + message.validDuration = $root.google.protobuf.Duration.fromObject(object.validDuration, long + 1); } return message; }; @@ -139112,9 +150026,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GenerateEphemeralCertRequest.toObject = function toObject(message, options) { + GenerateEphemeralCertRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; @@ -139124,18 +150042,18 @@ object.readTime = null; object.validDuration = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.publicKey != null && message.hasOwnProperty("publicKey")) + if (message.publicKey != null && Object.hasOwnProperty.call(message, "publicKey")) object.publicKey = message.publicKey; - if (message.accessToken != null && message.hasOwnProperty("accessToken")) + if (message.accessToken != null && Object.hasOwnProperty.call(message, "accessToken")) object.accessToken = message.accessToken; - if (message.readTime != null && message.hasOwnProperty("readTime")) - object.readTime = $root.google.protobuf.Timestamp.toObject(message.readTime, options); - if (message.validDuration != null && message.hasOwnProperty("validDuration")) - object.validDuration = $root.google.protobuf.Duration.toObject(message.validDuration, options); + if (message.readTime != null && Object.hasOwnProperty.call(message, "readTime")) + object.readTime = $root.google.protobuf.Timestamp.toObject(message.readTime, options, q + 1); + if (message.validDuration != null && Object.hasOwnProperty.call(message, "validDuration")) + object.validDuration = $root.google.protobuf.Duration.toObject(message.validDuration, options, q + 1); return object; }; @@ -139188,7 +150106,7 @@ function GenerateEphemeralCertResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -139221,11 +150139,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GenerateEphemeralCertResponse.encode = function encode(message, writer) { + GenerateEphemeralCertResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.ephemeralCert != null && Object.hasOwnProperty.call(message, "ephemeralCert")) - $root.google.cloud.sql.v1beta4.SslCert.encode(message.ephemeralCert, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SslCert.encode(message.ephemeralCert, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -139239,7 +150161,7 @@ * @returns {$protobuf.Writer} Writer */ GenerateEphemeralCertResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -139253,9 +150175,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GenerateEphemeralCertResponse.decode = function decode(reader, length, error) { + GenerateEphemeralCertResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.GenerateEphemeralCertResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -139263,11 +150189,11 @@ break; switch (tag >>> 3) { case 1: { - message.ephemeralCert = $root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32()); + message.ephemeralCert = $root.google.cloud.sql.v1beta4.SslCert.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -139298,11 +150224,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GenerateEphemeralCertResponse.verify = function verify(message) { + GenerateEphemeralCertResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.ephemeralCert != null && message.hasOwnProperty("ephemeralCert")) { - var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.ephemeralCert); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.ephemeralCert != null && Object.hasOwnProperty.call(message, "ephemeralCert")) { + var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.ephemeralCert, long + 1); if (error) return "ephemeralCert." + error; } @@ -139317,14 +150247,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.GenerateEphemeralCertResponse} GenerateEphemeralCertResponse */ - GenerateEphemeralCertResponse.fromObject = function fromObject(object) { + GenerateEphemeralCertResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.GenerateEphemeralCertResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.GenerateEphemeralCertResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.GenerateEphemeralCertResponse(); if (object.ephemeralCert != null) { - if (typeof object.ephemeralCert !== "object") + if (!$util.isObject(object.ephemeralCert)) throw TypeError(".google.cloud.sql.v1beta4.GenerateEphemeralCertResponse.ephemeralCert: object expected"); - message.ephemeralCert = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.ephemeralCert); + message.ephemeralCert = $root.google.cloud.sql.v1beta4.SslCert.fromObject(object.ephemeralCert, long + 1); } return message; }; @@ -139338,14 +150274,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GenerateEphemeralCertResponse.toObject = function toObject(message, options) { + GenerateEphemeralCertResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.ephemeralCert = null; - if (message.ephemeralCert != null && message.hasOwnProperty("ephemeralCert")) - object.ephemeralCert = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.ephemeralCert, options); + if (message.ephemeralCert != null && Object.hasOwnProperty.call(message, "ephemeralCert")) + object.ephemeralCert = $root.google.cloud.sql.v1beta4.SslCert.toObject(message.ephemeralCert, options, q + 1); return object; }; @@ -139378,6 +150318,2416 @@ return GenerateEphemeralCertResponse; })(); + v1beta4.SqlDataService = (function() { + + /** + * Constructs a new SqlDataService service. + * @memberof google.cloud.sql.v1beta4 + * @classdesc Represents a SqlDataService + * @extends $protobuf.rpc.Service + * @constructor + * @param {$protobuf.RPCImpl} rpcImpl RPC implementation + * @param {boolean} [requestDelimited=false] Whether requests are length-delimited + * @param {boolean} [responseDelimited=false] Whether responses are length-delimited + */ + function SqlDataService(rpcImpl, requestDelimited, responseDelimited) { + $protobuf.rpc.Service.call(this, rpcImpl, requestDelimited, responseDelimited); + } + + (SqlDataService.prototype = Object.create($protobuf.rpc.Service.prototype)).constructor = SqlDataService; + + /** + * Creates new SqlDataService service using the specified rpc implementation. + * @function create + * @memberof google.cloud.sql.v1beta4.SqlDataService + * @static + * @param {$protobuf.RPCImpl} rpcImpl RPC implementation + * @param {boolean} [requestDelimited=false] Whether requests are length-delimited + * @param {boolean} [responseDelimited=false] Whether responses are length-delimited + * @returns {SqlDataService} RPC service. Useful where requests and/or responses are streamed. + */ + SqlDataService.create = function create(rpcImpl, requestDelimited, responseDelimited) { + return new this(rpcImpl, requestDelimited, responseDelimited); + }; + + /** + * Callback as used by {@link google.cloud.sql.v1beta4.SqlDataService|streamSqlData}. + * @memberof google.cloud.sql.v1beta4.SqlDataService + * @typedef StreamSqlDataCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.sql.v1beta4.StreamSqlDataResponse} [response] StreamSqlDataResponse + */ + + /** + * Calls StreamSqlData. + * @function streamSqlData + * @memberof google.cloud.sql.v1beta4.SqlDataService + * @instance + * @param {google.cloud.sql.v1beta4.IStreamSqlDataRequest} request StreamSqlDataRequest message or plain object + * @param {google.cloud.sql.v1beta4.SqlDataService.StreamSqlDataCallback} callback Node-style callback called with the error, if any, and StreamSqlDataResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(SqlDataService.prototype.streamSqlData = function streamSqlData(request, callback) { + return $protobuf.rpc.Service.prototype.rpcCall.call(this, streamSqlData, $root.google.cloud.sql.v1beta4.StreamSqlDataRequest, $root.google.cloud.sql.v1beta4.StreamSqlDataResponse, request, callback); + }, "name", { value: "StreamSqlData" }); + + /** + * Calls StreamSqlData. + * @function streamSqlData + * @memberof google.cloud.sql.v1beta4.SqlDataService + * @instance + * @param {google.cloud.sql.v1beta4.IStreamSqlDataRequest} request StreamSqlDataRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + return SqlDataService; + })(); + + v1beta4.StreamSqlDataRequest = (function() { + + /** + * Properties of a StreamSqlDataRequest. + * @memberof google.cloud.sql.v1beta4 + * @interface IStreamSqlDataRequest + * @property {google.cloud.sql.v1beta4.IAck|null} [ack] StreamSqlDataRequest ack + * @property {google.cloud.sql.v1beta4.IStartSession|null} [startSession] StreamSqlDataRequest startSession + * @property {google.cloud.sql.v1beta4.IContinueSession|null} [continueSession] StreamSqlDataRequest continueSession + * @property {google.cloud.sql.v1beta4.IDataPacket|null} [data] StreamSqlDataRequest data + * @property {google.cloud.sql.v1beta4.ITerminateSession|null} [terminateSession] StreamSqlDataRequest terminateSession + * @property {string|null} [instanceId] StreamSqlDataRequest instanceId + */ + + /** + * Constructs a new StreamSqlDataRequest. + * @memberof google.cloud.sql.v1beta4 + * @classdesc Represents a StreamSqlDataRequest. + * @implements IStreamSqlDataRequest + * @constructor + * @param {google.cloud.sql.v1beta4.IStreamSqlDataRequest=} [properties] Properties to set + */ + function StreamSqlDataRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null && keys[i] !== "__proto__") + this[keys[i]] = properties[keys[i]]; + } + + /** + * StreamSqlDataRequest ack. + * @member {google.cloud.sql.v1beta4.IAck|null|undefined} ack + * @memberof google.cloud.sql.v1beta4.StreamSqlDataRequest + * @instance + */ + StreamSqlDataRequest.prototype.ack = null; + + /** + * StreamSqlDataRequest startSession. + * @member {google.cloud.sql.v1beta4.IStartSession|null|undefined} startSession + * @memberof google.cloud.sql.v1beta4.StreamSqlDataRequest + * @instance + */ + StreamSqlDataRequest.prototype.startSession = null; + + /** + * StreamSqlDataRequest continueSession. + * @member {google.cloud.sql.v1beta4.IContinueSession|null|undefined} continueSession + * @memberof google.cloud.sql.v1beta4.StreamSqlDataRequest + * @instance + */ + StreamSqlDataRequest.prototype.continueSession = null; + + /** + * StreamSqlDataRequest data. + * @member {google.cloud.sql.v1beta4.IDataPacket|null|undefined} data + * @memberof google.cloud.sql.v1beta4.StreamSqlDataRequest + * @instance + */ + StreamSqlDataRequest.prototype.data = null; + + /** + * StreamSqlDataRequest terminateSession. + * @member {google.cloud.sql.v1beta4.ITerminateSession|null|undefined} terminateSession + * @memberof google.cloud.sql.v1beta4.StreamSqlDataRequest + * @instance + */ + StreamSqlDataRequest.prototype.terminateSession = null; + + /** + * StreamSqlDataRequest instanceId. + * @member {string} instanceId + * @memberof google.cloud.sql.v1beta4.StreamSqlDataRequest + * @instance + */ + StreamSqlDataRequest.prototype.instanceId = ""; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * StreamSqlDataRequest message. + * @member {"startSession"|"continueSession"|"data"|"terminateSession"|undefined} message + * @memberof google.cloud.sql.v1beta4.StreamSqlDataRequest + * @instance + */ + Object.defineProperty(StreamSqlDataRequest.prototype, "message", { + get: $util.oneOfGetter($oneOfFields = ["startSession", "continueSession", "data", "terminateSession"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new StreamSqlDataRequest instance using the specified properties. + * @function create + * @memberof google.cloud.sql.v1beta4.StreamSqlDataRequest + * @static + * @param {google.cloud.sql.v1beta4.IStreamSqlDataRequest=} [properties] Properties to set + * @returns {google.cloud.sql.v1beta4.StreamSqlDataRequest} StreamSqlDataRequest instance + */ + StreamSqlDataRequest.create = function create(properties) { + return new StreamSqlDataRequest(properties); + }; + + /** + * Encodes the specified StreamSqlDataRequest message. Does not implicitly {@link google.cloud.sql.v1beta4.StreamSqlDataRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.sql.v1beta4.StreamSqlDataRequest + * @static + * @param {google.cloud.sql.v1beta4.IStreamSqlDataRequest} message StreamSqlDataRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StreamSqlDataRequest.encode = function encode(message, writer, q) { + if (!writer) + writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + if (message.ack != null && Object.hasOwnProperty.call(message, "ack")) + $root.google.cloud.sql.v1beta4.Ack.encode(message.ack, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); + if (message.startSession != null && Object.hasOwnProperty.call(message, "startSession")) + $root.google.cloud.sql.v1beta4.StartSession.encode(message.startSession, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); + if (message.continueSession != null && Object.hasOwnProperty.call(message, "continueSession")) + $root.google.cloud.sql.v1beta4.ContinueSession.encode(message.continueSession, writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); + if (message.data != null && Object.hasOwnProperty.call(message, "data")) + $root.google.cloud.sql.v1beta4.DataPacket.encode(message.data, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); + if (message.terminateSession != null && Object.hasOwnProperty.call(message, "terminateSession")) + $root.google.cloud.sql.v1beta4.TerminateSession.encode(message.terminateSession, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); + if (message.instanceId != null && Object.hasOwnProperty.call(message, "instanceId")) + writer.uint32(/* id 9, wireType 2 =*/74).string(message.instanceId); + return writer; + }; + + /** + * Encodes the specified StreamSqlDataRequest message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.StreamSqlDataRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.sql.v1beta4.StreamSqlDataRequest + * @static + * @param {google.cloud.sql.v1beta4.IStreamSqlDataRequest} message StreamSqlDataRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StreamSqlDataRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); + }; + + /** + * Decodes a StreamSqlDataRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.sql.v1beta4.StreamSqlDataRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.sql.v1beta4.StreamSqlDataRequest} StreamSqlDataRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StreamSqlDataRequest.decode = function decode(reader, length, error, long) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.StreamSqlDataRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 4: { + message.ack = $root.google.cloud.sql.v1beta4.Ack.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + case 5: { + message.startSession = $root.google.cloud.sql.v1beta4.StartSession.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + case 6: { + message.continueSession = $root.google.cloud.sql.v1beta4.ContinueSession.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + case 7: { + message.data = $root.google.cloud.sql.v1beta4.DataPacket.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + case 8: { + message.terminateSession = $root.google.cloud.sql.v1beta4.TerminateSession.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + case 9: { + message.instanceId = reader.string(); + break; + } + default: + reader.skipType(tag & 7, long); + break; + } + } + return message; + }; + + /** + * Decodes a StreamSqlDataRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.sql.v1beta4.StreamSqlDataRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.sql.v1beta4.StreamSqlDataRequest} StreamSqlDataRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StreamSqlDataRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a StreamSqlDataRequest message. + * @function verify + * @memberof google.cloud.sql.v1beta4.StreamSqlDataRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StreamSqlDataRequest.verify = function verify(message, long) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + var properties = {}; + if (message.ack != null && Object.hasOwnProperty.call(message, "ack")) { + var error = $root.google.cloud.sql.v1beta4.Ack.verify(message.ack, long + 1); + if (error) + return "ack." + error; + } + if (message.startSession != null && Object.hasOwnProperty.call(message, "startSession")) { + properties.message = 1; + { + var error = $root.google.cloud.sql.v1beta4.StartSession.verify(message.startSession, long + 1); + if (error) + return "startSession." + error; + } + } + if (message.continueSession != null && Object.hasOwnProperty.call(message, "continueSession")) { + if (properties.message === 1) + return "message: multiple values"; + properties.message = 1; + { + var error = $root.google.cloud.sql.v1beta4.ContinueSession.verify(message.continueSession, long + 1); + if (error) + return "continueSession." + error; + } + } + if (message.data != null && Object.hasOwnProperty.call(message, "data")) { + if (properties.message === 1) + return "message: multiple values"; + properties.message = 1; + { + var error = $root.google.cloud.sql.v1beta4.DataPacket.verify(message.data, long + 1); + if (error) + return "data." + error; + } + } + if (message.terminateSession != null && Object.hasOwnProperty.call(message, "terminateSession")) { + if (properties.message === 1) + return "message: multiple values"; + properties.message = 1; + { + var error = $root.google.cloud.sql.v1beta4.TerminateSession.verify(message.terminateSession, long + 1); + if (error) + return "terminateSession." + error; + } + } + if (message.instanceId != null && Object.hasOwnProperty.call(message, "instanceId")) + if (!$util.isString(message.instanceId)) + return "instanceId: string expected"; + return null; + }; + + /** + * Creates a StreamSqlDataRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.sql.v1beta4.StreamSqlDataRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.sql.v1beta4.StreamSqlDataRequest} StreamSqlDataRequest + */ + StreamSqlDataRequest.fromObject = function fromObject(object, long) { + if (object instanceof $root.google.cloud.sql.v1beta4.StreamSqlDataRequest) + return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.StreamSqlDataRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var message = new $root.google.cloud.sql.v1beta4.StreamSqlDataRequest(); + if (object.ack != null) { + if (!$util.isObject(object.ack)) + throw TypeError(".google.cloud.sql.v1beta4.StreamSqlDataRequest.ack: object expected"); + message.ack = $root.google.cloud.sql.v1beta4.Ack.fromObject(object.ack, long + 1); + } + if (object.startSession != null) { + if (!$util.isObject(object.startSession)) + throw TypeError(".google.cloud.sql.v1beta4.StreamSqlDataRequest.startSession: object expected"); + message.startSession = $root.google.cloud.sql.v1beta4.StartSession.fromObject(object.startSession, long + 1); + } + if (object.continueSession != null) { + if (!$util.isObject(object.continueSession)) + throw TypeError(".google.cloud.sql.v1beta4.StreamSqlDataRequest.continueSession: object expected"); + message.continueSession = $root.google.cloud.sql.v1beta4.ContinueSession.fromObject(object.continueSession, long + 1); + } + if (object.data != null) { + if (!$util.isObject(object.data)) + throw TypeError(".google.cloud.sql.v1beta4.StreamSqlDataRequest.data: object expected"); + message.data = $root.google.cloud.sql.v1beta4.DataPacket.fromObject(object.data, long + 1); + } + if (object.terminateSession != null) { + if (!$util.isObject(object.terminateSession)) + throw TypeError(".google.cloud.sql.v1beta4.StreamSqlDataRequest.terminateSession: object expected"); + message.terminateSession = $root.google.cloud.sql.v1beta4.TerminateSession.fromObject(object.terminateSession, long + 1); + } + if (object.instanceId != null) + message.instanceId = String(object.instanceId); + return message; + }; + + /** + * Creates a plain object from a StreamSqlDataRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.sql.v1beta4.StreamSqlDataRequest + * @static + * @param {google.cloud.sql.v1beta4.StreamSqlDataRequest} message StreamSqlDataRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StreamSqlDataRequest.toObject = function toObject(message, options, q) { + if (!options) + options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + var object = {}; + if (options.defaults) { + object.ack = null; + object.instanceId = ""; + } + if (message.ack != null && Object.hasOwnProperty.call(message, "ack")) + object.ack = $root.google.cloud.sql.v1beta4.Ack.toObject(message.ack, options, q + 1); + if (message.startSession != null && Object.hasOwnProperty.call(message, "startSession")) { + object.startSession = $root.google.cloud.sql.v1beta4.StartSession.toObject(message.startSession, options, q + 1); + if (options.oneofs) + object.message = "startSession"; + } + if (message.continueSession != null && Object.hasOwnProperty.call(message, "continueSession")) { + object.continueSession = $root.google.cloud.sql.v1beta4.ContinueSession.toObject(message.continueSession, options, q + 1); + if (options.oneofs) + object.message = "continueSession"; + } + if (message.data != null && Object.hasOwnProperty.call(message, "data")) { + object.data = $root.google.cloud.sql.v1beta4.DataPacket.toObject(message.data, options, q + 1); + if (options.oneofs) + object.message = "data"; + } + if (message.terminateSession != null && Object.hasOwnProperty.call(message, "terminateSession")) { + object.terminateSession = $root.google.cloud.sql.v1beta4.TerminateSession.toObject(message.terminateSession, options, q + 1); + if (options.oneofs) + object.message = "terminateSession"; + } + if (message.instanceId != null && Object.hasOwnProperty.call(message, "instanceId")) + object.instanceId = message.instanceId; + return object; + }; + + /** + * Converts this StreamSqlDataRequest to JSON. + * @function toJSON + * @memberof google.cloud.sql.v1beta4.StreamSqlDataRequest + * @instance + * @returns {Object.} JSON object + */ + StreamSqlDataRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for StreamSqlDataRequest + * @function getTypeUrl + * @memberof google.cloud.sql.v1beta4.StreamSqlDataRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + StreamSqlDataRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.sql.v1beta4.StreamSqlDataRequest"; + }; + + return StreamSqlDataRequest; + })(); + + v1beta4.StartSession = (function() { + + /** + * Properties of a StartSession. + * @memberof google.cloud.sql.v1beta4 + * @interface IStartSession + * @property {string|null} [locationId] StartSession locationId + * @property {string|null} [instanceId] StartSession instanceId + * @property {string|null} [sessionId] StartSession sessionId + */ + + /** + * Constructs a new StartSession. + * @memberof google.cloud.sql.v1beta4 + * @classdesc Represents a StartSession. + * @implements IStartSession + * @constructor + * @param {google.cloud.sql.v1beta4.IStartSession=} [properties] Properties to set + */ + function StartSession(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null && keys[i] !== "__proto__") + this[keys[i]] = properties[keys[i]]; + } + + /** + * StartSession locationId. + * @member {string} locationId + * @memberof google.cloud.sql.v1beta4.StartSession + * @instance + */ + StartSession.prototype.locationId = ""; + + /** + * StartSession instanceId. + * @member {string} instanceId + * @memberof google.cloud.sql.v1beta4.StartSession + * @instance + */ + StartSession.prototype.instanceId = ""; + + /** + * StartSession sessionId. + * @member {string} sessionId + * @memberof google.cloud.sql.v1beta4.StartSession + * @instance + */ + StartSession.prototype.sessionId = ""; + + /** + * Creates a new StartSession instance using the specified properties. + * @function create + * @memberof google.cloud.sql.v1beta4.StartSession + * @static + * @param {google.cloud.sql.v1beta4.IStartSession=} [properties] Properties to set + * @returns {google.cloud.sql.v1beta4.StartSession} StartSession instance + */ + StartSession.create = function create(properties) { + return new StartSession(properties); + }; + + /** + * Encodes the specified StartSession message. Does not implicitly {@link google.cloud.sql.v1beta4.StartSession.verify|verify} messages. + * @function encode + * @memberof google.cloud.sql.v1beta4.StartSession + * @static + * @param {google.cloud.sql.v1beta4.IStartSession} message StartSession message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StartSession.encode = function encode(message, writer, q) { + if (!writer) + writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + if (message.locationId != null && Object.hasOwnProperty.call(message, "locationId")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.locationId); + if (message.instanceId != null && Object.hasOwnProperty.call(message, "instanceId")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.instanceId); + if (message.sessionId != null && Object.hasOwnProperty.call(message, "sessionId")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.sessionId); + return writer; + }; + + /** + * Encodes the specified StartSession message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.StartSession.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.sql.v1beta4.StartSession + * @static + * @param {google.cloud.sql.v1beta4.IStartSession} message StartSession message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StartSession.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); + }; + + /** + * Decodes a StartSession message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.sql.v1beta4.StartSession + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.sql.v1beta4.StartSession} StartSession + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StartSession.decode = function decode(reader, length, error, long) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.StartSession(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.locationId = reader.string(); + break; + } + case 2: { + message.instanceId = reader.string(); + break; + } + case 3: { + message.sessionId = reader.string(); + break; + } + default: + reader.skipType(tag & 7, long); + break; + } + } + return message; + }; + + /** + * Decodes a StartSession message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.sql.v1beta4.StartSession + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.sql.v1beta4.StartSession} StartSession + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StartSession.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a StartSession message. + * @function verify + * @memberof google.cloud.sql.v1beta4.StartSession + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StartSession.verify = function verify(message, long) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.locationId != null && Object.hasOwnProperty.call(message, "locationId")) + if (!$util.isString(message.locationId)) + return "locationId: string expected"; + if (message.instanceId != null && Object.hasOwnProperty.call(message, "instanceId")) + if (!$util.isString(message.instanceId)) + return "instanceId: string expected"; + if (message.sessionId != null && Object.hasOwnProperty.call(message, "sessionId")) + if (!$util.isString(message.sessionId)) + return "sessionId: string expected"; + return null; + }; + + /** + * Creates a StartSession message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.sql.v1beta4.StartSession + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.sql.v1beta4.StartSession} StartSession + */ + StartSession.fromObject = function fromObject(object, long) { + if (object instanceof $root.google.cloud.sql.v1beta4.StartSession) + return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.StartSession: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var message = new $root.google.cloud.sql.v1beta4.StartSession(); + if (object.locationId != null) + message.locationId = String(object.locationId); + if (object.instanceId != null) + message.instanceId = String(object.instanceId); + if (object.sessionId != null) + message.sessionId = String(object.sessionId); + return message; + }; + + /** + * Creates a plain object from a StartSession message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.sql.v1beta4.StartSession + * @static + * @param {google.cloud.sql.v1beta4.StartSession} message StartSession + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StartSession.toObject = function toObject(message, options, q) { + if (!options) + options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + var object = {}; + if (options.defaults) { + object.locationId = ""; + object.instanceId = ""; + object.sessionId = ""; + } + if (message.locationId != null && Object.hasOwnProperty.call(message, "locationId")) + object.locationId = message.locationId; + if (message.instanceId != null && Object.hasOwnProperty.call(message, "instanceId")) + object.instanceId = message.instanceId; + if (message.sessionId != null && Object.hasOwnProperty.call(message, "sessionId")) + object.sessionId = message.sessionId; + return object; + }; + + /** + * Converts this StartSession to JSON. + * @function toJSON + * @memberof google.cloud.sql.v1beta4.StartSession + * @instance + * @returns {Object.} JSON object + */ + StartSession.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for StartSession + * @function getTypeUrl + * @memberof google.cloud.sql.v1beta4.StartSession + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + StartSession.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.sql.v1beta4.StartSession"; + }; + + return StartSession; + })(); + + v1beta4.ContinueSession = (function() { + + /** + * Properties of a ContinueSession. + * @memberof google.cloud.sql.v1beta4 + * @interface IContinueSession + * @property {string|null} [locationId] ContinueSession locationId + * @property {string|null} [instanceId] ContinueSession instanceId + * @property {string|null} [sessionId] ContinueSession sessionId + */ + + /** + * Constructs a new ContinueSession. + * @memberof google.cloud.sql.v1beta4 + * @classdesc Represents a ContinueSession. + * @implements IContinueSession + * @constructor + * @param {google.cloud.sql.v1beta4.IContinueSession=} [properties] Properties to set + */ + function ContinueSession(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null && keys[i] !== "__proto__") + this[keys[i]] = properties[keys[i]]; + } + + /** + * ContinueSession locationId. + * @member {string} locationId + * @memberof google.cloud.sql.v1beta4.ContinueSession + * @instance + */ + ContinueSession.prototype.locationId = ""; + + /** + * ContinueSession instanceId. + * @member {string} instanceId + * @memberof google.cloud.sql.v1beta4.ContinueSession + * @instance + */ + ContinueSession.prototype.instanceId = ""; + + /** + * ContinueSession sessionId. + * @member {string} sessionId + * @memberof google.cloud.sql.v1beta4.ContinueSession + * @instance + */ + ContinueSession.prototype.sessionId = ""; + + /** + * Creates a new ContinueSession instance using the specified properties. + * @function create + * @memberof google.cloud.sql.v1beta4.ContinueSession + * @static + * @param {google.cloud.sql.v1beta4.IContinueSession=} [properties] Properties to set + * @returns {google.cloud.sql.v1beta4.ContinueSession} ContinueSession instance + */ + ContinueSession.create = function create(properties) { + return new ContinueSession(properties); + }; + + /** + * Encodes the specified ContinueSession message. Does not implicitly {@link google.cloud.sql.v1beta4.ContinueSession.verify|verify} messages. + * @function encode + * @memberof google.cloud.sql.v1beta4.ContinueSession + * @static + * @param {google.cloud.sql.v1beta4.IContinueSession} message ContinueSession message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ContinueSession.encode = function encode(message, writer, q) { + if (!writer) + writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + if (message.locationId != null && Object.hasOwnProperty.call(message, "locationId")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.locationId); + if (message.instanceId != null && Object.hasOwnProperty.call(message, "instanceId")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.instanceId); + if (message.sessionId != null && Object.hasOwnProperty.call(message, "sessionId")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.sessionId); + return writer; + }; + + /** + * Encodes the specified ContinueSession message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.ContinueSession.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.sql.v1beta4.ContinueSession + * @static + * @param {google.cloud.sql.v1beta4.IContinueSession} message ContinueSession message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ContinueSession.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); + }; + + /** + * Decodes a ContinueSession message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.sql.v1beta4.ContinueSession + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.sql.v1beta4.ContinueSession} ContinueSession + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ContinueSession.decode = function decode(reader, length, error, long) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.ContinueSession(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.locationId = reader.string(); + break; + } + case 2: { + message.instanceId = reader.string(); + break; + } + case 3: { + message.sessionId = reader.string(); + break; + } + default: + reader.skipType(tag & 7, long); + break; + } + } + return message; + }; + + /** + * Decodes a ContinueSession message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.sql.v1beta4.ContinueSession + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.sql.v1beta4.ContinueSession} ContinueSession + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ContinueSession.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ContinueSession message. + * @function verify + * @memberof google.cloud.sql.v1beta4.ContinueSession + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ContinueSession.verify = function verify(message, long) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.locationId != null && Object.hasOwnProperty.call(message, "locationId")) + if (!$util.isString(message.locationId)) + return "locationId: string expected"; + if (message.instanceId != null && Object.hasOwnProperty.call(message, "instanceId")) + if (!$util.isString(message.instanceId)) + return "instanceId: string expected"; + if (message.sessionId != null && Object.hasOwnProperty.call(message, "sessionId")) + if (!$util.isString(message.sessionId)) + return "sessionId: string expected"; + return null; + }; + + /** + * Creates a ContinueSession message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.sql.v1beta4.ContinueSession + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.sql.v1beta4.ContinueSession} ContinueSession + */ + ContinueSession.fromObject = function fromObject(object, long) { + if (object instanceof $root.google.cloud.sql.v1beta4.ContinueSession) + return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.ContinueSession: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var message = new $root.google.cloud.sql.v1beta4.ContinueSession(); + if (object.locationId != null) + message.locationId = String(object.locationId); + if (object.instanceId != null) + message.instanceId = String(object.instanceId); + if (object.sessionId != null) + message.sessionId = String(object.sessionId); + return message; + }; + + /** + * Creates a plain object from a ContinueSession message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.sql.v1beta4.ContinueSession + * @static + * @param {google.cloud.sql.v1beta4.ContinueSession} message ContinueSession + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ContinueSession.toObject = function toObject(message, options, q) { + if (!options) + options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + var object = {}; + if (options.defaults) { + object.locationId = ""; + object.instanceId = ""; + object.sessionId = ""; + } + if (message.locationId != null && Object.hasOwnProperty.call(message, "locationId")) + object.locationId = message.locationId; + if (message.instanceId != null && Object.hasOwnProperty.call(message, "instanceId")) + object.instanceId = message.instanceId; + if (message.sessionId != null && Object.hasOwnProperty.call(message, "sessionId")) + object.sessionId = message.sessionId; + return object; + }; + + /** + * Converts this ContinueSession to JSON. + * @function toJSON + * @memberof google.cloud.sql.v1beta4.ContinueSession + * @instance + * @returns {Object.} JSON object + */ + ContinueSession.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ContinueSession + * @function getTypeUrl + * @memberof google.cloud.sql.v1beta4.ContinueSession + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ContinueSession.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.sql.v1beta4.ContinueSession"; + }; + + return ContinueSession; + })(); + + v1beta4.StreamSqlDataResponse = (function() { + + /** + * Properties of a StreamSqlDataResponse. + * @memberof google.cloud.sql.v1beta4 + * @interface IStreamSqlDataResponse + * @property {google.cloud.sql.v1beta4.IAck|null} [ack] StreamSqlDataResponse ack + * @property {google.cloud.sql.v1beta4.ISessionMetadata|null} [sessionMetadata] StreamSqlDataResponse sessionMetadata + * @property {google.cloud.sql.v1beta4.IDataPacket|null} [data] StreamSqlDataResponse data + * @property {google.cloud.sql.v1beta4.ITerminateSession|null} [terminateSession] StreamSqlDataResponse terminateSession + */ + + /** + * Constructs a new StreamSqlDataResponse. + * @memberof google.cloud.sql.v1beta4 + * @classdesc Represents a StreamSqlDataResponse. + * @implements IStreamSqlDataResponse + * @constructor + * @param {google.cloud.sql.v1beta4.IStreamSqlDataResponse=} [properties] Properties to set + */ + function StreamSqlDataResponse(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null && keys[i] !== "__proto__") + this[keys[i]] = properties[keys[i]]; + } + + /** + * StreamSqlDataResponse ack. + * @member {google.cloud.sql.v1beta4.IAck|null|undefined} ack + * @memberof google.cloud.sql.v1beta4.StreamSqlDataResponse + * @instance + */ + StreamSqlDataResponse.prototype.ack = null; + + /** + * StreamSqlDataResponse sessionMetadata. + * @member {google.cloud.sql.v1beta4.ISessionMetadata|null|undefined} sessionMetadata + * @memberof google.cloud.sql.v1beta4.StreamSqlDataResponse + * @instance + */ + StreamSqlDataResponse.prototype.sessionMetadata = null; + + /** + * StreamSqlDataResponse data. + * @member {google.cloud.sql.v1beta4.IDataPacket|null|undefined} data + * @memberof google.cloud.sql.v1beta4.StreamSqlDataResponse + * @instance + */ + StreamSqlDataResponse.prototype.data = null; + + /** + * StreamSqlDataResponse terminateSession. + * @member {google.cloud.sql.v1beta4.ITerminateSession|null|undefined} terminateSession + * @memberof google.cloud.sql.v1beta4.StreamSqlDataResponse + * @instance + */ + StreamSqlDataResponse.prototype.terminateSession = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * StreamSqlDataResponse message. + * @member {"sessionMetadata"|"data"|"terminateSession"|undefined} message + * @memberof google.cloud.sql.v1beta4.StreamSqlDataResponse + * @instance + */ + Object.defineProperty(StreamSqlDataResponse.prototype, "message", { + get: $util.oneOfGetter($oneOfFields = ["sessionMetadata", "data", "terminateSession"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new StreamSqlDataResponse instance using the specified properties. + * @function create + * @memberof google.cloud.sql.v1beta4.StreamSqlDataResponse + * @static + * @param {google.cloud.sql.v1beta4.IStreamSqlDataResponse=} [properties] Properties to set + * @returns {google.cloud.sql.v1beta4.StreamSqlDataResponse} StreamSqlDataResponse instance + */ + StreamSqlDataResponse.create = function create(properties) { + return new StreamSqlDataResponse(properties); + }; + + /** + * Encodes the specified StreamSqlDataResponse message. Does not implicitly {@link google.cloud.sql.v1beta4.StreamSqlDataResponse.verify|verify} messages. + * @function encode + * @memberof google.cloud.sql.v1beta4.StreamSqlDataResponse + * @static + * @param {google.cloud.sql.v1beta4.IStreamSqlDataResponse} message StreamSqlDataResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StreamSqlDataResponse.encode = function encode(message, writer, q) { + if (!writer) + writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + if (message.ack != null && Object.hasOwnProperty.call(message, "ack")) + $root.google.cloud.sql.v1beta4.Ack.encode(message.ack, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); + if (message.sessionMetadata != null && Object.hasOwnProperty.call(message, "sessionMetadata")) + $root.google.cloud.sql.v1beta4.SessionMetadata.encode(message.sessionMetadata, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); + if (message.data != null && Object.hasOwnProperty.call(message, "data")) + $root.google.cloud.sql.v1beta4.DataPacket.encode(message.data, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); + if (message.terminateSession != null && Object.hasOwnProperty.call(message, "terminateSession")) + $root.google.cloud.sql.v1beta4.TerminateSession.encode(message.terminateSession, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); + return writer; + }; + + /** + * Encodes the specified StreamSqlDataResponse message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.StreamSqlDataResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.sql.v1beta4.StreamSqlDataResponse + * @static + * @param {google.cloud.sql.v1beta4.IStreamSqlDataResponse} message StreamSqlDataResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StreamSqlDataResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); + }; + + /** + * Decodes a StreamSqlDataResponse message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.sql.v1beta4.StreamSqlDataResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.sql.v1beta4.StreamSqlDataResponse} StreamSqlDataResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StreamSqlDataResponse.decode = function decode(reader, length, error, long) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.StreamSqlDataResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 2: { + message.ack = $root.google.cloud.sql.v1beta4.Ack.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + case 3: { + message.sessionMetadata = $root.google.cloud.sql.v1beta4.SessionMetadata.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + case 4: { + message.data = $root.google.cloud.sql.v1beta4.DataPacket.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + case 5: { + message.terminateSession = $root.google.cloud.sql.v1beta4.TerminateSession.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + default: + reader.skipType(tag & 7, long); + break; + } + } + return message; + }; + + /** + * Decodes a StreamSqlDataResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.sql.v1beta4.StreamSqlDataResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.sql.v1beta4.StreamSqlDataResponse} StreamSqlDataResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StreamSqlDataResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a StreamSqlDataResponse message. + * @function verify + * @memberof google.cloud.sql.v1beta4.StreamSqlDataResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StreamSqlDataResponse.verify = function verify(message, long) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + var properties = {}; + if (message.ack != null && Object.hasOwnProperty.call(message, "ack")) { + var error = $root.google.cloud.sql.v1beta4.Ack.verify(message.ack, long + 1); + if (error) + return "ack." + error; + } + if (message.sessionMetadata != null && Object.hasOwnProperty.call(message, "sessionMetadata")) { + properties.message = 1; + { + var error = $root.google.cloud.sql.v1beta4.SessionMetadata.verify(message.sessionMetadata, long + 1); + if (error) + return "sessionMetadata." + error; + } + } + if (message.data != null && Object.hasOwnProperty.call(message, "data")) { + if (properties.message === 1) + return "message: multiple values"; + properties.message = 1; + { + var error = $root.google.cloud.sql.v1beta4.DataPacket.verify(message.data, long + 1); + if (error) + return "data." + error; + } + } + if (message.terminateSession != null && Object.hasOwnProperty.call(message, "terminateSession")) { + if (properties.message === 1) + return "message: multiple values"; + properties.message = 1; + { + var error = $root.google.cloud.sql.v1beta4.TerminateSession.verify(message.terminateSession, long + 1); + if (error) + return "terminateSession." + error; + } + } + return null; + }; + + /** + * Creates a StreamSqlDataResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.sql.v1beta4.StreamSqlDataResponse + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.sql.v1beta4.StreamSqlDataResponse} StreamSqlDataResponse + */ + StreamSqlDataResponse.fromObject = function fromObject(object, long) { + if (object instanceof $root.google.cloud.sql.v1beta4.StreamSqlDataResponse) + return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.StreamSqlDataResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var message = new $root.google.cloud.sql.v1beta4.StreamSqlDataResponse(); + if (object.ack != null) { + if (!$util.isObject(object.ack)) + throw TypeError(".google.cloud.sql.v1beta4.StreamSqlDataResponse.ack: object expected"); + message.ack = $root.google.cloud.sql.v1beta4.Ack.fromObject(object.ack, long + 1); + } + if (object.sessionMetadata != null) { + if (!$util.isObject(object.sessionMetadata)) + throw TypeError(".google.cloud.sql.v1beta4.StreamSqlDataResponse.sessionMetadata: object expected"); + message.sessionMetadata = $root.google.cloud.sql.v1beta4.SessionMetadata.fromObject(object.sessionMetadata, long + 1); + } + if (object.data != null) { + if (!$util.isObject(object.data)) + throw TypeError(".google.cloud.sql.v1beta4.StreamSqlDataResponse.data: object expected"); + message.data = $root.google.cloud.sql.v1beta4.DataPacket.fromObject(object.data, long + 1); + } + if (object.terminateSession != null) { + if (!$util.isObject(object.terminateSession)) + throw TypeError(".google.cloud.sql.v1beta4.StreamSqlDataResponse.terminateSession: object expected"); + message.terminateSession = $root.google.cloud.sql.v1beta4.TerminateSession.fromObject(object.terminateSession, long + 1); + } + return message; + }; + + /** + * Creates a plain object from a StreamSqlDataResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.sql.v1beta4.StreamSqlDataResponse + * @static + * @param {google.cloud.sql.v1beta4.StreamSqlDataResponse} message StreamSqlDataResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StreamSqlDataResponse.toObject = function toObject(message, options, q) { + if (!options) + options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + var object = {}; + if (options.defaults) + object.ack = null; + if (message.ack != null && Object.hasOwnProperty.call(message, "ack")) + object.ack = $root.google.cloud.sql.v1beta4.Ack.toObject(message.ack, options, q + 1); + if (message.sessionMetadata != null && Object.hasOwnProperty.call(message, "sessionMetadata")) { + object.sessionMetadata = $root.google.cloud.sql.v1beta4.SessionMetadata.toObject(message.sessionMetadata, options, q + 1); + if (options.oneofs) + object.message = "sessionMetadata"; + } + if (message.data != null && Object.hasOwnProperty.call(message, "data")) { + object.data = $root.google.cloud.sql.v1beta4.DataPacket.toObject(message.data, options, q + 1); + if (options.oneofs) + object.message = "data"; + } + if (message.terminateSession != null && Object.hasOwnProperty.call(message, "terminateSession")) { + object.terminateSession = $root.google.cloud.sql.v1beta4.TerminateSession.toObject(message.terminateSession, options, q + 1); + if (options.oneofs) + object.message = "terminateSession"; + } + return object; + }; + + /** + * Converts this StreamSqlDataResponse to JSON. + * @function toJSON + * @memberof google.cloud.sql.v1beta4.StreamSqlDataResponse + * @instance + * @returns {Object.} JSON object + */ + StreamSqlDataResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for StreamSqlDataResponse + * @function getTypeUrl + * @memberof google.cloud.sql.v1beta4.StreamSqlDataResponse + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + StreamSqlDataResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.sql.v1beta4.StreamSqlDataResponse"; + }; + + return StreamSqlDataResponse; + })(); + + v1beta4.SessionMetadata = (function() { + + /** + * Properties of a SessionMetadata. + * @memberof google.cloud.sql.v1beta4 + * @interface ISessionMetadata + * @property {Array.|null} [supportedFeatures] SessionMetadata supportedFeatures + */ + + /** + * Constructs a new SessionMetadata. + * @memberof google.cloud.sql.v1beta4 + * @classdesc Represents a SessionMetadata. + * @implements ISessionMetadata + * @constructor + * @param {google.cloud.sql.v1beta4.ISessionMetadata=} [properties] Properties to set + */ + function SessionMetadata(properties) { + this.supportedFeatures = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null && keys[i] !== "__proto__") + this[keys[i]] = properties[keys[i]]; + } + + /** + * SessionMetadata supportedFeatures. + * @member {Array.} supportedFeatures + * @memberof google.cloud.sql.v1beta4.SessionMetadata + * @instance + */ + SessionMetadata.prototype.supportedFeatures = $util.emptyArray; + + /** + * Creates a new SessionMetadata instance using the specified properties. + * @function create + * @memberof google.cloud.sql.v1beta4.SessionMetadata + * @static + * @param {google.cloud.sql.v1beta4.ISessionMetadata=} [properties] Properties to set + * @returns {google.cloud.sql.v1beta4.SessionMetadata} SessionMetadata instance + */ + SessionMetadata.create = function create(properties) { + return new SessionMetadata(properties); + }; + + /** + * Encodes the specified SessionMetadata message. Does not implicitly {@link google.cloud.sql.v1beta4.SessionMetadata.verify|verify} messages. + * @function encode + * @memberof google.cloud.sql.v1beta4.SessionMetadata + * @static + * @param {google.cloud.sql.v1beta4.ISessionMetadata} message SessionMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SessionMetadata.encode = function encode(message, writer, q) { + if (!writer) + writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + if (message.supportedFeatures != null && message.supportedFeatures.length) { + writer.uint32(/* id 1, wireType 2 =*/10).fork(); + for (var i = 0; i < message.supportedFeatures.length; ++i) + writer.int32(message.supportedFeatures[i]); + writer.ldelim(); + } + return writer; + }; + + /** + * Encodes the specified SessionMetadata message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.SessionMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.sql.v1beta4.SessionMetadata + * @static + * @param {google.cloud.sql.v1beta4.ISessionMetadata} message SessionMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SessionMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); + }; + + /** + * Decodes a SessionMetadata message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.sql.v1beta4.SessionMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.sql.v1beta4.SessionMetadata} SessionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SessionMetadata.decode = function decode(reader, length, error, long) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SessionMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + if (!(message.supportedFeatures && message.supportedFeatures.length)) + message.supportedFeatures = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.supportedFeatures.push(reader.int32()); + } else + message.supportedFeatures.push(reader.int32()); + break; + } + default: + reader.skipType(tag & 7, long); + break; + } + } + return message; + }; + + /** + * Decodes a SessionMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.sql.v1beta4.SessionMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.sql.v1beta4.SessionMetadata} SessionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SessionMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SessionMetadata message. + * @function verify + * @memberof google.cloud.sql.v1beta4.SessionMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SessionMetadata.verify = function verify(message, long) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.supportedFeatures != null && Object.hasOwnProperty.call(message, "supportedFeatures")) { + if (!Array.isArray(message.supportedFeatures)) + return "supportedFeatures: array expected"; + for (var i = 0; i < message.supportedFeatures.length; ++i) + switch (message.supportedFeatures[i]) { + default: + return "supportedFeatures: enum value[] expected"; + case 0: + case 1: + break; + } + } + return null; + }; + + /** + * Creates a SessionMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.sql.v1beta4.SessionMetadata + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.sql.v1beta4.SessionMetadata} SessionMetadata + */ + SessionMetadata.fromObject = function fromObject(object, long) { + if (object instanceof $root.google.cloud.sql.v1beta4.SessionMetadata) + return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SessionMetadata: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var message = new $root.google.cloud.sql.v1beta4.SessionMetadata(); + if (object.supportedFeatures) { + if (!Array.isArray(object.supportedFeatures)) + throw TypeError(".google.cloud.sql.v1beta4.SessionMetadata.supportedFeatures: array expected"); + message.supportedFeatures = []; + for (var i = 0; i < object.supportedFeatures.length; ++i) + switch (object.supportedFeatures[i]) { + default: + if (typeof object.supportedFeatures[i] === "number") { + message.supportedFeatures[i] = object.supportedFeatures[i]; + break; + } + case "SQL_DATA_FEATURE_UNSPECIFIED": + case 0: + message.supportedFeatures[i] = 0; + break; + case "SQL_DATA_FEATURE_RECONNECT": + case 1: + message.supportedFeatures[i] = 1; + break; + } + } + return message; + }; + + /** + * Creates a plain object from a SessionMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.sql.v1beta4.SessionMetadata + * @static + * @param {google.cloud.sql.v1beta4.SessionMetadata} message SessionMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SessionMetadata.toObject = function toObject(message, options, q) { + if (!options) + options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + var object = {}; + if (options.arrays || options.defaults) + object.supportedFeatures = []; + if (message.supportedFeatures && message.supportedFeatures.length) { + object.supportedFeatures = []; + for (var j = 0; j < message.supportedFeatures.length; ++j) + object.supportedFeatures[j] = options.enums === String ? $root.google.cloud.sql.v1beta4.SqlDataFeature[message.supportedFeatures[j]] === undefined ? message.supportedFeatures[j] : $root.google.cloud.sql.v1beta4.SqlDataFeature[message.supportedFeatures[j]] : message.supportedFeatures[j]; + } + return object; + }; + + /** + * Converts this SessionMetadata to JSON. + * @function toJSON + * @memberof google.cloud.sql.v1beta4.SessionMetadata + * @instance + * @returns {Object.} JSON object + */ + SessionMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for SessionMetadata + * @function getTypeUrl + * @memberof google.cloud.sql.v1beta4.SessionMetadata + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + SessionMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.sql.v1beta4.SessionMetadata"; + }; + + return SessionMetadata; + })(); + + v1beta4.DataPacket = (function() { + + /** + * Properties of a DataPacket. + * @memberof google.cloud.sql.v1beta4 + * @interface IDataPacket + * @property {number|Long|null} [firstByteOffset] DataPacket firstByteOffset + * @property {Uint8Array|null} [data] DataPacket data + */ + + /** + * Constructs a new DataPacket. + * @memberof google.cloud.sql.v1beta4 + * @classdesc Represents a DataPacket. + * @implements IDataPacket + * @constructor + * @param {google.cloud.sql.v1beta4.IDataPacket=} [properties] Properties to set + */ + function DataPacket(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null && keys[i] !== "__proto__") + this[keys[i]] = properties[keys[i]]; + } + + /** + * DataPacket firstByteOffset. + * @member {number|Long} firstByteOffset + * @memberof google.cloud.sql.v1beta4.DataPacket + * @instance + */ + DataPacket.prototype.firstByteOffset = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * DataPacket data. + * @member {Uint8Array} data + * @memberof google.cloud.sql.v1beta4.DataPacket + * @instance + */ + DataPacket.prototype.data = $util.newBuffer([]); + + /** + * Creates a new DataPacket instance using the specified properties. + * @function create + * @memberof google.cloud.sql.v1beta4.DataPacket + * @static + * @param {google.cloud.sql.v1beta4.IDataPacket=} [properties] Properties to set + * @returns {google.cloud.sql.v1beta4.DataPacket} DataPacket instance + */ + DataPacket.create = function create(properties) { + return new DataPacket(properties); + }; + + /** + * Encodes the specified DataPacket message. Does not implicitly {@link google.cloud.sql.v1beta4.DataPacket.verify|verify} messages. + * @function encode + * @memberof google.cloud.sql.v1beta4.DataPacket + * @static + * @param {google.cloud.sql.v1beta4.IDataPacket} message DataPacket message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DataPacket.encode = function encode(message, writer, q) { + if (!writer) + writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + if (message.firstByteOffset != null && Object.hasOwnProperty.call(message, "firstByteOffset")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.firstByteOffset); + if (message.data != null && Object.hasOwnProperty.call(message, "data")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.data); + return writer; + }; + + /** + * Encodes the specified DataPacket message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.DataPacket.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.sql.v1beta4.DataPacket + * @static + * @param {google.cloud.sql.v1beta4.IDataPacket} message DataPacket message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DataPacket.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); + }; + + /** + * Decodes a DataPacket message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.sql.v1beta4.DataPacket + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.sql.v1beta4.DataPacket} DataPacket + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DataPacket.decode = function decode(reader, length, error, long) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.DataPacket(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.firstByteOffset = reader.int64(); + break; + } + case 2: { + message.data = reader.bytes(); + break; + } + default: + reader.skipType(tag & 7, long); + break; + } + } + return message; + }; + + /** + * Decodes a DataPacket message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.sql.v1beta4.DataPacket + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.sql.v1beta4.DataPacket} DataPacket + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DataPacket.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DataPacket message. + * @function verify + * @memberof google.cloud.sql.v1beta4.DataPacket + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DataPacket.verify = function verify(message, long) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.firstByteOffset != null && Object.hasOwnProperty.call(message, "firstByteOffset")) + if (!$util.isInteger(message.firstByteOffset) && !(message.firstByteOffset && $util.isInteger(message.firstByteOffset.low) && $util.isInteger(message.firstByteOffset.high))) + return "firstByteOffset: integer|Long expected"; + if (message.data != null && Object.hasOwnProperty.call(message, "data")) + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + return null; + }; + + /** + * Creates a DataPacket message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.sql.v1beta4.DataPacket + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.sql.v1beta4.DataPacket} DataPacket + */ + DataPacket.fromObject = function fromObject(object, long) { + if (object instanceof $root.google.cloud.sql.v1beta4.DataPacket) + return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.DataPacket: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var message = new $root.google.cloud.sql.v1beta4.DataPacket(); + if (object.firstByteOffset != null) + if ($util.Long) + message.firstByteOffset = $util.Long.fromValue(object.firstByteOffset, false); + else if (typeof object.firstByteOffset === "string") + message.firstByteOffset = parseInt(object.firstByteOffset, 10); + else if (typeof object.firstByteOffset === "number") + message.firstByteOffset = object.firstByteOffset; + else if (typeof object.firstByteOffset === "object") + message.firstByteOffset = new $util.LongBits(object.firstByteOffset.low >>> 0, object.firstByteOffset.high >>> 0).toNumber(); + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length >= 0) + message.data = object.data; + return message; + }; + + /** + * Creates a plain object from a DataPacket message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.sql.v1beta4.DataPacket + * @static + * @param {google.cloud.sql.v1beta4.DataPacket} message DataPacket + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DataPacket.toObject = function toObject(message, options, q) { + if (!options) + options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.firstByteOffset = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; + } else + object.firstByteOffset = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; + if (options.bytes === String) + object.data = ""; + else { + object.data = []; + if (options.bytes !== Array) + object.data = $util.newBuffer(object.data); + } + } + if (message.firstByteOffset != null && Object.hasOwnProperty.call(message, "firstByteOffset")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.firstByteOffset = typeof message.firstByteOffset === "number" ? BigInt(message.firstByteOffset) : $util.Long.fromBits(message.firstByteOffset.low >>> 0, message.firstByteOffset.high >>> 0, false).toBigInt(); + else if (typeof message.firstByteOffset === "number") + object.firstByteOffset = options.longs === String ? String(message.firstByteOffset) : message.firstByteOffset; + else + object.firstByteOffset = options.longs === String ? $util.Long.prototype.toString.call(message.firstByteOffset) : options.longs === Number ? new $util.LongBits(message.firstByteOffset.low >>> 0, message.firstByteOffset.high >>> 0).toNumber() : message.firstByteOffset; + if (message.data != null && Object.hasOwnProperty.call(message, "data")) + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + return object; + }; + + /** + * Converts this DataPacket to JSON. + * @function toJSON + * @memberof google.cloud.sql.v1beta4.DataPacket + * @instance + * @returns {Object.} JSON object + */ + DataPacket.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for DataPacket + * @function getTypeUrl + * @memberof google.cloud.sql.v1beta4.DataPacket + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DataPacket.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.sql.v1beta4.DataPacket"; + }; + + return DataPacket; + })(); + + v1beta4.Ack = (function() { + + /** + * Properties of an Ack. + * @memberof google.cloud.sql.v1beta4 + * @interface IAck + * @property {number|Long|null} [receivedOffset] Ack receivedOffset + */ + + /** + * Constructs a new Ack. + * @memberof google.cloud.sql.v1beta4 + * @classdesc Represents an Ack. + * @implements IAck + * @constructor + * @param {google.cloud.sql.v1beta4.IAck=} [properties] Properties to set + */ + function Ack(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null && keys[i] !== "__proto__") + this[keys[i]] = properties[keys[i]]; + } + + /** + * Ack receivedOffset. + * @member {number|Long} receivedOffset + * @memberof google.cloud.sql.v1beta4.Ack + * @instance + */ + Ack.prototype.receivedOffset = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * Creates a new Ack instance using the specified properties. + * @function create + * @memberof google.cloud.sql.v1beta4.Ack + * @static + * @param {google.cloud.sql.v1beta4.IAck=} [properties] Properties to set + * @returns {google.cloud.sql.v1beta4.Ack} Ack instance + */ + Ack.create = function create(properties) { + return new Ack(properties); + }; + + /** + * Encodes the specified Ack message. Does not implicitly {@link google.cloud.sql.v1beta4.Ack.verify|verify} messages. + * @function encode + * @memberof google.cloud.sql.v1beta4.Ack + * @static + * @param {google.cloud.sql.v1beta4.IAck} message Ack message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Ack.encode = function encode(message, writer, q) { + if (!writer) + writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + if (message.receivedOffset != null && Object.hasOwnProperty.call(message, "receivedOffset")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.receivedOffset); + return writer; + }; + + /** + * Encodes the specified Ack message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.Ack.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.sql.v1beta4.Ack + * @static + * @param {google.cloud.sql.v1beta4.IAck} message Ack message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Ack.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); + }; + + /** + * Decodes an Ack message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.sql.v1beta4.Ack + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.sql.v1beta4.Ack} Ack + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Ack.decode = function decode(reader, length, error, long) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.Ack(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.receivedOffset = reader.int64(); + break; + } + default: + reader.skipType(tag & 7, long); + break; + } + } + return message; + }; + + /** + * Decodes an Ack message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.sql.v1beta4.Ack + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.sql.v1beta4.Ack} Ack + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Ack.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an Ack message. + * @function verify + * @memberof google.cloud.sql.v1beta4.Ack + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Ack.verify = function verify(message, long) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.receivedOffset != null && Object.hasOwnProperty.call(message, "receivedOffset")) + if (!$util.isInteger(message.receivedOffset) && !(message.receivedOffset && $util.isInteger(message.receivedOffset.low) && $util.isInteger(message.receivedOffset.high))) + return "receivedOffset: integer|Long expected"; + return null; + }; + + /** + * Creates an Ack message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.sql.v1beta4.Ack + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.sql.v1beta4.Ack} Ack + */ + Ack.fromObject = function fromObject(object, long) { + if (object instanceof $root.google.cloud.sql.v1beta4.Ack) + return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.Ack: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var message = new $root.google.cloud.sql.v1beta4.Ack(); + if (object.receivedOffset != null) + if ($util.Long) + message.receivedOffset = $util.Long.fromValue(object.receivedOffset, false); + else if (typeof object.receivedOffset === "string") + message.receivedOffset = parseInt(object.receivedOffset, 10); + else if (typeof object.receivedOffset === "number") + message.receivedOffset = object.receivedOffset; + else if (typeof object.receivedOffset === "object") + message.receivedOffset = new $util.LongBits(object.receivedOffset.low >>> 0, object.receivedOffset.high >>> 0).toNumber(); + return message; + }; + + /** + * Creates a plain object from an Ack message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.sql.v1beta4.Ack + * @static + * @param {google.cloud.sql.v1beta4.Ack} message Ack + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Ack.toObject = function toObject(message, options, q) { + if (!options) + options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + var object = {}; + if (options.defaults) + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.receivedOffset = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; + } else + object.receivedOffset = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; + if (message.receivedOffset != null && Object.hasOwnProperty.call(message, "receivedOffset")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.receivedOffset = typeof message.receivedOffset === "number" ? BigInt(message.receivedOffset) : $util.Long.fromBits(message.receivedOffset.low >>> 0, message.receivedOffset.high >>> 0, false).toBigInt(); + else if (typeof message.receivedOffset === "number") + object.receivedOffset = options.longs === String ? String(message.receivedOffset) : message.receivedOffset; + else + object.receivedOffset = options.longs === String ? $util.Long.prototype.toString.call(message.receivedOffset) : options.longs === Number ? new $util.LongBits(message.receivedOffset.low >>> 0, message.receivedOffset.high >>> 0).toNumber() : message.receivedOffset; + return object; + }; + + /** + * Converts this Ack to JSON. + * @function toJSON + * @memberof google.cloud.sql.v1beta4.Ack + * @instance + * @returns {Object.} JSON object + */ + Ack.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Ack + * @function getTypeUrl + * @memberof google.cloud.sql.v1beta4.Ack + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Ack.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.sql.v1beta4.Ack"; + }; + + return Ack; + })(); + + v1beta4.TerminateSession = (function() { + + /** + * Properties of a TerminateSession. + * @memberof google.cloud.sql.v1beta4 + * @interface ITerminateSession + * @property {google.rpc.IStatus|null} [status] TerminateSession status + */ + + /** + * Constructs a new TerminateSession. + * @memberof google.cloud.sql.v1beta4 + * @classdesc Represents a TerminateSession. + * @implements ITerminateSession + * @constructor + * @param {google.cloud.sql.v1beta4.ITerminateSession=} [properties] Properties to set + */ + function TerminateSession(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null && keys[i] !== "__proto__") + this[keys[i]] = properties[keys[i]]; + } + + /** + * TerminateSession status. + * @member {google.rpc.IStatus|null|undefined} status + * @memberof google.cloud.sql.v1beta4.TerminateSession + * @instance + */ + TerminateSession.prototype.status = null; + + /** + * Creates a new TerminateSession instance using the specified properties. + * @function create + * @memberof google.cloud.sql.v1beta4.TerminateSession + * @static + * @param {google.cloud.sql.v1beta4.ITerminateSession=} [properties] Properties to set + * @returns {google.cloud.sql.v1beta4.TerminateSession} TerminateSession instance + */ + TerminateSession.create = function create(properties) { + return new TerminateSession(properties); + }; + + /** + * Encodes the specified TerminateSession message. Does not implicitly {@link google.cloud.sql.v1beta4.TerminateSession.verify|verify} messages. + * @function encode + * @memberof google.cloud.sql.v1beta4.TerminateSession + * @static + * @param {google.cloud.sql.v1beta4.ITerminateSession} message TerminateSession message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TerminateSession.encode = function encode(message, writer, q) { + if (!writer) + writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + if (message.status != null && Object.hasOwnProperty.call(message, "status")) + $root.google.rpc.Status.encode(message.status, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); + return writer; + }; + + /** + * Encodes the specified TerminateSession message, length delimited. Does not implicitly {@link google.cloud.sql.v1beta4.TerminateSession.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.sql.v1beta4.TerminateSession + * @static + * @param {google.cloud.sql.v1beta4.ITerminateSession} message TerminateSession message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TerminateSession.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); + }; + + /** + * Decodes a TerminateSession message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.sql.v1beta4.TerminateSession + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.sql.v1beta4.TerminateSession} TerminateSession + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TerminateSession.decode = function decode(reader, length, error, long) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.TerminateSession(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.status = $root.google.rpc.Status.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + default: + reader.skipType(tag & 7, long); + break; + } + } + return message; + }; + + /** + * Decodes a TerminateSession message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.sql.v1beta4.TerminateSession + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.sql.v1beta4.TerminateSession} TerminateSession + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TerminateSession.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a TerminateSession message. + * @function verify + * @memberof google.cloud.sql.v1beta4.TerminateSession + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + TerminateSession.verify = function verify(message, long) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.status != null && Object.hasOwnProperty.call(message, "status")) { + var error = $root.google.rpc.Status.verify(message.status, long + 1); + if (error) + return "status." + error; + } + return null; + }; + + /** + * Creates a TerminateSession message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.sql.v1beta4.TerminateSession + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.sql.v1beta4.TerminateSession} TerminateSession + */ + TerminateSession.fromObject = function fromObject(object, long) { + if (object instanceof $root.google.cloud.sql.v1beta4.TerminateSession) + return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.TerminateSession: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var message = new $root.google.cloud.sql.v1beta4.TerminateSession(); + if (object.status != null) { + if (!$util.isObject(object.status)) + throw TypeError(".google.cloud.sql.v1beta4.TerminateSession.status: object expected"); + message.status = $root.google.rpc.Status.fromObject(object.status, long + 1); + } + return message; + }; + + /** + * Creates a plain object from a TerminateSession message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.sql.v1beta4.TerminateSession + * @static + * @param {google.cloud.sql.v1beta4.TerminateSession} message TerminateSession + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + TerminateSession.toObject = function toObject(message, options, q) { + if (!options) + options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + var object = {}; + if (options.defaults) + object.status = null; + if (message.status != null && Object.hasOwnProperty.call(message, "status")) + object.status = $root.google.rpc.Status.toObject(message.status, options, q + 1); + return object; + }; + + /** + * Converts this TerminateSession to JSON. + * @function toJSON + * @memberof google.cloud.sql.v1beta4.TerminateSession + * @instance + * @returns {Object.} JSON object + */ + TerminateSession.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for TerminateSession + * @function getTypeUrl + * @memberof google.cloud.sql.v1beta4.TerminateSession + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + TerminateSession.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.sql.v1beta4.TerminateSession"; + }; + + return TerminateSession; + })(); + + /** + * SqlDataFeature enum. + * @name google.cloud.sql.v1beta4.SqlDataFeature + * @enum {number} + * @property {number} SQL_DATA_FEATURE_UNSPECIFIED=0 SQL_DATA_FEATURE_UNSPECIFIED value + * @property {number} SQL_DATA_FEATURE_RECONNECT=1 SQL_DATA_FEATURE_RECONNECT value + */ + v1beta4.SqlDataFeature = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "SQL_DATA_FEATURE_UNSPECIFIED"] = 0; + values[valuesById[1] = "SQL_DATA_FEATURE_RECONNECT"] = 1; + return values; + })(); + v1beta4.SqlIamPoliciesService = (function() { /** @@ -139465,7 +152815,7 @@ * @variation 1 */ Object.defineProperty(SqlTiersService.prototype.list = function list(request, callback) { - return this.rpcCall(list, $root.google.cloud.sql.v1beta4.SqlTiersListRequest, $root.google.cloud.sql.v1beta4.TiersListResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, list, $root.google.cloud.sql.v1beta4.SqlTiersListRequest, $root.google.cloud.sql.v1beta4.TiersListResponse, request, callback); }, "name", { value: "List" }); /** @@ -139501,7 +152851,7 @@ function SqlTiersListRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -139534,9 +152884,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlTiersListRequest.encode = function encode(message, writer) { + SqlTiersListRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.project); return writer; @@ -139552,7 +152906,7 @@ * @returns {$protobuf.Writer} Writer */ SqlTiersListRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -139566,9 +152920,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlTiersListRequest.decode = function decode(reader, length, error) { + SqlTiersListRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlTiersListRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -139580,7 +152938,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -139611,10 +152969,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlTiersListRequest.verify = function verify(message) { + SqlTiersListRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -139628,9 +152990,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlTiersListRequest} SqlTiersListRequest */ - SqlTiersListRequest.fromObject = function fromObject(object) { + SqlTiersListRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlTiersListRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlTiersListRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlTiersListRequest(); if (object.project != null) message.project = String(object.project); @@ -139646,13 +153014,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlTiersListRequest.toObject = function toObject(message, options) { + SqlTiersListRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.project = ""; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -139708,7 +153080,7 @@ this.items = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -139749,14 +153121,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - TiersListResponse.encode = function encode(message, writer) { + TiersListResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.items != null && message.items.length) for (var i = 0; i < message.items.length; ++i) - $root.google.cloud.sql.v1beta4.Tier.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.Tier.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -139770,7 +153146,7 @@ * @returns {$protobuf.Writer} Writer */ TiersListResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -139784,9 +153160,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - TiersListResponse.decode = function decode(reader, length, error) { + TiersListResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.TiersListResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -139800,11 +153180,11 @@ case 2: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.sql.v1beta4.Tier.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.sql.v1beta4.Tier.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -139835,17 +153215,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - TiersListResponse.verify = function verify(message) { + TiersListResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.items != null && message.hasOwnProperty("items")) { + if (message.items != null && Object.hasOwnProperty.call(message, "items")) { if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.Tier.verify(message.items[i]); + var error = $root.google.cloud.sql.v1beta4.Tier.verify(message.items[i], long + 1); if (error) return "items." + error; } @@ -139861,9 +153245,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.TiersListResponse} TiersListResponse */ - TiersListResponse.fromObject = function fromObject(object) { + TiersListResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.TiersListResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.TiersListResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.TiersListResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -139872,9 +153262,9 @@ throw TypeError(".google.cloud.sql.v1beta4.TiersListResponse.items: array expected"); message.items = []; for (var i = 0; i < object.items.length; ++i) { - if (typeof object.items[i] !== "object") + if (!$util.isObject(object.items[i])) throw TypeError(".google.cloud.sql.v1beta4.TiersListResponse.items: object expected"); - message.items[i] = $root.google.cloud.sql.v1beta4.Tier.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.sql.v1beta4.Tier.fromObject(object.items[i], long + 1); } } return message; @@ -139889,20 +153279,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - TiersListResponse.toObject = function toObject(message, options) { + TiersListResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.items = []; if (options.defaults) object.kind = ""; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.items && message.items.length) { object.items = []; for (var j = 0; j < message.items.length; ++j) - object.items[j] = $root.google.cloud.sql.v1beta4.Tier.toObject(message.items[j], options); + object.items[j] = $root.google.cloud.sql.v1beta4.Tier.toObject(message.items[j], options, q + 1); } return object; }; @@ -139961,7 +153355,7 @@ this.region = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -140026,9 +153420,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Tier.encode = function encode(message, writer) { + Tier.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.tier != null && Object.hasOwnProperty.call(message, "tier")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.tier); if (message.RAM != null && Object.hasOwnProperty.call(message, "RAM")) @@ -140053,7 +153451,7 @@ * @returns {$protobuf.Writer} Writer */ Tier.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -140067,9 +153465,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Tier.decode = function decode(reader, length, error) { + Tier.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.Tier(); while (reader.pos < end) { var tag = reader.uint32(); @@ -140099,7 +153501,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -140130,22 +153532,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Tier.verify = function verify(message) { + Tier.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.tier != null && message.hasOwnProperty("tier")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.tier != null && Object.hasOwnProperty.call(message, "tier")) if (!$util.isString(message.tier)) return "tier: string expected"; - if (message.RAM != null && message.hasOwnProperty("RAM")) + if (message.RAM != null && Object.hasOwnProperty.call(message, "RAM")) if (!$util.isInteger(message.RAM) && !(message.RAM && $util.isInteger(message.RAM.low) && $util.isInteger(message.RAM.high))) return "RAM: integer|Long expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.Disk_Quota != null && message.hasOwnProperty("Disk_Quota")) + if (message.Disk_Quota != null && Object.hasOwnProperty.call(message, "Disk_Quota")) if (!$util.isInteger(message.Disk_Quota) && !(message.Disk_Quota && $util.isInteger(message.Disk_Quota.low) && $util.isInteger(message.Disk_Quota.high))) return "Disk_Quota: integer|Long expected"; - if (message.region != null && message.hasOwnProperty("region")) { + if (message.region != null && Object.hasOwnProperty.call(message, "region")) { if (!Array.isArray(message.region)) return "region: array expected"; for (var i = 0; i < message.region.length; ++i) @@ -140163,15 +153569,21 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.Tier} Tier */ - Tier.fromObject = function fromObject(object) { + Tier.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.Tier) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.Tier: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.Tier(); if (object.tier != null) message.tier = String(object.tier); if (object.RAM != null) if ($util.Long) - (message.RAM = $util.Long.fromValue(object.RAM)).unsigned = false; + message.RAM = $util.Long.fromValue(object.RAM, false); else if (typeof object.RAM === "string") message.RAM = parseInt(object.RAM, 10); else if (typeof object.RAM === "number") @@ -140182,7 +153594,7 @@ message.kind = String(object.kind); if (object.Disk_Quota != null) if ($util.Long) - (message.Disk_Quota = $util.Long.fromValue(object.Disk_Quota)).unsigned = false; + message.Disk_Quota = $util.Long.fromValue(object.Disk_Quota, false); else if (typeof object.Disk_Quota === "string") message.Disk_Quota = parseInt(object.Disk_Quota, 10); else if (typeof object.Disk_Quota === "number") @@ -140208,9 +153620,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Tier.toObject = function toObject(message, options) { + Tier.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.region = []; @@ -140218,27 +153634,31 @@ object.tier = ""; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.RAM = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.RAM = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.RAM = options.longs === String ? "0" : 0; + object.RAM = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.kind = ""; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.Disk_Quota = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.Disk_Quota = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.Disk_Quota = options.longs === String ? "0" : 0; + object.Disk_Quota = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; } - if (message.tier != null && message.hasOwnProperty("tier")) + if (message.tier != null && Object.hasOwnProperty.call(message, "tier")) object.tier = message.tier; - if (message.RAM != null && message.hasOwnProperty("RAM")) - if (typeof message.RAM === "number") + if (message.RAM != null && Object.hasOwnProperty.call(message, "RAM")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.RAM = typeof message.RAM === "number" ? BigInt(message.RAM) : $util.Long.fromBits(message.RAM.low >>> 0, message.RAM.high >>> 0, false).toBigInt(); + else if (typeof message.RAM === "number") object.RAM = options.longs === String ? String(message.RAM) : message.RAM; else object.RAM = options.longs === String ? $util.Long.prototype.toString.call(message.RAM) : options.longs === Number ? new $util.LongBits(message.RAM.low >>> 0, message.RAM.high >>> 0).toNumber() : message.RAM; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.Disk_Quota != null && message.hasOwnProperty("Disk_Quota")) - if (typeof message.Disk_Quota === "number") + if (message.Disk_Quota != null && Object.hasOwnProperty.call(message, "Disk_Quota")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.Disk_Quota = typeof message.Disk_Quota === "number" ? BigInt(message.Disk_Quota) : $util.Long.fromBits(message.Disk_Quota.low >>> 0, message.Disk_Quota.high >>> 0, false).toBigInt(); + else if (typeof message.Disk_Quota === "number") object.Disk_Quota = options.longs === String ? String(message.Disk_Quota) : message.Disk_Quota; else object.Disk_Quota = options.longs === String ? $util.Long.prototype.toString.call(message.Disk_Quota) : options.longs === Number ? new $util.LongBits(message.Disk_Quota.low >>> 0, message.Disk_Quota.high >>> 0).toNumber() : message.Disk_Quota; @@ -140331,7 +153751,7 @@ * @variation 1 */ Object.defineProperty(SqlUsersService.prototype["delete"] = function delete_(request, callback) { - return this.rpcCall(delete_, $root.google.cloud.sql.v1beta4.SqlUsersDeleteRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, delete_, $root.google.cloud.sql.v1beta4.SqlUsersDeleteRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Delete" }); /** @@ -140364,7 +153784,7 @@ * @variation 1 */ Object.defineProperty(SqlUsersService.prototype.get = function get(request, callback) { - return this.rpcCall(get, $root.google.cloud.sql.v1beta4.SqlUsersGetRequest, $root.google.cloud.sql.v1beta4.User, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, get, $root.google.cloud.sql.v1beta4.SqlUsersGetRequest, $root.google.cloud.sql.v1beta4.User, request, callback); }, "name", { value: "Get" }); /** @@ -140397,7 +153817,7 @@ * @variation 1 */ Object.defineProperty(SqlUsersService.prototype.insert = function insert(request, callback) { - return this.rpcCall(insert, $root.google.cloud.sql.v1beta4.SqlUsersInsertRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, insert, $root.google.cloud.sql.v1beta4.SqlUsersInsertRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Insert" }); /** @@ -140430,7 +153850,7 @@ * @variation 1 */ Object.defineProperty(SqlUsersService.prototype.list = function list(request, callback) { - return this.rpcCall(list, $root.google.cloud.sql.v1beta4.SqlUsersListRequest, $root.google.cloud.sql.v1beta4.UsersListResponse, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, list, $root.google.cloud.sql.v1beta4.SqlUsersListRequest, $root.google.cloud.sql.v1beta4.UsersListResponse, request, callback); }, "name", { value: "List" }); /** @@ -140463,7 +153883,7 @@ * @variation 1 */ Object.defineProperty(SqlUsersService.prototype.update = function update(request, callback) { - return this.rpcCall(update, $root.google.cloud.sql.v1beta4.SqlUsersUpdateRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); + return $protobuf.rpc.Service.prototype.rpcCall.call(this, update, $root.google.cloud.sql.v1beta4.SqlUsersUpdateRequest, $root.google.cloud.sql.v1beta4.Operation, request, callback); }, "name", { value: "Update" }); /** @@ -140502,7 +153922,7 @@ function SqlUsersDeleteRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -140559,9 +153979,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlUsersDeleteRequest.encode = function encode(message, writer) { + SqlUsersDeleteRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.host != null && Object.hasOwnProperty.call(message, "host")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.host); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) @@ -140583,7 +154007,7 @@ * @returns {$protobuf.Writer} Writer */ SqlUsersDeleteRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -140597,9 +154021,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlUsersDeleteRequest.decode = function decode(reader, length, error) { + SqlUsersDeleteRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlUsersDeleteRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -140623,7 +154051,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -140654,19 +154082,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlUsersDeleteRequest.verify = function verify(message) { + SqlUsersDeleteRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.host != null && message.hasOwnProperty("host")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.host != null && Object.hasOwnProperty.call(message, "host")) if (!$util.isString(message.host)) return "host: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -140680,9 +154112,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlUsersDeleteRequest} SqlUsersDeleteRequest */ - SqlUsersDeleteRequest.fromObject = function fromObject(object) { + SqlUsersDeleteRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlUsersDeleteRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlUsersDeleteRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlUsersDeleteRequest(); if (object.host != null) message.host = String(object.host); @@ -140704,9 +154142,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlUsersDeleteRequest.toObject = function toObject(message, options) { + SqlUsersDeleteRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.host = ""; @@ -140714,13 +154156,13 @@ object.name = ""; object.project = ""; } - if (message.host != null && message.hasOwnProperty("host")) + if (message.host != null && Object.hasOwnProperty.call(message, "host")) object.host = message.host; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -140777,7 +154219,7 @@ function SqlUsersGetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -140834,9 +154276,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlUsersGetRequest.encode = function encode(message, writer) { + SqlUsersGetRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.name != null && Object.hasOwnProperty.call(message, "name")) @@ -140858,7 +154304,7 @@ * @returns {$protobuf.Writer} Writer */ SqlUsersGetRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -140872,9 +154318,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlUsersGetRequest.decode = function decode(reader, length, error) { + SqlUsersGetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlUsersGetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -140898,7 +154348,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -140929,19 +154379,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlUsersGetRequest.verify = function verify(message) { + SqlUsersGetRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.host != null && message.hasOwnProperty("host")) + if (message.host != null && Object.hasOwnProperty.call(message, "host")) if (!$util.isString(message.host)) return "host: string expected"; return null; @@ -140955,9 +154409,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlUsersGetRequest} SqlUsersGetRequest */ - SqlUsersGetRequest.fromObject = function fromObject(object) { + SqlUsersGetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlUsersGetRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlUsersGetRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlUsersGetRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -140979,9 +154439,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlUsersGetRequest.toObject = function toObject(message, options) { + SqlUsersGetRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; @@ -140989,13 +154453,13 @@ object.project = ""; object.host = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.host != null && message.hasOwnProperty("host")) + if (message.host != null && Object.hasOwnProperty.call(message, "host")) object.host = message.host; return object; }; @@ -141051,7 +154515,7 @@ function SqlUsersInsertRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -141100,15 +154564,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlUsersInsertRequest.encode = function encode(message, writer) { + SqlUsersInsertRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.project); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.User.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.User.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -141122,7 +154590,7 @@ * @returns {$protobuf.Writer} Writer */ SqlUsersInsertRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -141136,9 +154604,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlUsersInsertRequest.decode = function decode(reader, length, error) { + SqlUsersInsertRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlUsersInsertRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -141154,11 +154626,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.User.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.User.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -141189,17 +154661,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlUsersInsertRequest.verify = function verify(message) { + SqlUsersInsertRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.User.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.User.verify(message.body, long + 1); if (error) return "body." + error; } @@ -141214,18 +154690,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlUsersInsertRequest} SqlUsersInsertRequest */ - SqlUsersInsertRequest.fromObject = function fromObject(object) { + SqlUsersInsertRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlUsersInsertRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlUsersInsertRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlUsersInsertRequest(); if (object.instance != null) message.instance = String(object.instance); if (object.project != null) message.project = String(object.project); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlUsersInsertRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.User.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.User.fromObject(object.body, long + 1); } return message; }; @@ -141239,21 +154721,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlUsersInsertRequest.toObject = function toObject(message, options) { + SqlUsersInsertRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; object.body = null; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.User.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.User.toObject(message.body, options, q + 1); return object; }; @@ -141307,7 +154793,7 @@ function SqlUsersListRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -141348,9 +154834,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlUsersListRequest.encode = function encode(message, writer) { + SqlUsersListRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.instance); if (message.project != null && Object.hasOwnProperty.call(message, "project")) @@ -141368,7 +154858,7 @@ * @returns {$protobuf.Writer} Writer */ SqlUsersListRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -141382,9 +154872,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlUsersListRequest.decode = function decode(reader, length, error) { + SqlUsersListRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlUsersListRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -141400,7 +154894,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -141431,13 +154925,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlUsersListRequest.verify = function verify(message) { + SqlUsersListRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; return null; @@ -141451,9 +154949,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlUsersListRequest} SqlUsersListRequest */ - SqlUsersListRequest.fromObject = function fromObject(object) { + SqlUsersListRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlUsersListRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlUsersListRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlUsersListRequest(); if (object.instance != null) message.instance = String(object.instance); @@ -141471,17 +154975,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlUsersListRequest.toObject = function toObject(message, options) { + SqlUsersListRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.instance = ""; object.project = ""; } - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; return object; }; @@ -141542,7 +155050,7 @@ this.databaseRoles = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -141632,9 +155140,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlUsersUpdateRequest.encode = function encode(message, writer) { + SqlUsersUpdateRequest.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.host != null && Object.hasOwnProperty.call(message, "host")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.host); if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) @@ -141649,7 +155161,7 @@ if (message.revokeExistingRoles != null && Object.hasOwnProperty.call(message, "revokeExistingRoles")) writer.uint32(/* id 6, wireType 0 =*/48).bool(message.revokeExistingRoles); if (message.body != null && Object.hasOwnProperty.call(message, "body")) - $root.google.cloud.sql.v1beta4.User.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.User.encode(message.body, writer.uint32(/* id 100, wireType 2 =*/802).fork(), q + 1).ldelim(); return writer; }; @@ -141663,7 +155175,7 @@ * @returns {$protobuf.Writer} Writer */ SqlUsersUpdateRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -141677,9 +155189,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlUsersUpdateRequest.decode = function decode(reader, length, error) { + SqlUsersUpdateRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlUsersUpdateRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -141713,11 +155229,11 @@ break; } case 100: { - message.body = $root.google.cloud.sql.v1beta4.User.decode(reader, reader.uint32()); + message.body = $root.google.cloud.sql.v1beta4.User.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -141748,36 +155264,40 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlUsersUpdateRequest.verify = function verify(message) { + SqlUsersUpdateRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.host != null && message.hasOwnProperty("host")) + if (message.host != null && Object.hasOwnProperty.call(message, "host")) if (!$util.isString(message.host)) return "host: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.databaseRoles != null && message.hasOwnProperty("databaseRoles")) { + if (message.databaseRoles != null && Object.hasOwnProperty.call(message, "databaseRoles")) { if (!Array.isArray(message.databaseRoles)) return "databaseRoles: array expected"; for (var i = 0; i < message.databaseRoles.length; ++i) if (!$util.isString(message.databaseRoles[i])) return "databaseRoles: string[] expected"; } - if (message.revokeExistingRoles != null && message.hasOwnProperty("revokeExistingRoles")) { + if (message.revokeExistingRoles != null && Object.hasOwnProperty.call(message, "revokeExistingRoles")) { properties._revokeExistingRoles = 1; if (typeof message.revokeExistingRoles !== "boolean") return "revokeExistingRoles: boolean expected"; } - if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.User.verify(message.body); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) { + var error = $root.google.cloud.sql.v1beta4.User.verify(message.body, long + 1); if (error) return "body." + error; } @@ -141792,9 +155312,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlUsersUpdateRequest} SqlUsersUpdateRequest */ - SqlUsersUpdateRequest.fromObject = function fromObject(object) { + SqlUsersUpdateRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlUsersUpdateRequest) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlUsersUpdateRequest: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlUsersUpdateRequest(); if (object.host != null) message.host = String(object.host); @@ -141814,9 +155340,9 @@ if (object.revokeExistingRoles != null) message.revokeExistingRoles = Boolean(object.revokeExistingRoles); if (object.body != null) { - if (typeof object.body !== "object") + if (!$util.isObject(object.body)) throw TypeError(".google.cloud.sql.v1beta4.SqlUsersUpdateRequest.body: object expected"); - message.body = $root.google.cloud.sql.v1beta4.User.fromObject(object.body); + message.body = $root.google.cloud.sql.v1beta4.User.fromObject(object.body, long + 1); } return message; }; @@ -141830,9 +155356,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlUsersUpdateRequest.toObject = function toObject(message, options) { + SqlUsersUpdateRequest.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.databaseRoles = []; @@ -141843,26 +155373,26 @@ object.project = ""; object.body = null; } - if (message.host != null && message.hasOwnProperty("host")) + if (message.host != null && Object.hasOwnProperty.call(message, "host")) object.host = message.host; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; if (message.databaseRoles && message.databaseRoles.length) { object.databaseRoles = []; for (var j = 0; j < message.databaseRoles.length; ++j) object.databaseRoles[j] = message.databaseRoles[j]; } - if (message.revokeExistingRoles != null && message.hasOwnProperty("revokeExistingRoles")) { + if (message.revokeExistingRoles != null && Object.hasOwnProperty.call(message, "revokeExistingRoles")) { object.revokeExistingRoles = message.revokeExistingRoles; if (options.oneofs) object._revokeExistingRoles = "revokeExistingRoles"; } - if (message.body != null && message.hasOwnProperty("body")) - object.body = $root.google.cloud.sql.v1beta4.User.toObject(message.body, options); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + object.body = $root.google.cloud.sql.v1beta4.User.toObject(message.body, options, q + 1); return object; }; @@ -141919,7 +155449,7 @@ function UserPasswordValidationPolicy(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -141984,17 +155514,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UserPasswordValidationPolicy.encode = function encode(message, writer) { + UserPasswordValidationPolicy.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.allowedFailedAttempts != null && Object.hasOwnProperty.call(message, "allowedFailedAttempts")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.allowedFailedAttempts); if (message.passwordExpirationDuration != null && Object.hasOwnProperty.call(message, "passwordExpirationDuration")) - $root.google.protobuf.Duration.encode(message.passwordExpirationDuration, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.passwordExpirationDuration, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.enableFailedAttemptsCheck != null && Object.hasOwnProperty.call(message, "enableFailedAttemptsCheck")) writer.uint32(/* id 3, wireType 0 =*/24).bool(message.enableFailedAttemptsCheck); if (message.status != null && Object.hasOwnProperty.call(message, "status")) - $root.google.cloud.sql.v1beta4.PasswordStatus.encode(message.status, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.PasswordStatus.encode(message.status, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.enablePasswordVerification != null && Object.hasOwnProperty.call(message, "enablePasswordVerification")) writer.uint32(/* id 5, wireType 0 =*/40).bool(message.enablePasswordVerification); return writer; @@ -142010,7 +155544,7 @@ * @returns {$protobuf.Writer} Writer */ UserPasswordValidationPolicy.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -142024,9 +155558,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UserPasswordValidationPolicy.decode = function decode(reader, length, error) { + UserPasswordValidationPolicy.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.UserPasswordValidationPolicy(); while (reader.pos < end) { var tag = reader.uint32(); @@ -142038,7 +155576,7 @@ break; } case 2: { - message.passwordExpirationDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.passwordExpirationDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -142046,7 +155584,7 @@ break; } case 4: { - message.status = $root.google.cloud.sql.v1beta4.PasswordStatus.decode(reader, reader.uint32()); + message.status = $root.google.cloud.sql.v1beta4.PasswordStatus.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -142054,7 +155592,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -142085,26 +155623,30 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UserPasswordValidationPolicy.verify = function verify(message) { + UserPasswordValidationPolicy.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.allowedFailedAttempts != null && message.hasOwnProperty("allowedFailedAttempts")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.allowedFailedAttempts != null && Object.hasOwnProperty.call(message, "allowedFailedAttempts")) if (!$util.isInteger(message.allowedFailedAttempts)) return "allowedFailedAttempts: integer expected"; - if (message.passwordExpirationDuration != null && message.hasOwnProperty("passwordExpirationDuration")) { - var error = $root.google.protobuf.Duration.verify(message.passwordExpirationDuration); + if (message.passwordExpirationDuration != null && Object.hasOwnProperty.call(message, "passwordExpirationDuration")) { + var error = $root.google.protobuf.Duration.verify(message.passwordExpirationDuration, long + 1); if (error) return "passwordExpirationDuration." + error; } - if (message.enableFailedAttemptsCheck != null && message.hasOwnProperty("enableFailedAttemptsCheck")) + if (message.enableFailedAttemptsCheck != null && Object.hasOwnProperty.call(message, "enableFailedAttemptsCheck")) if (typeof message.enableFailedAttemptsCheck !== "boolean") return "enableFailedAttemptsCheck: boolean expected"; - if (message.status != null && message.hasOwnProperty("status")) { - var error = $root.google.cloud.sql.v1beta4.PasswordStatus.verify(message.status); + if (message.status != null && Object.hasOwnProperty.call(message, "status")) { + var error = $root.google.cloud.sql.v1beta4.PasswordStatus.verify(message.status, long + 1); if (error) return "status." + error; } - if (message.enablePasswordVerification != null && message.hasOwnProperty("enablePasswordVerification")) + if (message.enablePasswordVerification != null && Object.hasOwnProperty.call(message, "enablePasswordVerification")) if (typeof message.enablePasswordVerification !== "boolean") return "enablePasswordVerification: boolean expected"; return null; @@ -142118,23 +155660,29 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.UserPasswordValidationPolicy} UserPasswordValidationPolicy */ - UserPasswordValidationPolicy.fromObject = function fromObject(object) { + UserPasswordValidationPolicy.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.UserPasswordValidationPolicy) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.UserPasswordValidationPolicy: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.UserPasswordValidationPolicy(); if (object.allowedFailedAttempts != null) message.allowedFailedAttempts = object.allowedFailedAttempts | 0; if (object.passwordExpirationDuration != null) { - if (typeof object.passwordExpirationDuration !== "object") + if (!$util.isObject(object.passwordExpirationDuration)) throw TypeError(".google.cloud.sql.v1beta4.UserPasswordValidationPolicy.passwordExpirationDuration: object expected"); - message.passwordExpirationDuration = $root.google.protobuf.Duration.fromObject(object.passwordExpirationDuration); + message.passwordExpirationDuration = $root.google.protobuf.Duration.fromObject(object.passwordExpirationDuration, long + 1); } if (object.enableFailedAttemptsCheck != null) message.enableFailedAttemptsCheck = Boolean(object.enableFailedAttemptsCheck); if (object.status != null) { - if (typeof object.status !== "object") + if (!$util.isObject(object.status)) throw TypeError(".google.cloud.sql.v1beta4.UserPasswordValidationPolicy.status: object expected"); - message.status = $root.google.cloud.sql.v1beta4.PasswordStatus.fromObject(object.status); + message.status = $root.google.cloud.sql.v1beta4.PasswordStatus.fromObject(object.status, long + 1); } if (object.enablePasswordVerification != null) message.enablePasswordVerification = Boolean(object.enablePasswordVerification); @@ -142150,9 +155698,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - UserPasswordValidationPolicy.toObject = function toObject(message, options) { + UserPasswordValidationPolicy.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.allowedFailedAttempts = 0; @@ -142161,15 +155713,15 @@ object.status = null; object.enablePasswordVerification = false; } - if (message.allowedFailedAttempts != null && message.hasOwnProperty("allowedFailedAttempts")) + if (message.allowedFailedAttempts != null && Object.hasOwnProperty.call(message, "allowedFailedAttempts")) object.allowedFailedAttempts = message.allowedFailedAttempts; - if (message.passwordExpirationDuration != null && message.hasOwnProperty("passwordExpirationDuration")) - object.passwordExpirationDuration = $root.google.protobuf.Duration.toObject(message.passwordExpirationDuration, options); - if (message.enableFailedAttemptsCheck != null && message.hasOwnProperty("enableFailedAttemptsCheck")) + if (message.passwordExpirationDuration != null && Object.hasOwnProperty.call(message, "passwordExpirationDuration")) + object.passwordExpirationDuration = $root.google.protobuf.Duration.toObject(message.passwordExpirationDuration, options, q + 1); + if (message.enableFailedAttemptsCheck != null && Object.hasOwnProperty.call(message, "enableFailedAttemptsCheck")) object.enableFailedAttemptsCheck = message.enableFailedAttemptsCheck; - if (message.status != null && message.hasOwnProperty("status")) - object.status = $root.google.cloud.sql.v1beta4.PasswordStatus.toObject(message.status, options); - if (message.enablePasswordVerification != null && message.hasOwnProperty("enablePasswordVerification")) + if (message.status != null && Object.hasOwnProperty.call(message, "status")) + object.status = $root.google.cloud.sql.v1beta4.PasswordStatus.toObject(message.status, options, q + 1); + if (message.enablePasswordVerification != null && Object.hasOwnProperty.call(message, "enablePasswordVerification")) object.enablePasswordVerification = message.enablePasswordVerification; return object; }; @@ -142224,7 +155776,7 @@ function PasswordStatus(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -142265,13 +155817,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PasswordStatus.encode = function encode(message, writer) { + PasswordStatus.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.locked != null && Object.hasOwnProperty.call(message, "locked")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.locked); if (message.passwordExpirationTime != null && Object.hasOwnProperty.call(message, "passwordExpirationTime")) - $root.google.protobuf.Timestamp.encode(message.passwordExpirationTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.passwordExpirationTime, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -142285,7 +155841,7 @@ * @returns {$protobuf.Writer} Writer */ PasswordStatus.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -142299,9 +155855,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PasswordStatus.decode = function decode(reader, length, error) { + PasswordStatus.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.PasswordStatus(); while (reader.pos < end) { var tag = reader.uint32(); @@ -142313,11 +155873,11 @@ break; } case 2: { - message.passwordExpirationTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.passwordExpirationTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -142348,14 +155908,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PasswordStatus.verify = function verify(message) { + PasswordStatus.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.locked != null && message.hasOwnProperty("locked")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.locked != null && Object.hasOwnProperty.call(message, "locked")) if (typeof message.locked !== "boolean") return "locked: boolean expected"; - if (message.passwordExpirationTime != null && message.hasOwnProperty("passwordExpirationTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.passwordExpirationTime); + if (message.passwordExpirationTime != null && Object.hasOwnProperty.call(message, "passwordExpirationTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.passwordExpirationTime, long + 1); if (error) return "passwordExpirationTime." + error; } @@ -142370,16 +155934,22 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.PasswordStatus} PasswordStatus */ - PasswordStatus.fromObject = function fromObject(object) { + PasswordStatus.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.PasswordStatus) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.PasswordStatus: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.PasswordStatus(); if (object.locked != null) message.locked = Boolean(object.locked); if (object.passwordExpirationTime != null) { - if (typeof object.passwordExpirationTime !== "object") + if (!$util.isObject(object.passwordExpirationTime)) throw TypeError(".google.cloud.sql.v1beta4.PasswordStatus.passwordExpirationTime: object expected"); - message.passwordExpirationTime = $root.google.protobuf.Timestamp.fromObject(object.passwordExpirationTime); + message.passwordExpirationTime = $root.google.protobuf.Timestamp.fromObject(object.passwordExpirationTime, long + 1); } return message; }; @@ -142393,18 +155963,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PasswordStatus.toObject = function toObject(message, options) { + PasswordStatus.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.locked = false; object.passwordExpirationTime = null; } - if (message.locked != null && message.hasOwnProperty("locked")) + if (message.locked != null && Object.hasOwnProperty.call(message, "locked")) object.locked = message.locked; - if (message.passwordExpirationTime != null && message.hasOwnProperty("passwordExpirationTime")) - object.passwordExpirationTime = $root.google.protobuf.Timestamp.toObject(message.passwordExpirationTime, options); + if (message.passwordExpirationTime != null && Object.hasOwnProperty.call(message, "passwordExpirationTime")) + object.passwordExpirationTime = $root.google.protobuf.Timestamp.toObject(message.passwordExpirationTime, options, q + 1); return object; }; @@ -142471,7 +156045,7 @@ this.databaseRoles = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -142634,9 +156208,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - User.encode = function encode(message, writer) { + User.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.password != null && Object.hasOwnProperty.call(message, "password")) @@ -142654,11 +156232,11 @@ if (message.type != null && Object.hasOwnProperty.call(message, "type")) writer.uint32(/* id 8, wireType 0 =*/64).int32(message.type); if (message.sqlserverUserDetails != null && Object.hasOwnProperty.call(message, "sqlserverUserDetails")) - $root.google.cloud.sql.v1beta4.SqlServerUserDetails.encode(message.sqlserverUserDetails, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.SqlServerUserDetails.encode(message.sqlserverUserDetails, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); if (message.iamEmail != null && Object.hasOwnProperty.call(message, "iamEmail")) writer.uint32(/* id 11, wireType 2 =*/90).string(message.iamEmail); if (message.passwordPolicy != null && Object.hasOwnProperty.call(message, "passwordPolicy")) - $root.google.cloud.sql.v1beta4.UserPasswordValidationPolicy.encode(message.passwordPolicy, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.UserPasswordValidationPolicy.encode(message.passwordPolicy, writer.uint32(/* id 12, wireType 2 =*/98).fork(), q + 1).ldelim(); if (message.dualPasswordType != null && Object.hasOwnProperty.call(message, "dualPasswordType")) writer.uint32(/* id 13, wireType 0 =*/104).int32(message.dualPasswordType); if (message.iamStatus != null && Object.hasOwnProperty.call(message, "iamStatus")) @@ -142679,7 +156257,7 @@ * @returns {$protobuf.Writer} Writer */ User.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -142693,9 +156271,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - User.decode = function decode(reader, length, error) { + User.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.User(); while (reader.pos < end) { var tag = reader.uint32(); @@ -142735,7 +156317,7 @@ break; } case 9: { - message.sqlserverUserDetails = $root.google.cloud.sql.v1beta4.SqlServerUserDetails.decode(reader, reader.uint32()); + message.sqlserverUserDetails = $root.google.cloud.sql.v1beta4.SqlServerUserDetails.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { @@ -142743,7 +156325,7 @@ break; } case 12: { - message.passwordPolicy = $root.google.cloud.sql.v1beta4.UserPasswordValidationPolicy.decode(reader, reader.uint32()); + message.passwordPolicy = $root.google.cloud.sql.v1beta4.UserPasswordValidationPolicy.decode(reader, reader.uint32(), undefined, long + 1); break; } case 13: { @@ -142761,7 +156343,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -142792,32 +156374,36 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - User.verify = function verify(message) { + User.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.password != null && message.hasOwnProperty("password")) + if (message.password != null && Object.hasOwnProperty.call(message, "password")) if (!$util.isString(message.password)) return "password: string expected"; - if (message.etag != null && message.hasOwnProperty("etag")) + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) if (!$util.isString(message.etag)) return "etag: string expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.host != null && message.hasOwnProperty("host")) + if (message.host != null && Object.hasOwnProperty.call(message, "host")) if (!$util.isString(message.host)) return "host: string expected"; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) if (!$util.isString(message.instance)) return "instance: string expected"; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) if (!$util.isString(message.project)) return "project: string expected"; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) switch (message.type) { default: return "type: enum value expected"; @@ -142827,26 +156413,27 @@ case 3: case 4: case 5: + case 6: case 7: break; } - if (message.sqlserverUserDetails != null && message.hasOwnProperty("sqlserverUserDetails")) { + if (message.sqlserverUserDetails != null && Object.hasOwnProperty.call(message, "sqlserverUserDetails")) { properties.userDetails = 1; { - var error = $root.google.cloud.sql.v1beta4.SqlServerUserDetails.verify(message.sqlserverUserDetails); + var error = $root.google.cloud.sql.v1beta4.SqlServerUserDetails.verify(message.sqlserverUserDetails, long + 1); if (error) return "sqlserverUserDetails." + error; } } - if (message.iamEmail != null && message.hasOwnProperty("iamEmail")) + if (message.iamEmail != null && Object.hasOwnProperty.call(message, "iamEmail")) if (!$util.isString(message.iamEmail)) return "iamEmail: string expected"; - if (message.passwordPolicy != null && message.hasOwnProperty("passwordPolicy")) { - var error = $root.google.cloud.sql.v1beta4.UserPasswordValidationPolicy.verify(message.passwordPolicy); + if (message.passwordPolicy != null && Object.hasOwnProperty.call(message, "passwordPolicy")) { + var error = $root.google.cloud.sql.v1beta4.UserPasswordValidationPolicy.verify(message.passwordPolicy, long + 1); if (error) return "passwordPolicy." + error; } - if (message.dualPasswordType != null && message.hasOwnProperty("dualPasswordType")) { + if (message.dualPasswordType != null && Object.hasOwnProperty.call(message, "dualPasswordType")) { properties._dualPasswordType = 1; switch (message.dualPasswordType) { default: @@ -142858,7 +156445,7 @@ break; } } - if (message.iamStatus != null && message.hasOwnProperty("iamStatus")) { + if (message.iamStatus != null && Object.hasOwnProperty.call(message, "iamStatus")) { properties._iamStatus = 1; switch (message.iamStatus) { default: @@ -142869,7 +156456,7 @@ break; } } - if (message.databaseRoles != null && message.hasOwnProperty("databaseRoles")) { + if (message.databaseRoles != null && Object.hasOwnProperty.call(message, "databaseRoles")) { if (!Array.isArray(message.databaseRoles)) return "databaseRoles: array expected"; for (var i = 0; i < message.databaseRoles.length; ++i) @@ -142887,9 +156474,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.User} User */ - User.fromObject = function fromObject(object) { + User.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.User) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.User: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.User(); if (object.kind != null) message.kind = String(object.kind); @@ -142936,22 +156529,26 @@ case 5: message.type = 5; break; + case "CLOUD_IAM_WORKFORCE_IDENTITY": + case 6: + message.type = 6; + break; case "ENTRAID_USER": case 7: message.type = 7; break; } if (object.sqlserverUserDetails != null) { - if (typeof object.sqlserverUserDetails !== "object") + if (!$util.isObject(object.sqlserverUserDetails)) throw TypeError(".google.cloud.sql.v1beta4.User.sqlserverUserDetails: object expected"); - message.sqlserverUserDetails = $root.google.cloud.sql.v1beta4.SqlServerUserDetails.fromObject(object.sqlserverUserDetails); + message.sqlserverUserDetails = $root.google.cloud.sql.v1beta4.SqlServerUserDetails.fromObject(object.sqlserverUserDetails, long + 1); } if (object.iamEmail != null) message.iamEmail = String(object.iamEmail); if (object.passwordPolicy != null) { - if (typeof object.passwordPolicy !== "object") + if (!$util.isObject(object.passwordPolicy)) throw TypeError(".google.cloud.sql.v1beta4.User.passwordPolicy: object expected"); - message.passwordPolicy = $root.google.cloud.sql.v1beta4.UserPasswordValidationPolicy.fromObject(object.passwordPolicy); + message.passwordPolicy = $root.google.cloud.sql.v1beta4.UserPasswordValidationPolicy.fromObject(object.passwordPolicy, long + 1); } switch (object.dualPasswordType) { default: @@ -143016,9 +156613,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - User.toObject = function toObject(message, options) { + User.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.databaseRoles = []; @@ -143034,37 +156635,37 @@ object.iamEmail = ""; object.passwordPolicy = null; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.password != null && message.hasOwnProperty("password")) + if (message.password != null && Object.hasOwnProperty.call(message, "password")) object.password = message.password; - if (message.etag != null && message.hasOwnProperty("etag")) + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) object.etag = message.etag; - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.host != null && message.hasOwnProperty("host")) + if (message.host != null && Object.hasOwnProperty.call(message, "host")) object.host = message.host; - if (message.instance != null && message.hasOwnProperty("instance")) + if (message.instance != null && Object.hasOwnProperty.call(message, "instance")) object.instance = message.instance; - if (message.project != null && message.hasOwnProperty("project")) + if (message.project != null && Object.hasOwnProperty.call(message, "project")) object.project = message.project; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = options.enums === String ? $root.google.cloud.sql.v1beta4.User.SqlUserType[message.type] === undefined ? message.type : $root.google.cloud.sql.v1beta4.User.SqlUserType[message.type] : message.type; - if (message.sqlserverUserDetails != null && message.hasOwnProperty("sqlserverUserDetails")) { - object.sqlserverUserDetails = $root.google.cloud.sql.v1beta4.SqlServerUserDetails.toObject(message.sqlserverUserDetails, options); + if (message.sqlserverUserDetails != null && Object.hasOwnProperty.call(message, "sqlserverUserDetails")) { + object.sqlserverUserDetails = $root.google.cloud.sql.v1beta4.SqlServerUserDetails.toObject(message.sqlserverUserDetails, options, q + 1); if (options.oneofs) object.userDetails = "sqlserverUserDetails"; } - if (message.iamEmail != null && message.hasOwnProperty("iamEmail")) + if (message.iamEmail != null && Object.hasOwnProperty.call(message, "iamEmail")) object.iamEmail = message.iamEmail; - if (message.passwordPolicy != null && message.hasOwnProperty("passwordPolicy")) - object.passwordPolicy = $root.google.cloud.sql.v1beta4.UserPasswordValidationPolicy.toObject(message.passwordPolicy, options); - if (message.dualPasswordType != null && message.hasOwnProperty("dualPasswordType")) { + if (message.passwordPolicy != null && Object.hasOwnProperty.call(message, "passwordPolicy")) + object.passwordPolicy = $root.google.cloud.sql.v1beta4.UserPasswordValidationPolicy.toObject(message.passwordPolicy, options, q + 1); + if (message.dualPasswordType != null && Object.hasOwnProperty.call(message, "dualPasswordType")) { object.dualPasswordType = options.enums === String ? $root.google.cloud.sql.v1beta4.User.DualPasswordType[message.dualPasswordType] === undefined ? message.dualPasswordType : $root.google.cloud.sql.v1beta4.User.DualPasswordType[message.dualPasswordType] : message.dualPasswordType; if (options.oneofs) object._dualPasswordType = "dualPasswordType"; } - if (message.iamStatus != null && message.hasOwnProperty("iamStatus")) { + if (message.iamStatus != null && Object.hasOwnProperty.call(message, "iamStatus")) { object.iamStatus = options.enums === String ? $root.google.cloud.sql.v1beta4.User.IamStatus[message.iamStatus] === undefined ? message.iamStatus : $root.google.cloud.sql.v1beta4.User.IamStatus[message.iamStatus] : message.iamStatus; if (options.oneofs) object._iamStatus = "iamStatus"; @@ -143113,6 +156714,7 @@ * @property {number} CLOUD_IAM_GROUP=3 CLOUD_IAM_GROUP value * @property {number} CLOUD_IAM_GROUP_USER=4 CLOUD_IAM_GROUP_USER value * @property {number} CLOUD_IAM_GROUP_SERVICE_ACCOUNT=5 CLOUD_IAM_GROUP_SERVICE_ACCOUNT value + * @property {number} CLOUD_IAM_WORKFORCE_IDENTITY=6 CLOUD_IAM_WORKFORCE_IDENTITY value * @property {number} ENTRAID_USER=7 ENTRAID_USER value */ User.SqlUserType = (function() { @@ -143123,6 +156725,7 @@ values[valuesById[3] = "CLOUD_IAM_GROUP"] = 3; values[valuesById[4] = "CLOUD_IAM_GROUP_USER"] = 4; values[valuesById[5] = "CLOUD_IAM_GROUP_SERVICE_ACCOUNT"] = 5; + values[valuesById[6] = "CLOUD_IAM_WORKFORCE_IDENTITY"] = 6; values[valuesById[7] = "ENTRAID_USER"] = 7; return values; })(); @@ -143186,7 +156789,7 @@ this.serverRoles = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -143227,9 +156830,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SqlServerUserDetails.encode = function encode(message, writer) { + SqlServerUserDetails.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.disabled != null && Object.hasOwnProperty.call(message, "disabled")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.disabled); if (message.serverRoles != null && message.serverRoles.length) @@ -143248,7 +156855,7 @@ * @returns {$protobuf.Writer} Writer */ SqlServerUserDetails.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -143262,9 +156869,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SqlServerUserDetails.decode = function decode(reader, length, error) { + SqlServerUserDetails.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.SqlServerUserDetails(); while (reader.pos < end) { var tag = reader.uint32(); @@ -143282,7 +156893,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -143313,13 +156924,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SqlServerUserDetails.verify = function verify(message) { + SqlServerUserDetails.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.disabled != null && message.hasOwnProperty("disabled")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.disabled != null && Object.hasOwnProperty.call(message, "disabled")) if (typeof message.disabled !== "boolean") return "disabled: boolean expected"; - if (message.serverRoles != null && message.hasOwnProperty("serverRoles")) { + if (message.serverRoles != null && Object.hasOwnProperty.call(message, "serverRoles")) { if (!Array.isArray(message.serverRoles)) return "serverRoles: array expected"; for (var i = 0; i < message.serverRoles.length; ++i) @@ -143337,9 +156952,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.SqlServerUserDetails} SqlServerUserDetails */ - SqlServerUserDetails.fromObject = function fromObject(object) { + SqlServerUserDetails.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.SqlServerUserDetails) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.SqlServerUserDetails: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.SqlServerUserDetails(); if (object.disabled != null) message.disabled = Boolean(object.disabled); @@ -143362,15 +156983,19 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SqlServerUserDetails.toObject = function toObject(message, options) { + SqlServerUserDetails.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.serverRoles = []; if (options.defaults) object.disabled = false; - if (message.disabled != null && message.hasOwnProperty("disabled")) + if (message.disabled != null && Object.hasOwnProperty.call(message, "disabled")) object.disabled = message.disabled; if (message.serverRoles && message.serverRoles.length) { object.serverRoles = []; @@ -143432,7 +157057,7 @@ this.items = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -143481,14 +157106,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UsersListResponse.encode = function encode(message, writer) { + UsersListResponse.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.items != null && message.items.length) for (var i = 0; i < message.items.length; ++i) - $root.google.cloud.sql.v1beta4.User.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.sql.v1beta4.User.encode(message.items[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.nextPageToken); return writer; @@ -143504,7 +157133,7 @@ * @returns {$protobuf.Writer} Writer */ UsersListResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -143518,9 +157147,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UsersListResponse.decode = function decode(reader, length, error) { + UsersListResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.sql.v1beta4.UsersListResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -143534,7 +157167,7 @@ case 2: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.sql.v1beta4.User.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.sql.v1beta4.User.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { @@ -143542,7 +157175,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -143573,22 +157206,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UsersListResponse.verify = function verify(message) { + UsersListResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.items != null && message.hasOwnProperty("items")) { + if (message.items != null && Object.hasOwnProperty.call(message, "items")) { if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.sql.v1beta4.User.verify(message.items[i]); + var error = $root.google.cloud.sql.v1beta4.User.verify(message.items[i], long + 1); if (error) return "items." + error; } } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) if (!$util.isString(message.nextPageToken)) return "nextPageToken: string expected"; return null; @@ -143602,9 +157239,15 @@ * @param {Object.} object Plain object * @returns {google.cloud.sql.v1beta4.UsersListResponse} UsersListResponse */ - UsersListResponse.fromObject = function fromObject(object) { + UsersListResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.sql.v1beta4.UsersListResponse) return object; + if (!$util.isObject(object)) + throw TypeError(".google.cloud.sql.v1beta4.UsersListResponse: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.sql.v1beta4.UsersListResponse(); if (object.kind != null) message.kind = String(object.kind); @@ -143613,9 +157256,9 @@ throw TypeError(".google.cloud.sql.v1beta4.UsersListResponse.items: array expected"); message.items = []; for (var i = 0; i < object.items.length; ++i) { - if (typeof object.items[i] !== "object") + if (!$util.isObject(object.items[i])) throw TypeError(".google.cloud.sql.v1beta4.UsersListResponse.items: object expected"); - message.items[i] = $root.google.cloud.sql.v1beta4.User.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.sql.v1beta4.User.fromObject(object.items[i], long + 1); } } if (object.nextPageToken != null) @@ -143632,9 +157275,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - UsersListResponse.toObject = function toObject(message, options) { + UsersListResponse.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.items = []; @@ -143642,14 +157289,14 @@ object.kind = ""; object.nextPageToken = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; if (message.items && message.items.length) { object.items = []; for (var j = 0; j < message.items.length; ++j) - object.items[j] = $root.google.cloud.sql.v1beta4.User.toObject(message.items[j], options); + object.items[j] = $root.google.cloud.sql.v1beta4.User.toObject(message.items[j], options, q + 1); } - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) object.nextPageToken = message.nextPageToken; return object; }; @@ -143723,7 +157370,7 @@ this.rules = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -143764,12 +157411,16 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Http.encode = function encode(message, writer) { + Http.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.rules != null && message.rules.length) for (var i = 0; i < message.rules.length; ++i) - $root.google.api.HttpRule.encode(message.rules[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.api.HttpRule.encode(message.rules[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.fullyDecodeReservedExpansion != null && Object.hasOwnProperty.call(message, "fullyDecodeReservedExpansion")) writer.uint32(/* id 2, wireType 0 =*/16).bool(message.fullyDecodeReservedExpansion); return writer; @@ -143785,7 +157436,7 @@ * @returns {$protobuf.Writer} Writer */ Http.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -143799,9 +157450,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Http.decode = function decode(reader, length, error) { + Http.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.Http(); while (reader.pos < end) { var tag = reader.uint32(); @@ -143811,7 +157466,7 @@ case 1: { if (!(message.rules && message.rules.length)) message.rules = []; - message.rules.push($root.google.api.HttpRule.decode(reader, reader.uint32())); + message.rules.push($root.google.api.HttpRule.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -143819,7 +157474,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -143850,19 +157505,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Http.verify = function verify(message) { + Http.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.rules != null && message.hasOwnProperty("rules")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.rules != null && Object.hasOwnProperty.call(message, "rules")) { if (!Array.isArray(message.rules)) return "rules: array expected"; for (var i = 0; i < message.rules.length; ++i) { - var error = $root.google.api.HttpRule.verify(message.rules[i]); + var error = $root.google.api.HttpRule.verify(message.rules[i], long + 1); if (error) return "rules." + error; } } - if (message.fullyDecodeReservedExpansion != null && message.hasOwnProperty("fullyDecodeReservedExpansion")) + if (message.fullyDecodeReservedExpansion != null && Object.hasOwnProperty.call(message, "fullyDecodeReservedExpansion")) if (typeof message.fullyDecodeReservedExpansion !== "boolean") return "fullyDecodeReservedExpansion: boolean expected"; return null; @@ -143876,18 +157535,24 @@ * @param {Object.} object Plain object * @returns {google.api.Http} Http */ - Http.fromObject = function fromObject(object) { + Http.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.Http) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.Http: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.Http(); if (object.rules) { if (!Array.isArray(object.rules)) throw TypeError(".google.api.Http.rules: array expected"); message.rules = []; for (var i = 0; i < object.rules.length; ++i) { - if (typeof object.rules[i] !== "object") + if (!$util.isObject(object.rules[i])) throw TypeError(".google.api.Http.rules: object expected"); - message.rules[i] = $root.google.api.HttpRule.fromObject(object.rules[i]); + message.rules[i] = $root.google.api.HttpRule.fromObject(object.rules[i], long + 1); } } if (object.fullyDecodeReservedExpansion != null) @@ -143904,9 +157569,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Http.toObject = function toObject(message, options) { + Http.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.rules = []; @@ -143915,9 +157584,9 @@ if (message.rules && message.rules.length) { object.rules = []; for (var j = 0; j < message.rules.length; ++j) - object.rules[j] = $root.google.api.HttpRule.toObject(message.rules[j], options); + object.rules[j] = $root.google.api.HttpRule.toObject(message.rules[j], options, q + 1); } - if (message.fullyDecodeReservedExpansion != null && message.hasOwnProperty("fullyDecodeReservedExpansion")) + if (message.fullyDecodeReservedExpansion != null && Object.hasOwnProperty.call(message, "fullyDecodeReservedExpansion")) object.fullyDecodeReservedExpansion = message.fullyDecodeReservedExpansion; return object; }; @@ -143981,7 +157650,7 @@ this.additionalBindings = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -144100,9 +157769,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - HttpRule.encode = function encode(message, writer) { + HttpRule.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.selector != null && Object.hasOwnProperty.call(message, "selector")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.selector); if (message.get != null && Object.hasOwnProperty.call(message, "get")) @@ -144118,10 +157791,10 @@ if (message.body != null && Object.hasOwnProperty.call(message, "body")) writer.uint32(/* id 7, wireType 2 =*/58).string(message.body); if (message.custom != null && Object.hasOwnProperty.call(message, "custom")) - $root.google.api.CustomHttpPattern.encode(message.custom, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.api.CustomHttpPattern.encode(message.custom, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); if (message.additionalBindings != null && message.additionalBindings.length) for (var i = 0; i < message.additionalBindings.length; ++i) - $root.google.api.HttpRule.encode(message.additionalBindings[i], writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim(); + $root.google.api.HttpRule.encode(message.additionalBindings[i], writer.uint32(/* id 11, wireType 2 =*/90).fork(), q + 1).ldelim(); if (message.responseBody != null && Object.hasOwnProperty.call(message, "responseBody")) writer.uint32(/* id 12, wireType 2 =*/98).string(message.responseBody); return writer; @@ -144137,7 +157810,7 @@ * @returns {$protobuf.Writer} Writer */ HttpRule.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -144151,9 +157824,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - HttpRule.decode = function decode(reader, length, error) { + HttpRule.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.HttpRule(); while (reader.pos < end) { var tag = reader.uint32(); @@ -144185,7 +157862,7 @@ break; } case 8: { - message.custom = $root.google.api.CustomHttpPattern.decode(reader, reader.uint32()); + message.custom = $root.google.api.CustomHttpPattern.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { @@ -144199,11 +157876,11 @@ case 11: { if (!(message.additionalBindings && message.additionalBindings.length)) message.additionalBindings = []; - message.additionalBindings.push($root.google.api.HttpRule.decode(reader, reader.uint32())); + message.additionalBindings.push($root.google.api.HttpRule.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -144234,67 +157911,71 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - HttpRule.verify = function verify(message) { + HttpRule.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; var properties = {}; - if (message.selector != null && message.hasOwnProperty("selector")) + if (message.selector != null && Object.hasOwnProperty.call(message, "selector")) if (!$util.isString(message.selector)) return "selector: string expected"; - if (message.get != null && message.hasOwnProperty("get")) { + if (message.get != null && Object.hasOwnProperty.call(message, "get")) { properties.pattern = 1; if (!$util.isString(message.get)) return "get: string expected"; } - if (message.put != null && message.hasOwnProperty("put")) { + if (message.put != null && Object.hasOwnProperty.call(message, "put")) { if (properties.pattern === 1) return "pattern: multiple values"; properties.pattern = 1; if (!$util.isString(message.put)) return "put: string expected"; } - if (message.post != null && message.hasOwnProperty("post")) { + if (message.post != null && Object.hasOwnProperty.call(message, "post")) { if (properties.pattern === 1) return "pattern: multiple values"; properties.pattern = 1; if (!$util.isString(message.post)) return "post: string expected"; } - if (message["delete"] != null && message.hasOwnProperty("delete")) { + if (message["delete"] != null && Object.hasOwnProperty.call(message, "delete")) { if (properties.pattern === 1) return "pattern: multiple values"; properties.pattern = 1; if (!$util.isString(message["delete"])) return "delete: string expected"; } - if (message.patch != null && message.hasOwnProperty("patch")) { + if (message.patch != null && Object.hasOwnProperty.call(message, "patch")) { if (properties.pattern === 1) return "pattern: multiple values"; properties.pattern = 1; if (!$util.isString(message.patch)) return "patch: string expected"; } - if (message.custom != null && message.hasOwnProperty("custom")) { + if (message.custom != null && Object.hasOwnProperty.call(message, "custom")) { if (properties.pattern === 1) return "pattern: multiple values"; properties.pattern = 1; { - var error = $root.google.api.CustomHttpPattern.verify(message.custom); + var error = $root.google.api.CustomHttpPattern.verify(message.custom, long + 1); if (error) return "custom." + error; } } - if (message.body != null && message.hasOwnProperty("body")) + if (message.body != null && Object.hasOwnProperty.call(message, "body")) if (!$util.isString(message.body)) return "body: string expected"; - if (message.responseBody != null && message.hasOwnProperty("responseBody")) + if (message.responseBody != null && Object.hasOwnProperty.call(message, "responseBody")) if (!$util.isString(message.responseBody)) return "responseBody: string expected"; - if (message.additionalBindings != null && message.hasOwnProperty("additionalBindings")) { + if (message.additionalBindings != null && Object.hasOwnProperty.call(message, "additionalBindings")) { if (!Array.isArray(message.additionalBindings)) return "additionalBindings: array expected"; for (var i = 0; i < message.additionalBindings.length; ++i) { - var error = $root.google.api.HttpRule.verify(message.additionalBindings[i]); + var error = $root.google.api.HttpRule.verify(message.additionalBindings[i], long + 1); if (error) return "additionalBindings." + error; } @@ -144310,9 +157991,15 @@ * @param {Object.} object Plain object * @returns {google.api.HttpRule} HttpRule */ - HttpRule.fromObject = function fromObject(object) { + HttpRule.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.HttpRule) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.HttpRule: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.HttpRule(); if (object.selector != null) message.selector = String(object.selector); @@ -144327,9 +158014,9 @@ if (object.patch != null) message.patch = String(object.patch); if (object.custom != null) { - if (typeof object.custom !== "object") + if (!$util.isObject(object.custom)) throw TypeError(".google.api.HttpRule.custom: object expected"); - message.custom = $root.google.api.CustomHttpPattern.fromObject(object.custom); + message.custom = $root.google.api.CustomHttpPattern.fromObject(object.custom, long + 1); } if (object.body != null) message.body = String(object.body); @@ -144340,9 +158027,9 @@ throw TypeError(".google.api.HttpRule.additionalBindings: array expected"); message.additionalBindings = []; for (var i = 0; i < object.additionalBindings.length; ++i) { - if (typeof object.additionalBindings[i] !== "object") + if (!$util.isObject(object.additionalBindings[i])) throw TypeError(".google.api.HttpRule.additionalBindings: object expected"); - message.additionalBindings[i] = $root.google.api.HttpRule.fromObject(object.additionalBindings[i]); + message.additionalBindings[i] = $root.google.api.HttpRule.fromObject(object.additionalBindings[i], long + 1); } } return message; @@ -144357,9 +158044,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - HttpRule.toObject = function toObject(message, options) { + HttpRule.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.additionalBindings = []; @@ -144368,46 +158059,46 @@ object.body = ""; object.responseBody = ""; } - if (message.selector != null && message.hasOwnProperty("selector")) + if (message.selector != null && Object.hasOwnProperty.call(message, "selector")) object.selector = message.selector; - if (message.get != null && message.hasOwnProperty("get")) { + if (message.get != null && Object.hasOwnProperty.call(message, "get")) { object.get = message.get; if (options.oneofs) object.pattern = "get"; } - if (message.put != null && message.hasOwnProperty("put")) { + if (message.put != null && Object.hasOwnProperty.call(message, "put")) { object.put = message.put; if (options.oneofs) object.pattern = "put"; } - if (message.post != null && message.hasOwnProperty("post")) { + if (message.post != null && Object.hasOwnProperty.call(message, "post")) { object.post = message.post; if (options.oneofs) object.pattern = "post"; } - if (message["delete"] != null && message.hasOwnProperty("delete")) { + if (message["delete"] != null && Object.hasOwnProperty.call(message, "delete")) { object["delete"] = message["delete"]; if (options.oneofs) object.pattern = "delete"; } - if (message.patch != null && message.hasOwnProperty("patch")) { + if (message.patch != null && Object.hasOwnProperty.call(message, "patch")) { object.patch = message.patch; if (options.oneofs) object.pattern = "patch"; } - if (message.body != null && message.hasOwnProperty("body")) + if (message.body != null && Object.hasOwnProperty.call(message, "body")) object.body = message.body; - if (message.custom != null && message.hasOwnProperty("custom")) { - object.custom = $root.google.api.CustomHttpPattern.toObject(message.custom, options); + if (message.custom != null && Object.hasOwnProperty.call(message, "custom")) { + object.custom = $root.google.api.CustomHttpPattern.toObject(message.custom, options, q + 1); if (options.oneofs) object.pattern = "custom"; } if (message.additionalBindings && message.additionalBindings.length) { object.additionalBindings = []; for (var j = 0; j < message.additionalBindings.length; ++j) - object.additionalBindings[j] = $root.google.api.HttpRule.toObject(message.additionalBindings[j], options); + object.additionalBindings[j] = $root.google.api.HttpRule.toObject(message.additionalBindings[j], options, q + 1); } - if (message.responseBody != null && message.hasOwnProperty("responseBody")) + if (message.responseBody != null && Object.hasOwnProperty.call(message, "responseBody")) object.responseBody = message.responseBody; return object; }; @@ -144462,7 +158153,7 @@ function CustomHttpPattern(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -144503,9 +158194,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CustomHttpPattern.encode = function encode(message, writer) { + CustomHttpPattern.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); if (message.path != null && Object.hasOwnProperty.call(message, "path")) @@ -144523,7 +158218,7 @@ * @returns {$protobuf.Writer} Writer */ CustomHttpPattern.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -144537,9 +158232,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CustomHttpPattern.decode = function decode(reader, length, error) { + CustomHttpPattern.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.CustomHttpPattern(); while (reader.pos < end) { var tag = reader.uint32(); @@ -144555,7 +158254,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -144586,13 +158285,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CustomHttpPattern.verify = function verify(message) { + CustomHttpPattern.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) if (!$util.isString(message.kind)) return "kind: string expected"; - if (message.path != null && message.hasOwnProperty("path")) + if (message.path != null && Object.hasOwnProperty.call(message, "path")) if (!$util.isString(message.path)) return "path: string expected"; return null; @@ -144606,9 +158309,15 @@ * @param {Object.} object Plain object * @returns {google.api.CustomHttpPattern} CustomHttpPattern */ - CustomHttpPattern.fromObject = function fromObject(object) { + CustomHttpPattern.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.CustomHttpPattern) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.CustomHttpPattern: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.CustomHttpPattern(); if (object.kind != null) message.kind = String(object.kind); @@ -144626,17 +158335,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CustomHttpPattern.toObject = function toObject(message, options) { + CustomHttpPattern.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.kind = ""; object.path = ""; } - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) object.kind = message.kind; - if (message.path != null && message.hasOwnProperty("path")) + if (message.path != null && Object.hasOwnProperty.call(message, "path")) object.path = message.path; return object; }; @@ -144678,6 +158391,7 @@ * @interface ICommonLanguageSettings * @property {string|null} [referenceDocsUri] CommonLanguageSettings referenceDocsUri * @property {Array.|null} [destinations] CommonLanguageSettings destinations + * @property {google.api.ISelectiveGapicGeneration|null} [selectiveGapicGeneration] CommonLanguageSettings selectiveGapicGeneration */ /** @@ -144692,7 +158406,7 @@ this.destinations = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -144712,6 +158426,14 @@ */ CommonLanguageSettings.prototype.destinations = $util.emptyArray; + /** + * CommonLanguageSettings selectiveGapicGeneration. + * @member {google.api.ISelectiveGapicGeneration|null|undefined} selectiveGapicGeneration + * @memberof google.api.CommonLanguageSettings + * @instance + */ + CommonLanguageSettings.prototype.selectiveGapicGeneration = null; + /** * Creates a new CommonLanguageSettings instance using the specified properties. * @function create @@ -144733,9 +158455,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CommonLanguageSettings.encode = function encode(message, writer) { + CommonLanguageSettings.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.referenceDocsUri != null && Object.hasOwnProperty.call(message, "referenceDocsUri")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.referenceDocsUri); if (message.destinations != null && message.destinations.length) { @@ -144744,6 +158470,8 @@ writer.int32(message.destinations[i]); writer.ldelim(); } + if (message.selectiveGapicGeneration != null && Object.hasOwnProperty.call(message, "selectiveGapicGeneration")) + $root.google.api.SelectiveGapicGeneration.encode(message.selectiveGapicGeneration, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -144757,7 +158485,7 @@ * @returns {$protobuf.Writer} Writer */ CommonLanguageSettings.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -144771,9 +158499,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CommonLanguageSettings.decode = function decode(reader, length, error) { + CommonLanguageSettings.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.CommonLanguageSettings(); while (reader.pos < end) { var tag = reader.uint32(); @@ -144795,8 +158527,12 @@ message.destinations.push(reader.int32()); break; } + case 3: { + message.selectiveGapicGeneration = $root.google.api.SelectiveGapicGeneration.decode(reader, reader.uint32(), undefined, long + 1); + break; + } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -144827,13 +158563,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CommonLanguageSettings.verify = function verify(message) { + CommonLanguageSettings.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.referenceDocsUri != null && message.hasOwnProperty("referenceDocsUri")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.referenceDocsUri != null && Object.hasOwnProperty.call(message, "referenceDocsUri")) if (!$util.isString(message.referenceDocsUri)) return "referenceDocsUri: string expected"; - if (message.destinations != null && message.hasOwnProperty("destinations")) { + if (message.destinations != null && Object.hasOwnProperty.call(message, "destinations")) { if (!Array.isArray(message.destinations)) return "destinations: array expected"; for (var i = 0; i < message.destinations.length; ++i) @@ -144846,6 +158586,11 @@ break; } } + if (message.selectiveGapicGeneration != null && Object.hasOwnProperty.call(message, "selectiveGapicGeneration")) { + var error = $root.google.api.SelectiveGapicGeneration.verify(message.selectiveGapicGeneration, long + 1); + if (error) + return "selectiveGapicGeneration." + error; + } return null; }; @@ -144857,9 +158602,15 @@ * @param {Object.} object Plain object * @returns {google.api.CommonLanguageSettings} CommonLanguageSettings */ - CommonLanguageSettings.fromObject = function fromObject(object) { + CommonLanguageSettings.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.CommonLanguageSettings) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.CommonLanguageSettings: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.CommonLanguageSettings(); if (object.referenceDocsUri != null) message.referenceDocsUri = String(object.referenceDocsUri); @@ -144888,6 +158639,11 @@ break; } } + if (object.selectiveGapicGeneration != null) { + if (!$util.isObject(object.selectiveGapicGeneration)) + throw TypeError(".google.api.CommonLanguageSettings.selectiveGapicGeneration: object expected"); + message.selectiveGapicGeneration = $root.google.api.SelectiveGapicGeneration.fromObject(object.selectiveGapicGeneration, long + 1); + } return message; }; @@ -144900,21 +158656,29 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CommonLanguageSettings.toObject = function toObject(message, options) { + CommonLanguageSettings.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.destinations = []; - if (options.defaults) + if (options.defaults) { object.referenceDocsUri = ""; - if (message.referenceDocsUri != null && message.hasOwnProperty("referenceDocsUri")) + object.selectiveGapicGeneration = null; + } + if (message.referenceDocsUri != null && Object.hasOwnProperty.call(message, "referenceDocsUri")) object.referenceDocsUri = message.referenceDocsUri; if (message.destinations && message.destinations.length) { object.destinations = []; for (var j = 0; j < message.destinations.length; ++j) object.destinations[j] = options.enums === String ? $root.google.api.ClientLibraryDestination[message.destinations[j]] === undefined ? message.destinations[j] : $root.google.api.ClientLibraryDestination[message.destinations[j]] : message.destinations[j]; } + if (message.selectiveGapicGeneration != null && Object.hasOwnProperty.call(message, "selectiveGapicGeneration")) + object.selectiveGapicGeneration = $root.google.api.SelectiveGapicGeneration.toObject(message.selectiveGapicGeneration, options, q + 1); return object; }; @@ -144977,7 +158741,7 @@ function ClientLibrarySettings(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -145090,9 +158854,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ClientLibrarySettings.encode = function encode(message, writer) { + ClientLibrarySettings.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.version != null && Object.hasOwnProperty.call(message, "version")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.version); if (message.launchStage != null && Object.hasOwnProperty.call(message, "launchStage")) @@ -145100,21 +158868,21 @@ if (message.restNumericEnums != null && Object.hasOwnProperty.call(message, "restNumericEnums")) writer.uint32(/* id 3, wireType 0 =*/24).bool(message.restNumericEnums); if (message.javaSettings != null && Object.hasOwnProperty.call(message, "javaSettings")) - $root.google.api.JavaSettings.encode(message.javaSettings, writer.uint32(/* id 21, wireType 2 =*/170).fork()).ldelim(); + $root.google.api.JavaSettings.encode(message.javaSettings, writer.uint32(/* id 21, wireType 2 =*/170).fork(), q + 1).ldelim(); if (message.cppSettings != null && Object.hasOwnProperty.call(message, "cppSettings")) - $root.google.api.CppSettings.encode(message.cppSettings, writer.uint32(/* id 22, wireType 2 =*/178).fork()).ldelim(); + $root.google.api.CppSettings.encode(message.cppSettings, writer.uint32(/* id 22, wireType 2 =*/178).fork(), q + 1).ldelim(); if (message.phpSettings != null && Object.hasOwnProperty.call(message, "phpSettings")) - $root.google.api.PhpSettings.encode(message.phpSettings, writer.uint32(/* id 23, wireType 2 =*/186).fork()).ldelim(); + $root.google.api.PhpSettings.encode(message.phpSettings, writer.uint32(/* id 23, wireType 2 =*/186).fork(), q + 1).ldelim(); if (message.pythonSettings != null && Object.hasOwnProperty.call(message, "pythonSettings")) - $root.google.api.PythonSettings.encode(message.pythonSettings, writer.uint32(/* id 24, wireType 2 =*/194).fork()).ldelim(); + $root.google.api.PythonSettings.encode(message.pythonSettings, writer.uint32(/* id 24, wireType 2 =*/194).fork(), q + 1).ldelim(); if (message.nodeSettings != null && Object.hasOwnProperty.call(message, "nodeSettings")) - $root.google.api.NodeSettings.encode(message.nodeSettings, writer.uint32(/* id 25, wireType 2 =*/202).fork()).ldelim(); + $root.google.api.NodeSettings.encode(message.nodeSettings, writer.uint32(/* id 25, wireType 2 =*/202).fork(), q + 1).ldelim(); if (message.dotnetSettings != null && Object.hasOwnProperty.call(message, "dotnetSettings")) - $root.google.api.DotnetSettings.encode(message.dotnetSettings, writer.uint32(/* id 26, wireType 2 =*/210).fork()).ldelim(); + $root.google.api.DotnetSettings.encode(message.dotnetSettings, writer.uint32(/* id 26, wireType 2 =*/210).fork(), q + 1).ldelim(); if (message.rubySettings != null && Object.hasOwnProperty.call(message, "rubySettings")) - $root.google.api.RubySettings.encode(message.rubySettings, writer.uint32(/* id 27, wireType 2 =*/218).fork()).ldelim(); + $root.google.api.RubySettings.encode(message.rubySettings, writer.uint32(/* id 27, wireType 2 =*/218).fork(), q + 1).ldelim(); if (message.goSettings != null && Object.hasOwnProperty.call(message, "goSettings")) - $root.google.api.GoSettings.encode(message.goSettings, writer.uint32(/* id 28, wireType 2 =*/226).fork()).ldelim(); + $root.google.api.GoSettings.encode(message.goSettings, writer.uint32(/* id 28, wireType 2 =*/226).fork(), q + 1).ldelim(); return writer; }; @@ -145128,7 +158896,7 @@ * @returns {$protobuf.Writer} Writer */ ClientLibrarySettings.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -145142,9 +158910,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ClientLibrarySettings.decode = function decode(reader, length, error) { + ClientLibrarySettings.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.ClientLibrarySettings(); while (reader.pos < end) { var tag = reader.uint32(); @@ -145164,39 +158936,39 @@ break; } case 21: { - message.javaSettings = $root.google.api.JavaSettings.decode(reader, reader.uint32()); + message.javaSettings = $root.google.api.JavaSettings.decode(reader, reader.uint32(), undefined, long + 1); break; } case 22: { - message.cppSettings = $root.google.api.CppSettings.decode(reader, reader.uint32()); + message.cppSettings = $root.google.api.CppSettings.decode(reader, reader.uint32(), undefined, long + 1); break; } case 23: { - message.phpSettings = $root.google.api.PhpSettings.decode(reader, reader.uint32()); + message.phpSettings = $root.google.api.PhpSettings.decode(reader, reader.uint32(), undefined, long + 1); break; } case 24: { - message.pythonSettings = $root.google.api.PythonSettings.decode(reader, reader.uint32()); + message.pythonSettings = $root.google.api.PythonSettings.decode(reader, reader.uint32(), undefined, long + 1); break; } case 25: { - message.nodeSettings = $root.google.api.NodeSettings.decode(reader, reader.uint32()); + message.nodeSettings = $root.google.api.NodeSettings.decode(reader, reader.uint32(), undefined, long + 1); break; } case 26: { - message.dotnetSettings = $root.google.api.DotnetSettings.decode(reader, reader.uint32()); + message.dotnetSettings = $root.google.api.DotnetSettings.decode(reader, reader.uint32(), undefined, long + 1); break; } case 27: { - message.rubySettings = $root.google.api.RubySettings.decode(reader, reader.uint32()); + message.rubySettings = $root.google.api.RubySettings.decode(reader, reader.uint32(), undefined, long + 1); break; } case 28: { - message.goSettings = $root.google.api.GoSettings.decode(reader, reader.uint32()); + message.goSettings = $root.google.api.GoSettings.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -145227,13 +158999,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ClientLibrarySettings.verify = function verify(message) { + ClientLibrarySettings.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.version != null && message.hasOwnProperty("version")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.version != null && Object.hasOwnProperty.call(message, "version")) if (!$util.isString(message.version)) return "version: string expected"; - if (message.launchStage != null && message.hasOwnProperty("launchStage")) + if (message.launchStage != null && Object.hasOwnProperty.call(message, "launchStage")) switch (message.launchStage) { default: return "launchStage: enum value expected"; @@ -145247,46 +159023,46 @@ case 5: break; } - if (message.restNumericEnums != null && message.hasOwnProperty("restNumericEnums")) + if (message.restNumericEnums != null && Object.hasOwnProperty.call(message, "restNumericEnums")) if (typeof message.restNumericEnums !== "boolean") return "restNumericEnums: boolean expected"; - if (message.javaSettings != null && message.hasOwnProperty("javaSettings")) { - var error = $root.google.api.JavaSettings.verify(message.javaSettings); + if (message.javaSettings != null && Object.hasOwnProperty.call(message, "javaSettings")) { + var error = $root.google.api.JavaSettings.verify(message.javaSettings, long + 1); if (error) return "javaSettings." + error; } - if (message.cppSettings != null && message.hasOwnProperty("cppSettings")) { - var error = $root.google.api.CppSettings.verify(message.cppSettings); + if (message.cppSettings != null && Object.hasOwnProperty.call(message, "cppSettings")) { + var error = $root.google.api.CppSettings.verify(message.cppSettings, long + 1); if (error) return "cppSettings." + error; } - if (message.phpSettings != null && message.hasOwnProperty("phpSettings")) { - var error = $root.google.api.PhpSettings.verify(message.phpSettings); + if (message.phpSettings != null && Object.hasOwnProperty.call(message, "phpSettings")) { + var error = $root.google.api.PhpSettings.verify(message.phpSettings, long + 1); if (error) return "phpSettings." + error; } - if (message.pythonSettings != null && message.hasOwnProperty("pythonSettings")) { - var error = $root.google.api.PythonSettings.verify(message.pythonSettings); + if (message.pythonSettings != null && Object.hasOwnProperty.call(message, "pythonSettings")) { + var error = $root.google.api.PythonSettings.verify(message.pythonSettings, long + 1); if (error) return "pythonSettings." + error; } - if (message.nodeSettings != null && message.hasOwnProperty("nodeSettings")) { - var error = $root.google.api.NodeSettings.verify(message.nodeSettings); + if (message.nodeSettings != null && Object.hasOwnProperty.call(message, "nodeSettings")) { + var error = $root.google.api.NodeSettings.verify(message.nodeSettings, long + 1); if (error) return "nodeSettings." + error; } - if (message.dotnetSettings != null && message.hasOwnProperty("dotnetSettings")) { - var error = $root.google.api.DotnetSettings.verify(message.dotnetSettings); + if (message.dotnetSettings != null && Object.hasOwnProperty.call(message, "dotnetSettings")) { + var error = $root.google.api.DotnetSettings.verify(message.dotnetSettings, long + 1); if (error) return "dotnetSettings." + error; } - if (message.rubySettings != null && message.hasOwnProperty("rubySettings")) { - var error = $root.google.api.RubySettings.verify(message.rubySettings); + if (message.rubySettings != null && Object.hasOwnProperty.call(message, "rubySettings")) { + var error = $root.google.api.RubySettings.verify(message.rubySettings, long + 1); if (error) return "rubySettings." + error; } - if (message.goSettings != null && message.hasOwnProperty("goSettings")) { - var error = $root.google.api.GoSettings.verify(message.goSettings); + if (message.goSettings != null && Object.hasOwnProperty.call(message, "goSettings")) { + var error = $root.google.api.GoSettings.verify(message.goSettings, long + 1); if (error) return "goSettings." + error; } @@ -145301,9 +159077,15 @@ * @param {Object.} object Plain object * @returns {google.api.ClientLibrarySettings} ClientLibrarySettings */ - ClientLibrarySettings.fromObject = function fromObject(object) { + ClientLibrarySettings.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.ClientLibrarySettings) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.ClientLibrarySettings: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.ClientLibrarySettings(); if (object.version != null) message.version = String(object.version); @@ -145350,44 +159132,44 @@ if (object.restNumericEnums != null) message.restNumericEnums = Boolean(object.restNumericEnums); if (object.javaSettings != null) { - if (typeof object.javaSettings !== "object") + if (!$util.isObject(object.javaSettings)) throw TypeError(".google.api.ClientLibrarySettings.javaSettings: object expected"); - message.javaSettings = $root.google.api.JavaSettings.fromObject(object.javaSettings); + message.javaSettings = $root.google.api.JavaSettings.fromObject(object.javaSettings, long + 1); } if (object.cppSettings != null) { - if (typeof object.cppSettings !== "object") + if (!$util.isObject(object.cppSettings)) throw TypeError(".google.api.ClientLibrarySettings.cppSettings: object expected"); - message.cppSettings = $root.google.api.CppSettings.fromObject(object.cppSettings); + message.cppSettings = $root.google.api.CppSettings.fromObject(object.cppSettings, long + 1); } if (object.phpSettings != null) { - if (typeof object.phpSettings !== "object") + if (!$util.isObject(object.phpSettings)) throw TypeError(".google.api.ClientLibrarySettings.phpSettings: object expected"); - message.phpSettings = $root.google.api.PhpSettings.fromObject(object.phpSettings); + message.phpSettings = $root.google.api.PhpSettings.fromObject(object.phpSettings, long + 1); } if (object.pythonSettings != null) { - if (typeof object.pythonSettings !== "object") + if (!$util.isObject(object.pythonSettings)) throw TypeError(".google.api.ClientLibrarySettings.pythonSettings: object expected"); - message.pythonSettings = $root.google.api.PythonSettings.fromObject(object.pythonSettings); + message.pythonSettings = $root.google.api.PythonSettings.fromObject(object.pythonSettings, long + 1); } if (object.nodeSettings != null) { - if (typeof object.nodeSettings !== "object") + if (!$util.isObject(object.nodeSettings)) throw TypeError(".google.api.ClientLibrarySettings.nodeSettings: object expected"); - message.nodeSettings = $root.google.api.NodeSettings.fromObject(object.nodeSettings); + message.nodeSettings = $root.google.api.NodeSettings.fromObject(object.nodeSettings, long + 1); } if (object.dotnetSettings != null) { - if (typeof object.dotnetSettings !== "object") + if (!$util.isObject(object.dotnetSettings)) throw TypeError(".google.api.ClientLibrarySettings.dotnetSettings: object expected"); - message.dotnetSettings = $root.google.api.DotnetSettings.fromObject(object.dotnetSettings); + message.dotnetSettings = $root.google.api.DotnetSettings.fromObject(object.dotnetSettings, long + 1); } if (object.rubySettings != null) { - if (typeof object.rubySettings !== "object") + if (!$util.isObject(object.rubySettings)) throw TypeError(".google.api.ClientLibrarySettings.rubySettings: object expected"); - message.rubySettings = $root.google.api.RubySettings.fromObject(object.rubySettings); + message.rubySettings = $root.google.api.RubySettings.fromObject(object.rubySettings, long + 1); } if (object.goSettings != null) { - if (typeof object.goSettings !== "object") + if (!$util.isObject(object.goSettings)) throw TypeError(".google.api.ClientLibrarySettings.goSettings: object expected"); - message.goSettings = $root.google.api.GoSettings.fromObject(object.goSettings); + message.goSettings = $root.google.api.GoSettings.fromObject(object.goSettings, long + 1); } return message; }; @@ -145401,9 +159183,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ClientLibrarySettings.toObject = function toObject(message, options) { + ClientLibrarySettings.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.version = ""; @@ -145418,28 +159204,28 @@ object.rubySettings = null; object.goSettings = null; } - if (message.version != null && message.hasOwnProperty("version")) + if (message.version != null && Object.hasOwnProperty.call(message, "version")) object.version = message.version; - if (message.launchStage != null && message.hasOwnProperty("launchStage")) + if (message.launchStage != null && Object.hasOwnProperty.call(message, "launchStage")) object.launchStage = options.enums === String ? $root.google.api.LaunchStage[message.launchStage] === undefined ? message.launchStage : $root.google.api.LaunchStage[message.launchStage] : message.launchStage; - if (message.restNumericEnums != null && message.hasOwnProperty("restNumericEnums")) + if (message.restNumericEnums != null && Object.hasOwnProperty.call(message, "restNumericEnums")) object.restNumericEnums = message.restNumericEnums; - if (message.javaSettings != null && message.hasOwnProperty("javaSettings")) - object.javaSettings = $root.google.api.JavaSettings.toObject(message.javaSettings, options); - if (message.cppSettings != null && message.hasOwnProperty("cppSettings")) - object.cppSettings = $root.google.api.CppSettings.toObject(message.cppSettings, options); - if (message.phpSettings != null && message.hasOwnProperty("phpSettings")) - object.phpSettings = $root.google.api.PhpSettings.toObject(message.phpSettings, options); - if (message.pythonSettings != null && message.hasOwnProperty("pythonSettings")) - object.pythonSettings = $root.google.api.PythonSettings.toObject(message.pythonSettings, options); - if (message.nodeSettings != null && message.hasOwnProperty("nodeSettings")) - object.nodeSettings = $root.google.api.NodeSettings.toObject(message.nodeSettings, options); - if (message.dotnetSettings != null && message.hasOwnProperty("dotnetSettings")) - object.dotnetSettings = $root.google.api.DotnetSettings.toObject(message.dotnetSettings, options); - if (message.rubySettings != null && message.hasOwnProperty("rubySettings")) - object.rubySettings = $root.google.api.RubySettings.toObject(message.rubySettings, options); - if (message.goSettings != null && message.hasOwnProperty("goSettings")) - object.goSettings = $root.google.api.GoSettings.toObject(message.goSettings, options); + if (message.javaSettings != null && Object.hasOwnProperty.call(message, "javaSettings")) + object.javaSettings = $root.google.api.JavaSettings.toObject(message.javaSettings, options, q + 1); + if (message.cppSettings != null && Object.hasOwnProperty.call(message, "cppSettings")) + object.cppSettings = $root.google.api.CppSettings.toObject(message.cppSettings, options, q + 1); + if (message.phpSettings != null && Object.hasOwnProperty.call(message, "phpSettings")) + object.phpSettings = $root.google.api.PhpSettings.toObject(message.phpSettings, options, q + 1); + if (message.pythonSettings != null && Object.hasOwnProperty.call(message, "pythonSettings")) + object.pythonSettings = $root.google.api.PythonSettings.toObject(message.pythonSettings, options, q + 1); + if (message.nodeSettings != null && Object.hasOwnProperty.call(message, "nodeSettings")) + object.nodeSettings = $root.google.api.NodeSettings.toObject(message.nodeSettings, options, q + 1); + if (message.dotnetSettings != null && Object.hasOwnProperty.call(message, "dotnetSettings")) + object.dotnetSettings = $root.google.api.DotnetSettings.toObject(message.dotnetSettings, options, q + 1); + if (message.rubySettings != null && Object.hasOwnProperty.call(message, "rubySettings")) + object.rubySettings = $root.google.api.RubySettings.toObject(message.rubySettings, options, q + 1); + if (message.goSettings != null && Object.hasOwnProperty.call(message, "goSettings")) + object.goSettings = $root.google.api.GoSettings.toObject(message.goSettings, options, q + 1); return object; }; @@ -145505,7 +159291,7 @@ this.librarySettings = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -145618,12 +159404,16 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Publishing.encode = function encode(message, writer) { + Publishing.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.methodSettings != null && message.methodSettings.length) for (var i = 0; i < message.methodSettings.length; ++i) - $root.google.api.MethodSettings.encode(message.methodSettings[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.api.MethodSettings.encode(message.methodSettings[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.newIssueUri != null && Object.hasOwnProperty.call(message, "newIssueUri")) writer.uint32(/* id 101, wireType 2 =*/810).string(message.newIssueUri); if (message.documentationUri != null && Object.hasOwnProperty.call(message, "documentationUri")) @@ -145641,7 +159431,7 @@ writer.uint32(/* id 107, wireType 0 =*/856).int32(message.organization); if (message.librarySettings != null && message.librarySettings.length) for (var i = 0; i < message.librarySettings.length; ++i) - $root.google.api.ClientLibrarySettings.encode(message.librarySettings[i], writer.uint32(/* id 109, wireType 2 =*/874).fork()).ldelim(); + $root.google.api.ClientLibrarySettings.encode(message.librarySettings[i], writer.uint32(/* id 109, wireType 2 =*/874).fork(), q + 1).ldelim(); if (message.protoReferenceDocumentationUri != null && Object.hasOwnProperty.call(message, "protoReferenceDocumentationUri")) writer.uint32(/* id 110, wireType 2 =*/882).string(message.protoReferenceDocumentationUri); if (message.restReferenceDocumentationUri != null && Object.hasOwnProperty.call(message, "restReferenceDocumentationUri")) @@ -145659,7 +159449,7 @@ * @returns {$protobuf.Writer} Writer */ Publishing.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -145673,9 +159463,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Publishing.decode = function decode(reader, length, error) { + Publishing.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.Publishing(); while (reader.pos < end) { var tag = reader.uint32(); @@ -145685,7 +159479,7 @@ case 2: { if (!(message.methodSettings && message.methodSettings.length)) message.methodSettings = []; - message.methodSettings.push($root.google.api.MethodSettings.decode(reader, reader.uint32())); + message.methodSettings.push($root.google.api.MethodSettings.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 101: { @@ -145721,7 +159515,7 @@ case 109: { if (!(message.librarySettings && message.librarySettings.length)) message.librarySettings = []; - message.librarySettings.push($root.google.api.ClientLibrarySettings.decode(reader, reader.uint32())); + message.librarySettings.push($root.google.api.ClientLibrarySettings.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 110: { @@ -145733,7 +159527,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -145764,41 +159558,45 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Publishing.verify = function verify(message) { + Publishing.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.methodSettings != null && message.hasOwnProperty("methodSettings")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.methodSettings != null && Object.hasOwnProperty.call(message, "methodSettings")) { if (!Array.isArray(message.methodSettings)) return "methodSettings: array expected"; for (var i = 0; i < message.methodSettings.length; ++i) { - var error = $root.google.api.MethodSettings.verify(message.methodSettings[i]); + var error = $root.google.api.MethodSettings.verify(message.methodSettings[i], long + 1); if (error) return "methodSettings." + error; } } - if (message.newIssueUri != null && message.hasOwnProperty("newIssueUri")) + if (message.newIssueUri != null && Object.hasOwnProperty.call(message, "newIssueUri")) if (!$util.isString(message.newIssueUri)) return "newIssueUri: string expected"; - if (message.documentationUri != null && message.hasOwnProperty("documentationUri")) + if (message.documentationUri != null && Object.hasOwnProperty.call(message, "documentationUri")) if (!$util.isString(message.documentationUri)) return "documentationUri: string expected"; - if (message.apiShortName != null && message.hasOwnProperty("apiShortName")) + if (message.apiShortName != null && Object.hasOwnProperty.call(message, "apiShortName")) if (!$util.isString(message.apiShortName)) return "apiShortName: string expected"; - if (message.githubLabel != null && message.hasOwnProperty("githubLabel")) + if (message.githubLabel != null && Object.hasOwnProperty.call(message, "githubLabel")) if (!$util.isString(message.githubLabel)) return "githubLabel: string expected"; - if (message.codeownerGithubTeams != null && message.hasOwnProperty("codeownerGithubTeams")) { + if (message.codeownerGithubTeams != null && Object.hasOwnProperty.call(message, "codeownerGithubTeams")) { if (!Array.isArray(message.codeownerGithubTeams)) return "codeownerGithubTeams: array expected"; for (var i = 0; i < message.codeownerGithubTeams.length; ++i) if (!$util.isString(message.codeownerGithubTeams[i])) return "codeownerGithubTeams: string[] expected"; } - if (message.docTagPrefix != null && message.hasOwnProperty("docTagPrefix")) + if (message.docTagPrefix != null && Object.hasOwnProperty.call(message, "docTagPrefix")) if (!$util.isString(message.docTagPrefix)) return "docTagPrefix: string expected"; - if (message.organization != null && message.hasOwnProperty("organization")) + if (message.organization != null && Object.hasOwnProperty.call(message, "organization")) switch (message.organization) { default: return "organization: enum value expected"; @@ -145812,19 +159610,19 @@ case 7: break; } - if (message.librarySettings != null && message.hasOwnProperty("librarySettings")) { + if (message.librarySettings != null && Object.hasOwnProperty.call(message, "librarySettings")) { if (!Array.isArray(message.librarySettings)) return "librarySettings: array expected"; for (var i = 0; i < message.librarySettings.length; ++i) { - var error = $root.google.api.ClientLibrarySettings.verify(message.librarySettings[i]); + var error = $root.google.api.ClientLibrarySettings.verify(message.librarySettings[i], long + 1); if (error) return "librarySettings." + error; } } - if (message.protoReferenceDocumentationUri != null && message.hasOwnProperty("protoReferenceDocumentationUri")) + if (message.protoReferenceDocumentationUri != null && Object.hasOwnProperty.call(message, "protoReferenceDocumentationUri")) if (!$util.isString(message.protoReferenceDocumentationUri)) return "protoReferenceDocumentationUri: string expected"; - if (message.restReferenceDocumentationUri != null && message.hasOwnProperty("restReferenceDocumentationUri")) + if (message.restReferenceDocumentationUri != null && Object.hasOwnProperty.call(message, "restReferenceDocumentationUri")) if (!$util.isString(message.restReferenceDocumentationUri)) return "restReferenceDocumentationUri: string expected"; return null; @@ -145838,18 +159636,24 @@ * @param {Object.} object Plain object * @returns {google.api.Publishing} Publishing */ - Publishing.fromObject = function fromObject(object) { + Publishing.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.Publishing) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.Publishing: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.Publishing(); if (object.methodSettings) { if (!Array.isArray(object.methodSettings)) throw TypeError(".google.api.Publishing.methodSettings: array expected"); message.methodSettings = []; for (var i = 0; i < object.methodSettings.length; ++i) { - if (typeof object.methodSettings[i] !== "object") + if (!$util.isObject(object.methodSettings[i])) throw TypeError(".google.api.Publishing.methodSettings: object expected"); - message.methodSettings[i] = $root.google.api.MethodSettings.fromObject(object.methodSettings[i]); + message.methodSettings[i] = $root.google.api.MethodSettings.fromObject(object.methodSettings[i], long + 1); } } if (object.newIssueUri != null) @@ -145914,9 +159718,9 @@ throw TypeError(".google.api.Publishing.librarySettings: array expected"); message.librarySettings = []; for (var i = 0; i < object.librarySettings.length; ++i) { - if (typeof object.librarySettings[i] !== "object") + if (!$util.isObject(object.librarySettings[i])) throw TypeError(".google.api.Publishing.librarySettings: object expected"); - message.librarySettings[i] = $root.google.api.ClientLibrarySettings.fromObject(object.librarySettings[i]); + message.librarySettings[i] = $root.google.api.ClientLibrarySettings.fromObject(object.librarySettings[i], long + 1); } } if (object.protoReferenceDocumentationUri != null) @@ -145935,9 +159739,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Publishing.toObject = function toObject(message, options) { + Publishing.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.methodSettings = []; @@ -145957,33 +159765,33 @@ if (message.methodSettings && message.methodSettings.length) { object.methodSettings = []; for (var j = 0; j < message.methodSettings.length; ++j) - object.methodSettings[j] = $root.google.api.MethodSettings.toObject(message.methodSettings[j], options); + object.methodSettings[j] = $root.google.api.MethodSettings.toObject(message.methodSettings[j], options, q + 1); } - if (message.newIssueUri != null && message.hasOwnProperty("newIssueUri")) + if (message.newIssueUri != null && Object.hasOwnProperty.call(message, "newIssueUri")) object.newIssueUri = message.newIssueUri; - if (message.documentationUri != null && message.hasOwnProperty("documentationUri")) + if (message.documentationUri != null && Object.hasOwnProperty.call(message, "documentationUri")) object.documentationUri = message.documentationUri; - if (message.apiShortName != null && message.hasOwnProperty("apiShortName")) + if (message.apiShortName != null && Object.hasOwnProperty.call(message, "apiShortName")) object.apiShortName = message.apiShortName; - if (message.githubLabel != null && message.hasOwnProperty("githubLabel")) + if (message.githubLabel != null && Object.hasOwnProperty.call(message, "githubLabel")) object.githubLabel = message.githubLabel; if (message.codeownerGithubTeams && message.codeownerGithubTeams.length) { object.codeownerGithubTeams = []; for (var j = 0; j < message.codeownerGithubTeams.length; ++j) object.codeownerGithubTeams[j] = message.codeownerGithubTeams[j]; } - if (message.docTagPrefix != null && message.hasOwnProperty("docTagPrefix")) + if (message.docTagPrefix != null && Object.hasOwnProperty.call(message, "docTagPrefix")) object.docTagPrefix = message.docTagPrefix; - if (message.organization != null && message.hasOwnProperty("organization")) + if (message.organization != null && Object.hasOwnProperty.call(message, "organization")) object.organization = options.enums === String ? $root.google.api.ClientLibraryOrganization[message.organization] === undefined ? message.organization : $root.google.api.ClientLibraryOrganization[message.organization] : message.organization; if (message.librarySettings && message.librarySettings.length) { object.librarySettings = []; for (var j = 0; j < message.librarySettings.length; ++j) - object.librarySettings[j] = $root.google.api.ClientLibrarySettings.toObject(message.librarySettings[j], options); + object.librarySettings[j] = $root.google.api.ClientLibrarySettings.toObject(message.librarySettings[j], options, q + 1); } - if (message.protoReferenceDocumentationUri != null && message.hasOwnProperty("protoReferenceDocumentationUri")) + if (message.protoReferenceDocumentationUri != null && Object.hasOwnProperty.call(message, "protoReferenceDocumentationUri")) object.protoReferenceDocumentationUri = message.protoReferenceDocumentationUri; - if (message.restReferenceDocumentationUri != null && message.hasOwnProperty("restReferenceDocumentationUri")) + if (message.restReferenceDocumentationUri != null && Object.hasOwnProperty.call(message, "restReferenceDocumentationUri")) object.restReferenceDocumentationUri = message.restReferenceDocumentationUri; return object; }; @@ -146040,7 +159848,7 @@ this.serviceClassNames = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -146089,16 +159897,20 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - JavaSettings.encode = function encode(message, writer) { + JavaSettings.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.libraryPackage != null && Object.hasOwnProperty.call(message, "libraryPackage")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.libraryPackage); if (message.serviceClassNames != null && Object.hasOwnProperty.call(message, "serviceClassNames")) for (var keys = Object.keys(message.serviceClassNames), i = 0; i < keys.length; ++i) writer.uint32(/* id 2, wireType 2 =*/18).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.serviceClassNames[keys[i]]).ldelim(); if (message.common != null && Object.hasOwnProperty.call(message, "common")) - $root.google.api.CommonLanguageSettings.encode(message.common, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.api.CommonLanguageSettings.encode(message.common, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -146112,7 +159924,7 @@ * @returns {$protobuf.Writer} Writer */ JavaSettings.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -146126,9 +159938,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - JavaSettings.decode = function decode(reader, length, error) { + JavaSettings.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.JavaSettings(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -146155,19 +159971,21 @@ value = reader.string(); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.serviceClassNames, key); message.serviceClassNames[key] = value; break; } case 3: { - message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32()); + message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -146198,13 +160016,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - JavaSettings.verify = function verify(message) { + JavaSettings.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.libraryPackage != null && message.hasOwnProperty("libraryPackage")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.libraryPackage != null && Object.hasOwnProperty.call(message, "libraryPackage")) if (!$util.isString(message.libraryPackage)) return "libraryPackage: string expected"; - if (message.serviceClassNames != null && message.hasOwnProperty("serviceClassNames")) { + if (message.serviceClassNames != null && Object.hasOwnProperty.call(message, "serviceClassNames")) { if (!$util.isObject(message.serviceClassNames)) return "serviceClassNames: object expected"; var key = Object.keys(message.serviceClassNames); @@ -146212,8 +160034,8 @@ if (!$util.isString(message.serviceClassNames[key[i]])) return "serviceClassNames: string{k:string} expected"; } - if (message.common != null && message.hasOwnProperty("common")) { - var error = $root.google.api.CommonLanguageSettings.verify(message.common); + if (message.common != null && Object.hasOwnProperty.call(message, "common")) { + var error = $root.google.api.CommonLanguageSettings.verify(message.common, long + 1); if (error) return "common." + error; } @@ -146228,23 +160050,32 @@ * @param {Object.} object Plain object * @returns {google.api.JavaSettings} JavaSettings */ - JavaSettings.fromObject = function fromObject(object) { + JavaSettings.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.JavaSettings) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.JavaSettings: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.JavaSettings(); if (object.libraryPackage != null) message.libraryPackage = String(object.libraryPackage); if (object.serviceClassNames) { - if (typeof object.serviceClassNames !== "object") + if (!$util.isObject(object.serviceClassNames)) throw TypeError(".google.api.JavaSettings.serviceClassNames: object expected"); message.serviceClassNames = {}; - for (var keys = Object.keys(object.serviceClassNames), i = 0; i < keys.length; ++i) + for (var keys = Object.keys(object.serviceClassNames), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.serviceClassNames, keys[i]); message.serviceClassNames[keys[i]] = String(object.serviceClassNames[keys[i]]); + } } if (object.common != null) { - if (typeof object.common !== "object") + if (!$util.isObject(object.common)) throw TypeError(".google.api.JavaSettings.common: object expected"); - message.common = $root.google.api.CommonLanguageSettings.fromObject(object.common); + message.common = $root.google.api.CommonLanguageSettings.fromObject(object.common, long + 1); } return message; }; @@ -146258,9 +160089,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - JavaSettings.toObject = function toObject(message, options) { + JavaSettings.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.objects || options.defaults) object.serviceClassNames = {}; @@ -146268,16 +160103,19 @@ object.libraryPackage = ""; object.common = null; } - if (message.libraryPackage != null && message.hasOwnProperty("libraryPackage")) + if (message.libraryPackage != null && Object.hasOwnProperty.call(message, "libraryPackage")) object.libraryPackage = message.libraryPackage; var keys2; if (message.serviceClassNames && (keys2 = Object.keys(message.serviceClassNames)).length) { object.serviceClassNames = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.serviceClassNames, keys2[j]); object.serviceClassNames[keys2[j]] = message.serviceClassNames[keys2[j]]; + } } - if (message.common != null && message.hasOwnProperty("common")) - object.common = $root.google.api.CommonLanguageSettings.toObject(message.common, options); + if (message.common != null && Object.hasOwnProperty.call(message, "common")) + object.common = $root.google.api.CommonLanguageSettings.toObject(message.common, options, q + 1); return object; }; @@ -146330,7 +160168,7 @@ function CppSettings(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -146363,11 +160201,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CppSettings.encode = function encode(message, writer) { + CppSettings.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.common != null && Object.hasOwnProperty.call(message, "common")) - $root.google.api.CommonLanguageSettings.encode(message.common, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.api.CommonLanguageSettings.encode(message.common, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -146381,7 +160223,7 @@ * @returns {$protobuf.Writer} Writer */ CppSettings.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -146395,9 +160237,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CppSettings.decode = function decode(reader, length, error) { + CppSettings.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.CppSettings(); while (reader.pos < end) { var tag = reader.uint32(); @@ -146405,11 +160251,11 @@ break; switch (tag >>> 3) { case 1: { - message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32()); + message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -146440,11 +160286,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CppSettings.verify = function verify(message) { + CppSettings.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.common != null && message.hasOwnProperty("common")) { - var error = $root.google.api.CommonLanguageSettings.verify(message.common); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.common != null && Object.hasOwnProperty.call(message, "common")) { + var error = $root.google.api.CommonLanguageSettings.verify(message.common, long + 1); if (error) return "common." + error; } @@ -146459,14 +160309,20 @@ * @param {Object.} object Plain object * @returns {google.api.CppSettings} CppSettings */ - CppSettings.fromObject = function fromObject(object) { + CppSettings.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.CppSettings) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.CppSettings: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.CppSettings(); if (object.common != null) { - if (typeof object.common !== "object") + if (!$util.isObject(object.common)) throw TypeError(".google.api.CppSettings.common: object expected"); - message.common = $root.google.api.CommonLanguageSettings.fromObject(object.common); + message.common = $root.google.api.CommonLanguageSettings.fromObject(object.common, long + 1); } return message; }; @@ -146480,14 +160336,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CppSettings.toObject = function toObject(message, options) { + CppSettings.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.common = null; - if (message.common != null && message.hasOwnProperty("common")) - object.common = $root.google.api.CommonLanguageSettings.toObject(message.common, options); + if (message.common != null && Object.hasOwnProperty.call(message, "common")) + object.common = $root.google.api.CommonLanguageSettings.toObject(message.common, options, q + 1); return object; }; @@ -146540,7 +160400,7 @@ function PhpSettings(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -146573,11 +160433,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PhpSettings.encode = function encode(message, writer) { + PhpSettings.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.common != null && Object.hasOwnProperty.call(message, "common")) - $root.google.api.CommonLanguageSettings.encode(message.common, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.api.CommonLanguageSettings.encode(message.common, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -146591,7 +160455,7 @@ * @returns {$protobuf.Writer} Writer */ PhpSettings.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -146605,9 +160469,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PhpSettings.decode = function decode(reader, length, error) { + PhpSettings.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.PhpSettings(); while (reader.pos < end) { var tag = reader.uint32(); @@ -146615,11 +160483,11 @@ break; switch (tag >>> 3) { case 1: { - message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32()); + message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -146650,11 +160518,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PhpSettings.verify = function verify(message) { + PhpSettings.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.common != null && message.hasOwnProperty("common")) { - var error = $root.google.api.CommonLanguageSettings.verify(message.common); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.common != null && Object.hasOwnProperty.call(message, "common")) { + var error = $root.google.api.CommonLanguageSettings.verify(message.common, long + 1); if (error) return "common." + error; } @@ -146669,14 +160541,20 @@ * @param {Object.} object Plain object * @returns {google.api.PhpSettings} PhpSettings */ - PhpSettings.fromObject = function fromObject(object) { + PhpSettings.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.PhpSettings) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.PhpSettings: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.PhpSettings(); if (object.common != null) { - if (typeof object.common !== "object") + if (!$util.isObject(object.common)) throw TypeError(".google.api.PhpSettings.common: object expected"); - message.common = $root.google.api.CommonLanguageSettings.fromObject(object.common); + message.common = $root.google.api.CommonLanguageSettings.fromObject(object.common, long + 1); } return message; }; @@ -146690,14 +160568,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PhpSettings.toObject = function toObject(message, options) { + PhpSettings.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.common = null; - if (message.common != null && message.hasOwnProperty("common")) - object.common = $root.google.api.CommonLanguageSettings.toObject(message.common, options); + if (message.common != null && Object.hasOwnProperty.call(message, "common")) + object.common = $root.google.api.CommonLanguageSettings.toObject(message.common, options, q + 1); return object; }; @@ -146737,6 +160619,7 @@ * @memberof google.api * @interface IPythonSettings * @property {google.api.ICommonLanguageSettings|null} [common] PythonSettings common + * @property {google.api.PythonSettings.IExperimentalFeatures|null} [experimentalFeatures] PythonSettings experimentalFeatures */ /** @@ -146750,7 +160633,7 @@ function PythonSettings(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -146762,6 +160645,14 @@ */ PythonSettings.prototype.common = null; + /** + * PythonSettings experimentalFeatures. + * @member {google.api.PythonSettings.IExperimentalFeatures|null|undefined} experimentalFeatures + * @memberof google.api.PythonSettings + * @instance + */ + PythonSettings.prototype.experimentalFeatures = null; + /** * Creates a new PythonSettings instance using the specified properties. * @function create @@ -146783,11 +160674,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PythonSettings.encode = function encode(message, writer) { + PythonSettings.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.common != null && Object.hasOwnProperty.call(message, "common")) - $root.google.api.CommonLanguageSettings.encode(message.common, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.api.CommonLanguageSettings.encode(message.common, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); + if (message.experimentalFeatures != null && Object.hasOwnProperty.call(message, "experimentalFeatures")) + $root.google.api.PythonSettings.ExperimentalFeatures.encode(message.experimentalFeatures, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -146801,7 +160698,7 @@ * @returns {$protobuf.Writer} Writer */ PythonSettings.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -146815,9 +160712,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PythonSettings.decode = function decode(reader, length, error) { + PythonSettings.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.PythonSettings(); while (reader.pos < end) { var tag = reader.uint32(); @@ -146825,11 +160726,15 @@ break; switch (tag >>> 3) { case 1: { - message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32()); + message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + case 2: { + message.experimentalFeatures = $root.google.api.PythonSettings.ExperimentalFeatures.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -146860,14 +160765,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PythonSettings.verify = function verify(message) { + PythonSettings.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.common != null && message.hasOwnProperty("common")) { - var error = $root.google.api.CommonLanguageSettings.verify(message.common); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.common != null && Object.hasOwnProperty.call(message, "common")) { + var error = $root.google.api.CommonLanguageSettings.verify(message.common, long + 1); if (error) return "common." + error; } + if (message.experimentalFeatures != null && Object.hasOwnProperty.call(message, "experimentalFeatures")) { + var error = $root.google.api.PythonSettings.ExperimentalFeatures.verify(message.experimentalFeatures, long + 1); + if (error) + return "experimentalFeatures." + error; + } return null; }; @@ -146879,14 +160793,25 @@ * @param {Object.} object Plain object * @returns {google.api.PythonSettings} PythonSettings */ - PythonSettings.fromObject = function fromObject(object) { + PythonSettings.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.PythonSettings) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.PythonSettings: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.PythonSettings(); if (object.common != null) { - if (typeof object.common !== "object") + if (!$util.isObject(object.common)) throw TypeError(".google.api.PythonSettings.common: object expected"); - message.common = $root.google.api.CommonLanguageSettings.fromObject(object.common); + message.common = $root.google.api.CommonLanguageSettings.fromObject(object.common, long + 1); + } + if (object.experimentalFeatures != null) { + if (!$util.isObject(object.experimentalFeatures)) + throw TypeError(".google.api.PythonSettings.experimentalFeatures: object expected"); + message.experimentalFeatures = $root.google.api.PythonSettings.ExperimentalFeatures.fromObject(object.experimentalFeatures, long + 1); } return message; }; @@ -146900,14 +160825,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PythonSettings.toObject = function toObject(message, options) { + PythonSettings.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; - if (options.defaults) + if (options.defaults) { object.common = null; - if (message.common != null && message.hasOwnProperty("common")) - object.common = $root.google.api.CommonLanguageSettings.toObject(message.common, options); + object.experimentalFeatures = null; + } + if (message.common != null && Object.hasOwnProperty.call(message, "common")) + object.common = $root.google.api.CommonLanguageSettings.toObject(message.common, options, q + 1); + if (message.experimentalFeatures != null && Object.hasOwnProperty.call(message, "experimentalFeatures")) + object.experimentalFeatures = $root.google.api.PythonSettings.ExperimentalFeatures.toObject(message.experimentalFeatures, options, q + 1); return object; }; @@ -146937,6 +160870,280 @@ return typeUrlPrefix + "/google.api.PythonSettings"; }; + PythonSettings.ExperimentalFeatures = (function() { + + /** + * Properties of an ExperimentalFeatures. + * @memberof google.api.PythonSettings + * @interface IExperimentalFeatures + * @property {boolean|null} [restAsyncIoEnabled] ExperimentalFeatures restAsyncIoEnabled + * @property {boolean|null} [protobufPythonicTypesEnabled] ExperimentalFeatures protobufPythonicTypesEnabled + * @property {boolean|null} [unversionedPackageDisabled] ExperimentalFeatures unversionedPackageDisabled + */ + + /** + * Constructs a new ExperimentalFeatures. + * @memberof google.api.PythonSettings + * @classdesc Represents an ExperimentalFeatures. + * @implements IExperimentalFeatures + * @constructor + * @param {google.api.PythonSettings.IExperimentalFeatures=} [properties] Properties to set + */ + function ExperimentalFeatures(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null && keys[i] !== "__proto__") + this[keys[i]] = properties[keys[i]]; + } + + /** + * ExperimentalFeatures restAsyncIoEnabled. + * @member {boolean} restAsyncIoEnabled + * @memberof google.api.PythonSettings.ExperimentalFeatures + * @instance + */ + ExperimentalFeatures.prototype.restAsyncIoEnabled = false; + + /** + * ExperimentalFeatures protobufPythonicTypesEnabled. + * @member {boolean} protobufPythonicTypesEnabled + * @memberof google.api.PythonSettings.ExperimentalFeatures + * @instance + */ + ExperimentalFeatures.prototype.protobufPythonicTypesEnabled = false; + + /** + * ExperimentalFeatures unversionedPackageDisabled. + * @member {boolean} unversionedPackageDisabled + * @memberof google.api.PythonSettings.ExperimentalFeatures + * @instance + */ + ExperimentalFeatures.prototype.unversionedPackageDisabled = false; + + /** + * Creates a new ExperimentalFeatures instance using the specified properties. + * @function create + * @memberof google.api.PythonSettings.ExperimentalFeatures + * @static + * @param {google.api.PythonSettings.IExperimentalFeatures=} [properties] Properties to set + * @returns {google.api.PythonSettings.ExperimentalFeatures} ExperimentalFeatures instance + */ + ExperimentalFeatures.create = function create(properties) { + return new ExperimentalFeatures(properties); + }; + + /** + * Encodes the specified ExperimentalFeatures message. Does not implicitly {@link google.api.PythonSettings.ExperimentalFeatures.verify|verify} messages. + * @function encode + * @memberof google.api.PythonSettings.ExperimentalFeatures + * @static + * @param {google.api.PythonSettings.IExperimentalFeatures} message ExperimentalFeatures message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExperimentalFeatures.encode = function encode(message, writer, q) { + if (!writer) + writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + if (message.restAsyncIoEnabled != null && Object.hasOwnProperty.call(message, "restAsyncIoEnabled")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.restAsyncIoEnabled); + if (message.protobufPythonicTypesEnabled != null && Object.hasOwnProperty.call(message, "protobufPythonicTypesEnabled")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.protobufPythonicTypesEnabled); + if (message.unversionedPackageDisabled != null && Object.hasOwnProperty.call(message, "unversionedPackageDisabled")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.unversionedPackageDisabled); + return writer; + }; + + /** + * Encodes the specified ExperimentalFeatures message, length delimited. Does not implicitly {@link google.api.PythonSettings.ExperimentalFeatures.verify|verify} messages. + * @function encodeDelimited + * @memberof google.api.PythonSettings.ExperimentalFeatures + * @static + * @param {google.api.PythonSettings.IExperimentalFeatures} message ExperimentalFeatures message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExperimentalFeatures.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); + }; + + /** + * Decodes an ExperimentalFeatures message from the specified reader or buffer. + * @function decode + * @memberof google.api.PythonSettings.ExperimentalFeatures + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.api.PythonSettings.ExperimentalFeatures} ExperimentalFeatures + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExperimentalFeatures.decode = function decode(reader, length, error, long) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.PythonSettings.ExperimentalFeatures(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.restAsyncIoEnabled = reader.bool(); + break; + } + case 2: { + message.protobufPythonicTypesEnabled = reader.bool(); + break; + } + case 3: { + message.unversionedPackageDisabled = reader.bool(); + break; + } + default: + reader.skipType(tag & 7, long); + break; + } + } + return message; + }; + + /** + * Decodes an ExperimentalFeatures message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.api.PythonSettings.ExperimentalFeatures + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.api.PythonSettings.ExperimentalFeatures} ExperimentalFeatures + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExperimentalFeatures.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ExperimentalFeatures message. + * @function verify + * @memberof google.api.PythonSettings.ExperimentalFeatures + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ExperimentalFeatures.verify = function verify(message, long) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.restAsyncIoEnabled != null && Object.hasOwnProperty.call(message, "restAsyncIoEnabled")) + if (typeof message.restAsyncIoEnabled !== "boolean") + return "restAsyncIoEnabled: boolean expected"; + if (message.protobufPythonicTypesEnabled != null && Object.hasOwnProperty.call(message, "protobufPythonicTypesEnabled")) + if (typeof message.protobufPythonicTypesEnabled !== "boolean") + return "protobufPythonicTypesEnabled: boolean expected"; + if (message.unversionedPackageDisabled != null && Object.hasOwnProperty.call(message, "unversionedPackageDisabled")) + if (typeof message.unversionedPackageDisabled !== "boolean") + return "unversionedPackageDisabled: boolean expected"; + return null; + }; + + /** + * Creates an ExperimentalFeatures message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.api.PythonSettings.ExperimentalFeatures + * @static + * @param {Object.} object Plain object + * @returns {google.api.PythonSettings.ExperimentalFeatures} ExperimentalFeatures + */ + ExperimentalFeatures.fromObject = function fromObject(object, long) { + if (object instanceof $root.google.api.PythonSettings.ExperimentalFeatures) + return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.PythonSettings.ExperimentalFeatures: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var message = new $root.google.api.PythonSettings.ExperimentalFeatures(); + if (object.restAsyncIoEnabled != null) + message.restAsyncIoEnabled = Boolean(object.restAsyncIoEnabled); + if (object.protobufPythonicTypesEnabled != null) + message.protobufPythonicTypesEnabled = Boolean(object.protobufPythonicTypesEnabled); + if (object.unversionedPackageDisabled != null) + message.unversionedPackageDisabled = Boolean(object.unversionedPackageDisabled); + return message; + }; + + /** + * Creates a plain object from an ExperimentalFeatures message. Also converts values to other types if specified. + * @function toObject + * @memberof google.api.PythonSettings.ExperimentalFeatures + * @static + * @param {google.api.PythonSettings.ExperimentalFeatures} message ExperimentalFeatures + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ExperimentalFeatures.toObject = function toObject(message, options, q) { + if (!options) + options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + var object = {}; + if (options.defaults) { + object.restAsyncIoEnabled = false; + object.protobufPythonicTypesEnabled = false; + object.unversionedPackageDisabled = false; + } + if (message.restAsyncIoEnabled != null && Object.hasOwnProperty.call(message, "restAsyncIoEnabled")) + object.restAsyncIoEnabled = message.restAsyncIoEnabled; + if (message.protobufPythonicTypesEnabled != null && Object.hasOwnProperty.call(message, "protobufPythonicTypesEnabled")) + object.protobufPythonicTypesEnabled = message.protobufPythonicTypesEnabled; + if (message.unversionedPackageDisabled != null && Object.hasOwnProperty.call(message, "unversionedPackageDisabled")) + object.unversionedPackageDisabled = message.unversionedPackageDisabled; + return object; + }; + + /** + * Converts this ExperimentalFeatures to JSON. + * @function toJSON + * @memberof google.api.PythonSettings.ExperimentalFeatures + * @instance + * @returns {Object.} JSON object + */ + ExperimentalFeatures.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ExperimentalFeatures + * @function getTypeUrl + * @memberof google.api.PythonSettings.ExperimentalFeatures + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ExperimentalFeatures.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.api.PythonSettings.ExperimentalFeatures"; + }; + + return ExperimentalFeatures; + })(); + return PythonSettings; })(); @@ -146960,7 +161167,7 @@ function NodeSettings(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -146993,11 +161200,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - NodeSettings.encode = function encode(message, writer) { + NodeSettings.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.common != null && Object.hasOwnProperty.call(message, "common")) - $root.google.api.CommonLanguageSettings.encode(message.common, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.api.CommonLanguageSettings.encode(message.common, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -147011,7 +161222,7 @@ * @returns {$protobuf.Writer} Writer */ NodeSettings.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -147025,9 +161236,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - NodeSettings.decode = function decode(reader, length, error) { + NodeSettings.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.NodeSettings(); while (reader.pos < end) { var tag = reader.uint32(); @@ -147035,11 +161250,11 @@ break; switch (tag >>> 3) { case 1: { - message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32()); + message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -147070,11 +161285,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - NodeSettings.verify = function verify(message) { + NodeSettings.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.common != null && message.hasOwnProperty("common")) { - var error = $root.google.api.CommonLanguageSettings.verify(message.common); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.common != null && Object.hasOwnProperty.call(message, "common")) { + var error = $root.google.api.CommonLanguageSettings.verify(message.common, long + 1); if (error) return "common." + error; } @@ -147089,14 +161308,20 @@ * @param {Object.} object Plain object * @returns {google.api.NodeSettings} NodeSettings */ - NodeSettings.fromObject = function fromObject(object) { + NodeSettings.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.NodeSettings) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.NodeSettings: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.NodeSettings(); if (object.common != null) { - if (typeof object.common !== "object") + if (!$util.isObject(object.common)) throw TypeError(".google.api.NodeSettings.common: object expected"); - message.common = $root.google.api.CommonLanguageSettings.fromObject(object.common); + message.common = $root.google.api.CommonLanguageSettings.fromObject(object.common, long + 1); } return message; }; @@ -147110,14 +161335,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - NodeSettings.toObject = function toObject(message, options) { + NodeSettings.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.common = null; - if (message.common != null && message.hasOwnProperty("common")) - object.common = $root.google.api.CommonLanguageSettings.toObject(message.common, options); + if (message.common != null && Object.hasOwnProperty.call(message, "common")) + object.common = $root.google.api.CommonLanguageSettings.toObject(message.common, options, q + 1); return object; }; @@ -147180,7 +161409,7 @@ this.handwrittenSignatures = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -147253,11 +161482,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DotnetSettings.encode = function encode(message, writer) { + DotnetSettings.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.common != null && Object.hasOwnProperty.call(message, "common")) - $root.google.api.CommonLanguageSettings.encode(message.common, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.api.CommonLanguageSettings.encode(message.common, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.renamedServices != null && Object.hasOwnProperty.call(message, "renamedServices")) for (var keys = Object.keys(message.renamedServices), i = 0; i < keys.length; ++i) writer.uint32(/* id 2, wireType 2 =*/18).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.renamedServices[keys[i]]).ldelim(); @@ -147286,7 +161519,7 @@ * @returns {$protobuf.Writer} Writer */ DotnetSettings.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -147300,9 +161533,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DotnetSettings.decode = function decode(reader, length, error) { + DotnetSettings.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.DotnetSettings(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -147310,7 +161547,7 @@ break; switch (tag >>> 3) { case 1: { - message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32()); + message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -147329,10 +161566,12 @@ value = reader.string(); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.renamedServices, key); message.renamedServices[key] = value; break; } @@ -147352,10 +161591,12 @@ value = reader.string(); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.renamedResources, key); message.renamedResources[key] = value; break; } @@ -147378,7 +161619,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -147409,15 +161650,19 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DotnetSettings.verify = function verify(message) { + DotnetSettings.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.common != null && message.hasOwnProperty("common")) { - var error = $root.google.api.CommonLanguageSettings.verify(message.common); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.common != null && Object.hasOwnProperty.call(message, "common")) { + var error = $root.google.api.CommonLanguageSettings.verify(message.common, long + 1); if (error) return "common." + error; } - if (message.renamedServices != null && message.hasOwnProperty("renamedServices")) { + if (message.renamedServices != null && Object.hasOwnProperty.call(message, "renamedServices")) { if (!$util.isObject(message.renamedServices)) return "renamedServices: object expected"; var key = Object.keys(message.renamedServices); @@ -147425,7 +161670,7 @@ if (!$util.isString(message.renamedServices[key[i]])) return "renamedServices: string{k:string} expected"; } - if (message.renamedResources != null && message.hasOwnProperty("renamedResources")) { + if (message.renamedResources != null && Object.hasOwnProperty.call(message, "renamedResources")) { if (!$util.isObject(message.renamedResources)) return "renamedResources: object expected"; var key = Object.keys(message.renamedResources); @@ -147433,21 +161678,21 @@ if (!$util.isString(message.renamedResources[key[i]])) return "renamedResources: string{k:string} expected"; } - if (message.ignoredResources != null && message.hasOwnProperty("ignoredResources")) { + if (message.ignoredResources != null && Object.hasOwnProperty.call(message, "ignoredResources")) { if (!Array.isArray(message.ignoredResources)) return "ignoredResources: array expected"; for (var i = 0; i < message.ignoredResources.length; ++i) if (!$util.isString(message.ignoredResources[i])) return "ignoredResources: string[] expected"; } - if (message.forcedNamespaceAliases != null && message.hasOwnProperty("forcedNamespaceAliases")) { + if (message.forcedNamespaceAliases != null && Object.hasOwnProperty.call(message, "forcedNamespaceAliases")) { if (!Array.isArray(message.forcedNamespaceAliases)) return "forcedNamespaceAliases: array expected"; for (var i = 0; i < message.forcedNamespaceAliases.length; ++i) if (!$util.isString(message.forcedNamespaceAliases[i])) return "forcedNamespaceAliases: string[] expected"; } - if (message.handwrittenSignatures != null && message.hasOwnProperty("handwrittenSignatures")) { + if (message.handwrittenSignatures != null && Object.hasOwnProperty.call(message, "handwrittenSignatures")) { if (!Array.isArray(message.handwrittenSignatures)) return "handwrittenSignatures: array expected"; for (var i = 0; i < message.handwrittenSignatures.length; ++i) @@ -147465,28 +161710,40 @@ * @param {Object.} object Plain object * @returns {google.api.DotnetSettings} DotnetSettings */ - DotnetSettings.fromObject = function fromObject(object) { + DotnetSettings.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.DotnetSettings) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.DotnetSettings: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.DotnetSettings(); if (object.common != null) { - if (typeof object.common !== "object") + if (!$util.isObject(object.common)) throw TypeError(".google.api.DotnetSettings.common: object expected"); - message.common = $root.google.api.CommonLanguageSettings.fromObject(object.common); + message.common = $root.google.api.CommonLanguageSettings.fromObject(object.common, long + 1); } if (object.renamedServices) { - if (typeof object.renamedServices !== "object") + if (!$util.isObject(object.renamedServices)) throw TypeError(".google.api.DotnetSettings.renamedServices: object expected"); message.renamedServices = {}; - for (var keys = Object.keys(object.renamedServices), i = 0; i < keys.length; ++i) + for (var keys = Object.keys(object.renamedServices), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.renamedServices, keys[i]); message.renamedServices[keys[i]] = String(object.renamedServices[keys[i]]); + } } if (object.renamedResources) { - if (typeof object.renamedResources !== "object") + if (!$util.isObject(object.renamedResources)) throw TypeError(".google.api.DotnetSettings.renamedResources: object expected"); message.renamedResources = {}; - for (var keys = Object.keys(object.renamedResources), i = 0; i < keys.length; ++i) + for (var keys = Object.keys(object.renamedResources), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.renamedResources, keys[i]); message.renamedResources[keys[i]] = String(object.renamedResources[keys[i]]); + } } if (object.ignoredResources) { if (!Array.isArray(object.ignoredResources)) @@ -147521,9 +161778,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DotnetSettings.toObject = function toObject(message, options) { + DotnetSettings.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.ignoredResources = []; @@ -147536,18 +161797,24 @@ } if (options.defaults) object.common = null; - if (message.common != null && message.hasOwnProperty("common")) - object.common = $root.google.api.CommonLanguageSettings.toObject(message.common, options); + if (message.common != null && Object.hasOwnProperty.call(message, "common")) + object.common = $root.google.api.CommonLanguageSettings.toObject(message.common, options, q + 1); var keys2; if (message.renamedServices && (keys2 = Object.keys(message.renamedServices)).length) { object.renamedServices = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.renamedServices, keys2[j]); object.renamedServices[keys2[j]] = message.renamedServices[keys2[j]]; + } } if (message.renamedResources && (keys2 = Object.keys(message.renamedResources)).length) { object.renamedResources = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.renamedResources, keys2[j]); object.renamedResources[keys2[j]] = message.renamedResources[keys2[j]]; + } } if (message.ignoredResources && message.ignoredResources.length) { object.ignoredResources = []; @@ -147616,7 +161883,7 @@ function RubySettings(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -147649,11 +161916,15 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RubySettings.encode = function encode(message, writer) { + RubySettings.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.common != null && Object.hasOwnProperty.call(message, "common")) - $root.google.api.CommonLanguageSettings.encode(message.common, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.api.CommonLanguageSettings.encode(message.common, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -147667,7 +161938,7 @@ * @returns {$protobuf.Writer} Writer */ RubySettings.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -147681,9 +161952,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RubySettings.decode = function decode(reader, length, error) { + RubySettings.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.RubySettings(); while (reader.pos < end) { var tag = reader.uint32(); @@ -147691,11 +161966,11 @@ break; switch (tag >>> 3) { case 1: { - message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32()); + message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -147726,11 +162001,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RubySettings.verify = function verify(message) { + RubySettings.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.common != null && message.hasOwnProperty("common")) { - var error = $root.google.api.CommonLanguageSettings.verify(message.common); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.common != null && Object.hasOwnProperty.call(message, "common")) { + var error = $root.google.api.CommonLanguageSettings.verify(message.common, long + 1); if (error) return "common." + error; } @@ -147745,14 +162024,20 @@ * @param {Object.} object Plain object * @returns {google.api.RubySettings} RubySettings */ - RubySettings.fromObject = function fromObject(object) { + RubySettings.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.RubySettings) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.RubySettings: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.RubySettings(); if (object.common != null) { - if (typeof object.common !== "object") + if (!$util.isObject(object.common)) throw TypeError(".google.api.RubySettings.common: object expected"); - message.common = $root.google.api.CommonLanguageSettings.fromObject(object.common); + message.common = $root.google.api.CommonLanguageSettings.fromObject(object.common, long + 1); } return message; }; @@ -147766,14 +162051,18 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RubySettings.toObject = function toObject(message, options) { + RubySettings.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.common = null; - if (message.common != null && message.hasOwnProperty("common")) - object.common = $root.google.api.CommonLanguageSettings.toObject(message.common, options); + if (message.common != null && Object.hasOwnProperty.call(message, "common")) + object.common = $root.google.api.CommonLanguageSettings.toObject(message.common, options, q + 1); return object; }; @@ -147813,6 +162102,7 @@ * @memberof google.api * @interface IGoSettings * @property {google.api.ICommonLanguageSettings|null} [common] GoSettings common + * @property {Object.|null} [renamedServices] GoSettings renamedServices */ /** @@ -147824,9 +162114,10 @@ * @param {google.api.IGoSettings=} [properties] Properties to set */ function GoSettings(properties) { + this.renamedServices = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -147838,6 +162129,14 @@ */ GoSettings.prototype.common = null; + /** + * GoSettings renamedServices. + * @member {Object.} renamedServices + * @memberof google.api.GoSettings + * @instance + */ + GoSettings.prototype.renamedServices = $util.emptyObject; + /** * Creates a new GoSettings instance using the specified properties. * @function create @@ -147859,11 +162158,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GoSettings.encode = function encode(message, writer) { + GoSettings.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.common != null && Object.hasOwnProperty.call(message, "common")) - $root.google.api.CommonLanguageSettings.encode(message.common, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.api.CommonLanguageSettings.encode(message.common, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); + if (message.renamedServices != null && Object.hasOwnProperty.call(message, "renamedServices")) + for (var keys = Object.keys(message.renamedServices), i = 0; i < keys.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.renamedServices[keys[i]]).ldelim(); return writer; }; @@ -147877,7 +162183,7 @@ * @returns {$protobuf.Writer} Writer */ GoSettings.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -147891,21 +162197,50 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GoSettings.decode = function decode(reader, length, error) { + GoSettings.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.GoSettings(); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.GoSettings(), key, value; while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) break; switch (tag >>> 3) { case 1: { - message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32()); + message.common = $root.google.api.CommonLanguageSettings.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + case 2: { + if (message.renamedServices === $util.emptyObject) + message.renamedServices = {}; + var end2 = reader.uint32() + reader.pos; + key = ""; + value = ""; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = reader.string(); + break; + default: + reader.skipType(tag2 & 7, long); + break; + } + } + if (key === "__proto__") + $util.makeProp(message.renamedServices, key); + message.renamedServices[key] = value; break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -147936,14 +162271,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GoSettings.verify = function verify(message) { + GoSettings.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.common != null && message.hasOwnProperty("common")) { - var error = $root.google.api.CommonLanguageSettings.verify(message.common); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.common != null && Object.hasOwnProperty.call(message, "common")) { + var error = $root.google.api.CommonLanguageSettings.verify(message.common, long + 1); if (error) return "common." + error; } + if (message.renamedServices != null && Object.hasOwnProperty.call(message, "renamedServices")) { + if (!$util.isObject(message.renamedServices)) + return "renamedServices: object expected"; + var key = Object.keys(message.renamedServices); + for (var i = 0; i < key.length; ++i) + if (!$util.isString(message.renamedServices[key[i]])) + return "renamedServices: string{k:string} expected"; + } return null; }; @@ -147955,14 +162302,30 @@ * @param {Object.} object Plain object * @returns {google.api.GoSettings} GoSettings */ - GoSettings.fromObject = function fromObject(object) { + GoSettings.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.GoSettings) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.GoSettings: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.GoSettings(); if (object.common != null) { - if (typeof object.common !== "object") + if (!$util.isObject(object.common)) throw TypeError(".google.api.GoSettings.common: object expected"); - message.common = $root.google.api.CommonLanguageSettings.fromObject(object.common); + message.common = $root.google.api.CommonLanguageSettings.fromObject(object.common, long + 1); + } + if (object.renamedServices) { + if (!$util.isObject(object.renamedServices)) + throw TypeError(".google.api.GoSettings.renamedServices: object expected"); + message.renamedServices = {}; + for (var keys = Object.keys(object.renamedServices), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.renamedServices, keys[i]); + message.renamedServices[keys[i]] = String(object.renamedServices[keys[i]]); + } } return message; }; @@ -147976,14 +162339,29 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GoSettings.toObject = function toObject(message, options) { + GoSettings.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; + if (options.objects || options.defaults) + object.renamedServices = {}; if (options.defaults) object.common = null; - if (message.common != null && message.hasOwnProperty("common")) - object.common = $root.google.api.CommonLanguageSettings.toObject(message.common, options); + if (message.common != null && Object.hasOwnProperty.call(message, "common")) + object.common = $root.google.api.CommonLanguageSettings.toObject(message.common, options, q + 1); + var keys2; + if (message.renamedServices && (keys2 = Object.keys(message.renamedServices)).length) { + object.renamedServices = {}; + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.renamedServices, keys2[j]); + object.renamedServices[keys2[j]] = message.renamedServices[keys2[j]]; + } + } return object; }; @@ -148039,7 +162417,7 @@ this.autoPopulatedFields = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -148088,13 +162466,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MethodSettings.encode = function encode(message, writer) { + MethodSettings.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.selector != null && Object.hasOwnProperty.call(message, "selector")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.selector); if (message.longRunning != null && Object.hasOwnProperty.call(message, "longRunning")) - $root.google.api.MethodSettings.LongRunning.encode(message.longRunning, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.api.MethodSettings.LongRunning.encode(message.longRunning, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.autoPopulatedFields != null && message.autoPopulatedFields.length) for (var i = 0; i < message.autoPopulatedFields.length; ++i) writer.uint32(/* id 3, wireType 2 =*/26).string(message.autoPopulatedFields[i]); @@ -148111,7 +162493,7 @@ * @returns {$protobuf.Writer} Writer */ MethodSettings.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -148125,9 +162507,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MethodSettings.decode = function decode(reader, length, error) { + MethodSettings.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.MethodSettings(); while (reader.pos < end) { var tag = reader.uint32(); @@ -148139,7 +162525,7 @@ break; } case 2: { - message.longRunning = $root.google.api.MethodSettings.LongRunning.decode(reader, reader.uint32()); + message.longRunning = $root.google.api.MethodSettings.LongRunning.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -148149,7 +162535,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -148180,18 +162566,22 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MethodSettings.verify = function verify(message) { + MethodSettings.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.selector != null && message.hasOwnProperty("selector")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.selector != null && Object.hasOwnProperty.call(message, "selector")) if (!$util.isString(message.selector)) return "selector: string expected"; - if (message.longRunning != null && message.hasOwnProperty("longRunning")) { - var error = $root.google.api.MethodSettings.LongRunning.verify(message.longRunning); + if (message.longRunning != null && Object.hasOwnProperty.call(message, "longRunning")) { + var error = $root.google.api.MethodSettings.LongRunning.verify(message.longRunning, long + 1); if (error) return "longRunning." + error; } - if (message.autoPopulatedFields != null && message.hasOwnProperty("autoPopulatedFields")) { + if (message.autoPopulatedFields != null && Object.hasOwnProperty.call(message, "autoPopulatedFields")) { if (!Array.isArray(message.autoPopulatedFields)) return "autoPopulatedFields: array expected"; for (var i = 0; i < message.autoPopulatedFields.length; ++i) @@ -148209,16 +162599,22 @@ * @param {Object.} object Plain object * @returns {google.api.MethodSettings} MethodSettings */ - MethodSettings.fromObject = function fromObject(object) { + MethodSettings.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.MethodSettings) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.MethodSettings: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.MethodSettings(); if (object.selector != null) message.selector = String(object.selector); if (object.longRunning != null) { - if (typeof object.longRunning !== "object") + if (!$util.isObject(object.longRunning)) throw TypeError(".google.api.MethodSettings.longRunning: object expected"); - message.longRunning = $root.google.api.MethodSettings.LongRunning.fromObject(object.longRunning); + message.longRunning = $root.google.api.MethodSettings.LongRunning.fromObject(object.longRunning, long + 1); } if (object.autoPopulatedFields) { if (!Array.isArray(object.autoPopulatedFields)) @@ -148239,9 +162635,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MethodSettings.toObject = function toObject(message, options) { + MethodSettings.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.autoPopulatedFields = []; @@ -148249,10 +162649,10 @@ object.selector = ""; object.longRunning = null; } - if (message.selector != null && message.hasOwnProperty("selector")) + if (message.selector != null && Object.hasOwnProperty.call(message, "selector")) object.selector = message.selector; - if (message.longRunning != null && message.hasOwnProperty("longRunning")) - object.longRunning = $root.google.api.MethodSettings.LongRunning.toObject(message.longRunning, options); + if (message.longRunning != null && Object.hasOwnProperty.call(message, "longRunning")) + object.longRunning = $root.google.api.MethodSettings.LongRunning.toObject(message.longRunning, options, q + 1); if (message.autoPopulatedFields && message.autoPopulatedFields.length) { object.autoPopulatedFields = []; for (var j = 0; j < message.autoPopulatedFields.length; ++j) @@ -148310,7 +162710,7 @@ function LongRunning(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -148367,17 +162767,21 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - LongRunning.encode = function encode(message, writer) { + LongRunning.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.initialPollDelay != null && Object.hasOwnProperty.call(message, "initialPollDelay")) - $root.google.protobuf.Duration.encode(message.initialPollDelay, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.initialPollDelay, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.pollDelayMultiplier != null && Object.hasOwnProperty.call(message, "pollDelayMultiplier")) writer.uint32(/* id 2, wireType 5 =*/21).float(message.pollDelayMultiplier); if (message.maxPollDelay != null && Object.hasOwnProperty.call(message, "maxPollDelay")) - $root.google.protobuf.Duration.encode(message.maxPollDelay, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.maxPollDelay, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.totalPollTimeout != null && Object.hasOwnProperty.call(message, "totalPollTimeout")) - $root.google.protobuf.Duration.encode(message.totalPollTimeout, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.Duration.encode(message.totalPollTimeout, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); return writer; }; @@ -148391,7 +162795,7 @@ * @returns {$protobuf.Writer} Writer */ LongRunning.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -148405,9 +162809,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LongRunning.decode = function decode(reader, length, error) { + LongRunning.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.MethodSettings.LongRunning(); while (reader.pos < end) { var tag = reader.uint32(); @@ -148415,7 +162823,7 @@ break; switch (tag >>> 3) { case 1: { - message.initialPollDelay = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.initialPollDelay = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -148423,15 +162831,15 @@ break; } case 3: { - message.maxPollDelay = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.maxPollDelay = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { - message.totalPollTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.totalPollTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -148462,24 +162870,28 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LongRunning.verify = function verify(message) { + LongRunning.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.initialPollDelay != null && message.hasOwnProperty("initialPollDelay")) { - var error = $root.google.protobuf.Duration.verify(message.initialPollDelay); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.initialPollDelay != null && Object.hasOwnProperty.call(message, "initialPollDelay")) { + var error = $root.google.protobuf.Duration.verify(message.initialPollDelay, long + 1); if (error) return "initialPollDelay." + error; } - if (message.pollDelayMultiplier != null && message.hasOwnProperty("pollDelayMultiplier")) + if (message.pollDelayMultiplier != null && Object.hasOwnProperty.call(message, "pollDelayMultiplier")) if (typeof message.pollDelayMultiplier !== "number") return "pollDelayMultiplier: number expected"; - if (message.maxPollDelay != null && message.hasOwnProperty("maxPollDelay")) { - var error = $root.google.protobuf.Duration.verify(message.maxPollDelay); + if (message.maxPollDelay != null && Object.hasOwnProperty.call(message, "maxPollDelay")) { + var error = $root.google.protobuf.Duration.verify(message.maxPollDelay, long + 1); if (error) return "maxPollDelay." + error; } - if (message.totalPollTimeout != null && message.hasOwnProperty("totalPollTimeout")) { - var error = $root.google.protobuf.Duration.verify(message.totalPollTimeout); + if (message.totalPollTimeout != null && Object.hasOwnProperty.call(message, "totalPollTimeout")) { + var error = $root.google.protobuf.Duration.verify(message.totalPollTimeout, long + 1); if (error) return "totalPollTimeout." + error; } @@ -148494,26 +162906,32 @@ * @param {Object.} object Plain object * @returns {google.api.MethodSettings.LongRunning} LongRunning */ - LongRunning.fromObject = function fromObject(object) { + LongRunning.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.MethodSettings.LongRunning) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.MethodSettings.LongRunning: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.MethodSettings.LongRunning(); if (object.initialPollDelay != null) { - if (typeof object.initialPollDelay !== "object") + if (!$util.isObject(object.initialPollDelay)) throw TypeError(".google.api.MethodSettings.LongRunning.initialPollDelay: object expected"); - message.initialPollDelay = $root.google.protobuf.Duration.fromObject(object.initialPollDelay); + message.initialPollDelay = $root.google.protobuf.Duration.fromObject(object.initialPollDelay, long + 1); } if (object.pollDelayMultiplier != null) message.pollDelayMultiplier = Number(object.pollDelayMultiplier); if (object.maxPollDelay != null) { - if (typeof object.maxPollDelay !== "object") + if (!$util.isObject(object.maxPollDelay)) throw TypeError(".google.api.MethodSettings.LongRunning.maxPollDelay: object expected"); - message.maxPollDelay = $root.google.protobuf.Duration.fromObject(object.maxPollDelay); + message.maxPollDelay = $root.google.protobuf.Duration.fromObject(object.maxPollDelay, long + 1); } if (object.totalPollTimeout != null) { - if (typeof object.totalPollTimeout !== "object") + if (!$util.isObject(object.totalPollTimeout)) throw TypeError(".google.api.MethodSettings.LongRunning.totalPollTimeout: object expected"); - message.totalPollTimeout = $root.google.protobuf.Duration.fromObject(object.totalPollTimeout); + message.totalPollTimeout = $root.google.protobuf.Duration.fromObject(object.totalPollTimeout, long + 1); } return message; }; @@ -148527,9 +162945,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - LongRunning.toObject = function toObject(message, options) { + LongRunning.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.initialPollDelay = null; @@ -148537,14 +162959,14 @@ object.maxPollDelay = null; object.totalPollTimeout = null; } - if (message.initialPollDelay != null && message.hasOwnProperty("initialPollDelay")) - object.initialPollDelay = $root.google.protobuf.Duration.toObject(message.initialPollDelay, options); - if (message.pollDelayMultiplier != null && message.hasOwnProperty("pollDelayMultiplier")) + if (message.initialPollDelay != null && Object.hasOwnProperty.call(message, "initialPollDelay")) + object.initialPollDelay = $root.google.protobuf.Duration.toObject(message.initialPollDelay, options, q + 1); + if (message.pollDelayMultiplier != null && Object.hasOwnProperty.call(message, "pollDelayMultiplier")) object.pollDelayMultiplier = options.json && !isFinite(message.pollDelayMultiplier) ? String(message.pollDelayMultiplier) : message.pollDelayMultiplier; - if (message.maxPollDelay != null && message.hasOwnProperty("maxPollDelay")) - object.maxPollDelay = $root.google.protobuf.Duration.toObject(message.maxPollDelay, options); - if (message.totalPollTimeout != null && message.hasOwnProperty("totalPollTimeout")) - object.totalPollTimeout = $root.google.protobuf.Duration.toObject(message.totalPollTimeout, options); + if (message.maxPollDelay != null && Object.hasOwnProperty.call(message, "maxPollDelay")) + object.maxPollDelay = $root.google.protobuf.Duration.toObject(message.maxPollDelay, options, q + 1); + if (message.totalPollTimeout != null && Object.hasOwnProperty.call(message, "totalPollTimeout")) + object.totalPollTimeout = $root.google.protobuf.Duration.toObject(message.totalPollTimeout, options, q + 1); return object; }; @@ -148622,6 +163044,273 @@ return values; })(); + api.SelectiveGapicGeneration = (function() { + + /** + * Properties of a SelectiveGapicGeneration. + * @memberof google.api + * @interface ISelectiveGapicGeneration + * @property {Array.|null} [methods] SelectiveGapicGeneration methods + * @property {boolean|null} [generateOmittedAsInternal] SelectiveGapicGeneration generateOmittedAsInternal + */ + + /** + * Constructs a new SelectiveGapicGeneration. + * @memberof google.api + * @classdesc Represents a SelectiveGapicGeneration. + * @implements ISelectiveGapicGeneration + * @constructor + * @param {google.api.ISelectiveGapicGeneration=} [properties] Properties to set + */ + function SelectiveGapicGeneration(properties) { + this.methods = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null && keys[i] !== "__proto__") + this[keys[i]] = properties[keys[i]]; + } + + /** + * SelectiveGapicGeneration methods. + * @member {Array.} methods + * @memberof google.api.SelectiveGapicGeneration + * @instance + */ + SelectiveGapicGeneration.prototype.methods = $util.emptyArray; + + /** + * SelectiveGapicGeneration generateOmittedAsInternal. + * @member {boolean} generateOmittedAsInternal + * @memberof google.api.SelectiveGapicGeneration + * @instance + */ + SelectiveGapicGeneration.prototype.generateOmittedAsInternal = false; + + /** + * Creates a new SelectiveGapicGeneration instance using the specified properties. + * @function create + * @memberof google.api.SelectiveGapicGeneration + * @static + * @param {google.api.ISelectiveGapicGeneration=} [properties] Properties to set + * @returns {google.api.SelectiveGapicGeneration} SelectiveGapicGeneration instance + */ + SelectiveGapicGeneration.create = function create(properties) { + return new SelectiveGapicGeneration(properties); + }; + + /** + * Encodes the specified SelectiveGapicGeneration message. Does not implicitly {@link google.api.SelectiveGapicGeneration.verify|verify} messages. + * @function encode + * @memberof google.api.SelectiveGapicGeneration + * @static + * @param {google.api.ISelectiveGapicGeneration} message SelectiveGapicGeneration message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SelectiveGapicGeneration.encode = function encode(message, writer, q) { + if (!writer) + writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + if (message.methods != null && message.methods.length) + for (var i = 0; i < message.methods.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.methods[i]); + if (message.generateOmittedAsInternal != null && Object.hasOwnProperty.call(message, "generateOmittedAsInternal")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.generateOmittedAsInternal); + return writer; + }; + + /** + * Encodes the specified SelectiveGapicGeneration message, length delimited. Does not implicitly {@link google.api.SelectiveGapicGeneration.verify|verify} messages. + * @function encodeDelimited + * @memberof google.api.SelectiveGapicGeneration + * @static + * @param {google.api.ISelectiveGapicGeneration} message SelectiveGapicGeneration message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SelectiveGapicGeneration.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); + }; + + /** + * Decodes a SelectiveGapicGeneration message from the specified reader or buffer. + * @function decode + * @memberof google.api.SelectiveGapicGeneration + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.api.SelectiveGapicGeneration} SelectiveGapicGeneration + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SelectiveGapicGeneration.decode = function decode(reader, length, error, long) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.SelectiveGapicGeneration(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + if (!(message.methods && message.methods.length)) + message.methods = []; + message.methods.push(reader.string()); + break; + } + case 2: { + message.generateOmittedAsInternal = reader.bool(); + break; + } + default: + reader.skipType(tag & 7, long); + break; + } + } + return message; + }; + + /** + * Decodes a SelectiveGapicGeneration message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.api.SelectiveGapicGeneration + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.api.SelectiveGapicGeneration} SelectiveGapicGeneration + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SelectiveGapicGeneration.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SelectiveGapicGeneration message. + * @function verify + * @memberof google.api.SelectiveGapicGeneration + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SelectiveGapicGeneration.verify = function verify(message, long) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.methods != null && Object.hasOwnProperty.call(message, "methods")) { + if (!Array.isArray(message.methods)) + return "methods: array expected"; + for (var i = 0; i < message.methods.length; ++i) + if (!$util.isString(message.methods[i])) + return "methods: string[] expected"; + } + if (message.generateOmittedAsInternal != null && Object.hasOwnProperty.call(message, "generateOmittedAsInternal")) + if (typeof message.generateOmittedAsInternal !== "boolean") + return "generateOmittedAsInternal: boolean expected"; + return null; + }; + + /** + * Creates a SelectiveGapicGeneration message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.api.SelectiveGapicGeneration + * @static + * @param {Object.} object Plain object + * @returns {google.api.SelectiveGapicGeneration} SelectiveGapicGeneration + */ + SelectiveGapicGeneration.fromObject = function fromObject(object, long) { + if (object instanceof $root.google.api.SelectiveGapicGeneration) + return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.SelectiveGapicGeneration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var message = new $root.google.api.SelectiveGapicGeneration(); + if (object.methods) { + if (!Array.isArray(object.methods)) + throw TypeError(".google.api.SelectiveGapicGeneration.methods: array expected"); + message.methods = []; + for (var i = 0; i < object.methods.length; ++i) + message.methods[i] = String(object.methods[i]); + } + if (object.generateOmittedAsInternal != null) + message.generateOmittedAsInternal = Boolean(object.generateOmittedAsInternal); + return message; + }; + + /** + * Creates a plain object from a SelectiveGapicGeneration message. Also converts values to other types if specified. + * @function toObject + * @memberof google.api.SelectiveGapicGeneration + * @static + * @param {google.api.SelectiveGapicGeneration} message SelectiveGapicGeneration + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SelectiveGapicGeneration.toObject = function toObject(message, options, q) { + if (!options) + options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + var object = {}; + if (options.arrays || options.defaults) + object.methods = []; + if (options.defaults) + object.generateOmittedAsInternal = false; + if (message.methods && message.methods.length) { + object.methods = []; + for (var j = 0; j < message.methods.length; ++j) + object.methods[j] = message.methods[j]; + } + if (message.generateOmittedAsInternal != null && Object.hasOwnProperty.call(message, "generateOmittedAsInternal")) + object.generateOmittedAsInternal = message.generateOmittedAsInternal; + return object; + }; + + /** + * Converts this SelectiveGapicGeneration to JSON. + * @function toJSON + * @memberof google.api.SelectiveGapicGeneration + * @instance + * @returns {Object.} JSON object + */ + SelectiveGapicGeneration.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for SelectiveGapicGeneration + * @function getTypeUrl + * @memberof google.api.SelectiveGapicGeneration + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + SelectiveGapicGeneration.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.api.SelectiveGapicGeneration"; + }; + + return SelectiveGapicGeneration; + })(); + /** * LaunchStage enum. * @name google.api.LaunchStage @@ -148704,7 +163393,7 @@ this.style = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -148785,9 +163474,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ResourceDescriptor.encode = function encode(message, writer) { + ResourceDescriptor.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.type != null && Object.hasOwnProperty.call(message, "type")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.type); if (message.pattern != null && message.pattern.length) @@ -148820,7 +163513,7 @@ * @returns {$protobuf.Writer} Writer */ ResourceDescriptor.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -148834,9 +163527,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ResourceDescriptor.decode = function decode(reader, length, error) { + ResourceDescriptor.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.ResourceDescriptor(); while (reader.pos < end) { var tag = reader.uint32(); @@ -148881,7 +163578,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -148912,23 +163609,27 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ResourceDescriptor.verify = function verify(message) { + ResourceDescriptor.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.type != null && message.hasOwnProperty("type")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.type != null && Object.hasOwnProperty.call(message, "type")) if (!$util.isString(message.type)) return "type: string expected"; - if (message.pattern != null && message.hasOwnProperty("pattern")) { + if (message.pattern != null && Object.hasOwnProperty.call(message, "pattern")) { if (!Array.isArray(message.pattern)) return "pattern: array expected"; for (var i = 0; i < message.pattern.length; ++i) if (!$util.isString(message.pattern[i])) return "pattern: string[] expected"; } - if (message.nameField != null && message.hasOwnProperty("nameField")) + if (message.nameField != null && Object.hasOwnProperty.call(message, "nameField")) if (!$util.isString(message.nameField)) return "nameField: string expected"; - if (message.history != null && message.hasOwnProperty("history")) + if (message.history != null && Object.hasOwnProperty.call(message, "history")) switch (message.history) { default: return "history: enum value expected"; @@ -148937,13 +163638,13 @@ case 2: break; } - if (message.plural != null && message.hasOwnProperty("plural")) + if (message.plural != null && Object.hasOwnProperty.call(message, "plural")) if (!$util.isString(message.plural)) return "plural: string expected"; - if (message.singular != null && message.hasOwnProperty("singular")) + if (message.singular != null && Object.hasOwnProperty.call(message, "singular")) if (!$util.isString(message.singular)) return "singular: string expected"; - if (message.style != null && message.hasOwnProperty("style")) { + if (message.style != null && Object.hasOwnProperty.call(message, "style")) { if (!Array.isArray(message.style)) return "style: array expected"; for (var i = 0; i < message.style.length; ++i) @@ -148966,9 +163667,15 @@ * @param {Object.} object Plain object * @returns {google.api.ResourceDescriptor} ResourceDescriptor */ - ResourceDescriptor.fromObject = function fromObject(object) { + ResourceDescriptor.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.ResourceDescriptor) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.ResourceDescriptor: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.ResourceDescriptor(); if (object.type != null) message.type = String(object.type); @@ -149038,9 +163745,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ResourceDescriptor.toObject = function toObject(message, options) { + ResourceDescriptor.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.pattern = []; @@ -149053,20 +163764,20 @@ object.plural = ""; object.singular = ""; } - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = message.type; if (message.pattern && message.pattern.length) { object.pattern = []; for (var j = 0; j < message.pattern.length; ++j) object.pattern[j] = message.pattern[j]; } - if (message.nameField != null && message.hasOwnProperty("nameField")) + if (message.nameField != null && Object.hasOwnProperty.call(message, "nameField")) object.nameField = message.nameField; - if (message.history != null && message.hasOwnProperty("history")) + if (message.history != null && Object.hasOwnProperty.call(message, "history")) object.history = options.enums === String ? $root.google.api.ResourceDescriptor.History[message.history] === undefined ? message.history : $root.google.api.ResourceDescriptor.History[message.history] : message.history; - if (message.plural != null && message.hasOwnProperty("plural")) + if (message.plural != null && Object.hasOwnProperty.call(message, "plural")) object.plural = message.plural; - if (message.singular != null && message.hasOwnProperty("singular")) + if (message.singular != null && Object.hasOwnProperty.call(message, "singular")) object.singular = message.singular; if (message.style && message.style.length) { object.style = []; @@ -149156,7 +163867,7 @@ function ResourceReference(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -149197,9 +163908,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ResourceReference.encode = function encode(message, writer) { + ResourceReference.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.type != null && Object.hasOwnProperty.call(message, "type")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.type); if (message.childType != null && Object.hasOwnProperty.call(message, "childType")) @@ -149217,7 +163932,7 @@ * @returns {$protobuf.Writer} Writer */ ResourceReference.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -149231,9 +163946,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ResourceReference.decode = function decode(reader, length, error) { + ResourceReference.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.ResourceReference(); while (reader.pos < end) { var tag = reader.uint32(); @@ -149249,7 +163968,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -149280,13 +163999,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ResourceReference.verify = function verify(message) { + ResourceReference.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.type != null && message.hasOwnProperty("type")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.type != null && Object.hasOwnProperty.call(message, "type")) if (!$util.isString(message.type)) return "type: string expected"; - if (message.childType != null && message.hasOwnProperty("childType")) + if (message.childType != null && Object.hasOwnProperty.call(message, "childType")) if (!$util.isString(message.childType)) return "childType: string expected"; return null; @@ -149300,9 +164023,15 @@ * @param {Object.} object Plain object * @returns {google.api.ResourceReference} ResourceReference */ - ResourceReference.fromObject = function fromObject(object) { + ResourceReference.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.ResourceReference) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.ResourceReference: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.ResourceReference(); if (object.type != null) message.type = String(object.type); @@ -149320,17 +164049,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ResourceReference.toObject = function toObject(message, options) { + ResourceReference.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.type = ""; object.childType = ""; } - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = message.type; - if (message.childType != null && message.hasOwnProperty("childType")) + if (message.childType != null && Object.hasOwnProperty.call(message, "childType")) object.childType = message.childType; return object; }; @@ -149371,6 +164104,7 @@ * @memberof google.api * @interface IFieldInfo * @property {google.api.FieldInfo.Format|null} [format] FieldInfo format + * @property {Array.|null} [referencedTypes] FieldInfo referencedTypes */ /** @@ -149382,9 +164116,10 @@ * @param {google.api.IFieldInfo=} [properties] Properties to set */ function FieldInfo(properties) { + this.referencedTypes = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -149396,6 +164131,14 @@ */ FieldInfo.prototype.format = 0; + /** + * FieldInfo referencedTypes. + * @member {Array.} referencedTypes + * @memberof google.api.FieldInfo + * @instance + */ + FieldInfo.prototype.referencedTypes = $util.emptyArray; + /** * Creates a new FieldInfo instance using the specified properties. * @function create @@ -149417,11 +164160,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FieldInfo.encode = function encode(message, writer) { + FieldInfo.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.format != null && Object.hasOwnProperty.call(message, "format")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.format); + if (message.referencedTypes != null && message.referencedTypes.length) + for (var i = 0; i < message.referencedTypes.length; ++i) + $root.google.api.TypeReference.encode(message.referencedTypes[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -149435,7 +164185,7 @@ * @returns {$protobuf.Writer} Writer */ FieldInfo.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -149449,9 +164199,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FieldInfo.decode = function decode(reader, length, error) { + FieldInfo.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.FieldInfo(); while (reader.pos < end) { var tag = reader.uint32(); @@ -149462,8 +164216,14 @@ message.format = reader.int32(); break; } + case 2: { + if (!(message.referencedTypes && message.referencedTypes.length)) + message.referencedTypes = []; + message.referencedTypes.push($root.google.api.TypeReference.decode(reader, reader.uint32(), undefined, long + 1)); + break; + } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -149494,10 +164254,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FieldInfo.verify = function verify(message) { + FieldInfo.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.format != null && message.hasOwnProperty("format")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.format != null && Object.hasOwnProperty.call(message, "format")) switch (message.format) { default: return "format: enum value expected"; @@ -149508,6 +164272,15 @@ case 4: break; } + if (message.referencedTypes != null && Object.hasOwnProperty.call(message, "referencedTypes")) { + if (!Array.isArray(message.referencedTypes)) + return "referencedTypes: array expected"; + for (var i = 0; i < message.referencedTypes.length; ++i) { + var error = $root.google.api.TypeReference.verify(message.referencedTypes[i], long + 1); + if (error) + return "referencedTypes." + error; + } + } return null; }; @@ -149519,9 +164292,15 @@ * @param {Object.} object Plain object * @returns {google.api.FieldInfo} FieldInfo */ - FieldInfo.fromObject = function fromObject(object) { + FieldInfo.fromObject = function fromObject(object, long) { if (object instanceof $root.google.api.FieldInfo) return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.FieldInfo: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.api.FieldInfo(); switch (object.format) { default: @@ -149551,6 +164330,16 @@ message.format = 4; break; } + if (object.referencedTypes) { + if (!Array.isArray(object.referencedTypes)) + throw TypeError(".google.api.FieldInfo.referencedTypes: array expected"); + message.referencedTypes = []; + for (var i = 0; i < object.referencedTypes.length; ++i) { + if (!$util.isObject(object.referencedTypes[i])) + throw TypeError(".google.api.FieldInfo.referencedTypes: object expected"); + message.referencedTypes[i] = $root.google.api.TypeReference.fromObject(object.referencedTypes[i], long + 1); + } + } return message; }; @@ -149563,14 +164352,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FieldInfo.toObject = function toObject(message, options) { + FieldInfo.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; + if (options.arrays || options.defaults) + object.referencedTypes = []; if (options.defaults) object.format = options.enums === String ? "FORMAT_UNSPECIFIED" : 0; - if (message.format != null && message.hasOwnProperty("format")) + if (message.format != null && Object.hasOwnProperty.call(message, "format")) object.format = options.enums === String ? $root.google.api.FieldInfo.Format[message.format] === undefined ? message.format : $root.google.api.FieldInfo.Format[message.format] : message.format; + if (message.referencedTypes && message.referencedTypes.length) { + object.referencedTypes = []; + for (var j = 0; j < message.referencedTypes.length; ++j) + object.referencedTypes[j] = $root.google.api.TypeReference.toObject(message.referencedTypes[j], options, q + 1); + } return object; }; @@ -149623,6 +164423,233 @@ return FieldInfo; })(); + api.TypeReference = (function() { + + /** + * Properties of a TypeReference. + * @memberof google.api + * @interface ITypeReference + * @property {string|null} [typeName] TypeReference typeName + */ + + /** + * Constructs a new TypeReference. + * @memberof google.api + * @classdesc Represents a TypeReference. + * @implements ITypeReference + * @constructor + * @param {google.api.ITypeReference=} [properties] Properties to set + */ + function TypeReference(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null && keys[i] !== "__proto__") + this[keys[i]] = properties[keys[i]]; + } + + /** + * TypeReference typeName. + * @member {string} typeName + * @memberof google.api.TypeReference + * @instance + */ + TypeReference.prototype.typeName = ""; + + /** + * Creates a new TypeReference instance using the specified properties. + * @function create + * @memberof google.api.TypeReference + * @static + * @param {google.api.ITypeReference=} [properties] Properties to set + * @returns {google.api.TypeReference} TypeReference instance + */ + TypeReference.create = function create(properties) { + return new TypeReference(properties); + }; + + /** + * Encodes the specified TypeReference message. Does not implicitly {@link google.api.TypeReference.verify|verify} messages. + * @function encode + * @memberof google.api.TypeReference + * @static + * @param {google.api.ITypeReference} message TypeReference message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TypeReference.encode = function encode(message, writer, q) { + if (!writer) + writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + if (message.typeName != null && Object.hasOwnProperty.call(message, "typeName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.typeName); + return writer; + }; + + /** + * Encodes the specified TypeReference message, length delimited. Does not implicitly {@link google.api.TypeReference.verify|verify} messages. + * @function encodeDelimited + * @memberof google.api.TypeReference + * @static + * @param {google.api.ITypeReference} message TypeReference message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TypeReference.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); + }; + + /** + * Decodes a TypeReference message from the specified reader or buffer. + * @function decode + * @memberof google.api.TypeReference + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.api.TypeReference} TypeReference + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TypeReference.decode = function decode(reader, length, error, long) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.TypeReference(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.typeName = reader.string(); + break; + } + default: + reader.skipType(tag & 7, long); + break; + } + } + return message; + }; + + /** + * Decodes a TypeReference message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.api.TypeReference + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.api.TypeReference} TypeReference + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TypeReference.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a TypeReference message. + * @function verify + * @memberof google.api.TypeReference + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + TypeReference.verify = function verify(message, long) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.typeName != null && Object.hasOwnProperty.call(message, "typeName")) + if (!$util.isString(message.typeName)) + return "typeName: string expected"; + return null; + }; + + /** + * Creates a TypeReference message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.api.TypeReference + * @static + * @param {Object.} object Plain object + * @returns {google.api.TypeReference} TypeReference + */ + TypeReference.fromObject = function fromObject(object, long) { + if (object instanceof $root.google.api.TypeReference) + return object; + if (!$util.isObject(object)) + throw TypeError(".google.api.TypeReference: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var message = new $root.google.api.TypeReference(); + if (object.typeName != null) + message.typeName = String(object.typeName); + return message; + }; + + /** + * Creates a plain object from a TypeReference message. Also converts values to other types if specified. + * @function toObject + * @memberof google.api.TypeReference + * @static + * @param {google.api.TypeReference} message TypeReference + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + TypeReference.toObject = function toObject(message, options, q) { + if (!options) + options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + var object = {}; + if (options.defaults) + object.typeName = ""; + if (message.typeName != null && Object.hasOwnProperty.call(message, "typeName")) + object.typeName = message.typeName; + return object; + }; + + /** + * Converts this TypeReference to JSON. + * @function toJSON + * @memberof google.api.TypeReference + * @instance + * @returns {Object.} JSON object + */ + TypeReference.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for TypeReference + * @function getTypeUrl + * @memberof google.api.TypeReference + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + TypeReference.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.api.TypeReference"; + }; + + return TypeReference; + })(); + return api; })(); @@ -149656,7 +164683,7 @@ this.file = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -149689,12 +164716,16 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FileDescriptorSet.encode = function encode(message, writer) { + FileDescriptorSet.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.file != null && message.file.length) for (var i = 0; i < message.file.length; ++i) - $root.google.protobuf.FileDescriptorProto.encode(message.file[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.FileDescriptorProto.encode(message.file[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -149708,7 +164739,7 @@ * @returns {$protobuf.Writer} Writer */ FileDescriptorSet.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -149722,9 +164753,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FileDescriptorSet.decode = function decode(reader, length, error) { + FileDescriptorSet.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FileDescriptorSet(); while (reader.pos < end) { var tag = reader.uint32(); @@ -149734,11 +164769,11 @@ case 1: { if (!(message.file && message.file.length)) message.file = []; - message.file.push($root.google.protobuf.FileDescriptorProto.decode(reader, reader.uint32())); + message.file.push($root.google.protobuf.FileDescriptorProto.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -149769,14 +164804,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FileDescriptorSet.verify = function verify(message) { + FileDescriptorSet.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.file != null && message.hasOwnProperty("file")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.file != null && Object.hasOwnProperty.call(message, "file")) { if (!Array.isArray(message.file)) return "file: array expected"; for (var i = 0; i < message.file.length; ++i) { - var error = $root.google.protobuf.FileDescriptorProto.verify(message.file[i]); + var error = $root.google.protobuf.FileDescriptorProto.verify(message.file[i], long + 1); if (error) return "file." + error; } @@ -149792,18 +164831,24 @@ * @param {Object.} object Plain object * @returns {google.protobuf.FileDescriptorSet} FileDescriptorSet */ - FileDescriptorSet.fromObject = function fromObject(object) { + FileDescriptorSet.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.FileDescriptorSet) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.FileDescriptorSet: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.FileDescriptorSet(); if (object.file) { if (!Array.isArray(object.file)) throw TypeError(".google.protobuf.FileDescriptorSet.file: array expected"); message.file = []; for (var i = 0; i < object.file.length; ++i) { - if (typeof object.file[i] !== "object") + if (!$util.isObject(object.file[i])) throw TypeError(".google.protobuf.FileDescriptorSet.file: object expected"); - message.file[i] = $root.google.protobuf.FileDescriptorProto.fromObject(object.file[i]); + message.file[i] = $root.google.protobuf.FileDescriptorProto.fromObject(object.file[i], long + 1); } } return message; @@ -149818,16 +164863,20 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FileDescriptorSet.toObject = function toObject(message, options) { + FileDescriptorSet.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.file = []; if (message.file && message.file.length) { object.file = []; for (var j = 0; j < message.file.length; ++j) - object.file[j] = $root.google.protobuf.FileDescriptorProto.toObject(message.file[j], options); + object.file[j] = $root.google.protobuf.FileDescriptorProto.toObject(message.file[j], options, q + 1); } return object; }; @@ -149866,6 +164915,7 @@ * @name google.protobuf.Edition * @enum {number} * @property {number} EDITION_UNKNOWN=0 EDITION_UNKNOWN value + * @property {number} EDITION_LEGACY=900 EDITION_LEGACY value * @property {number} EDITION_PROTO2=998 EDITION_PROTO2 value * @property {number} EDITION_PROTO3=999 EDITION_PROTO3 value * @property {number} EDITION_2023=1000 EDITION_2023 value @@ -149880,6 +164930,7 @@ protobuf.Edition = (function() { var valuesById = {}, values = Object.create(valuesById); values[valuesById[0] = "EDITION_UNKNOWN"] = 0; + values[valuesById[900] = "EDITION_LEGACY"] = 900; values[valuesById[998] = "EDITION_PROTO2"] = 998; values[valuesById[999] = "EDITION_PROTO3"] = 999; values[valuesById[1000] = "EDITION_2023"] = 1000; @@ -149904,6 +164955,7 @@ * @property {Array.|null} [dependency] FileDescriptorProto dependency * @property {Array.|null} [publicDependency] FileDescriptorProto publicDependency * @property {Array.|null} [weakDependency] FileDescriptorProto weakDependency + * @property {Array.|null} [optionDependency] FileDescriptorProto optionDependency * @property {Array.|null} [messageType] FileDescriptorProto messageType * @property {Array.|null} [enumType] FileDescriptorProto enumType * @property {Array.|null} [service] FileDescriptorProto service @@ -149926,13 +164978,14 @@ this.dependency = []; this.publicDependency = []; this.weakDependency = []; + this.optionDependency = []; this.messageType = []; this.enumType = []; this.service = []; this.extension = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -149976,6 +165029,14 @@ */ FileDescriptorProto.prototype.weakDependency = $util.emptyArray; + /** + * FileDescriptorProto optionDependency. + * @member {Array.} optionDependency + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.optionDependency = $util.emptyArray; + /** * FileDescriptorProto messageType. * @member {Array.} messageType @@ -150061,9 +165122,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FileDescriptorProto.encode = function encode(message, writer) { + FileDescriptorProto.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message["package"] != null && Object.hasOwnProperty.call(message, "package")) @@ -150073,20 +165138,20 @@ writer.uint32(/* id 3, wireType 2 =*/26).string(message.dependency[i]); if (message.messageType != null && message.messageType.length) for (var i = 0; i < message.messageType.length; ++i) - $root.google.protobuf.DescriptorProto.encode(message.messageType[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.DescriptorProto.encode(message.messageType[i], writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.enumType != null && message.enumType.length) for (var i = 0; i < message.enumType.length; ++i) - $root.google.protobuf.EnumDescriptorProto.encode(message.enumType[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.EnumDescriptorProto.encode(message.enumType[i], writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.service != null && message.service.length) for (var i = 0; i < message.service.length; ++i) - $root.google.protobuf.ServiceDescriptorProto.encode(message.service[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.protobuf.ServiceDescriptorProto.encode(message.service[i], writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.extension != null && message.extension.length) for (var i = 0; i < message.extension.length; ++i) - $root.google.protobuf.FieldDescriptorProto.encode(message.extension[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.FieldDescriptorProto.encode(message.extension[i], writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.FileOptions.encode(message.options, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.protobuf.FileOptions.encode(message.options, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); if (message.sourceCodeInfo != null && Object.hasOwnProperty.call(message, "sourceCodeInfo")) - $root.google.protobuf.SourceCodeInfo.encode(message.sourceCodeInfo, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.protobuf.SourceCodeInfo.encode(message.sourceCodeInfo, writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); if (message.publicDependency != null && message.publicDependency.length) for (var i = 0; i < message.publicDependency.length; ++i) writer.uint32(/* id 10, wireType 0 =*/80).int32(message.publicDependency[i]); @@ -150097,6 +165162,9 @@ writer.uint32(/* id 12, wireType 2 =*/98).string(message.syntax); if (message.edition != null && Object.hasOwnProperty.call(message, "edition")) writer.uint32(/* id 14, wireType 0 =*/112).int32(message.edition); + if (message.optionDependency != null && message.optionDependency.length) + for (var i = 0; i < message.optionDependency.length; ++i) + writer.uint32(/* id 15, wireType 2 =*/122).string(message.optionDependency[i]); return writer; }; @@ -150110,7 +165178,7 @@ * @returns {$protobuf.Writer} Writer */ FileDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -150124,9 +165192,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FileDescriptorProto.decode = function decode(reader, length, error) { + FileDescriptorProto.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FileDescriptorProto(); while (reader.pos < end) { var tag = reader.uint32(); @@ -150169,36 +165241,42 @@ message.weakDependency.push(reader.int32()); break; } + case 15: { + if (!(message.optionDependency && message.optionDependency.length)) + message.optionDependency = []; + message.optionDependency.push(reader.string()); + break; + } case 4: { if (!(message.messageType && message.messageType.length)) message.messageType = []; - message.messageType.push($root.google.protobuf.DescriptorProto.decode(reader, reader.uint32())); + message.messageType.push($root.google.protobuf.DescriptorProto.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 5: { if (!(message.enumType && message.enumType.length)) message.enumType = []; - message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader, reader.uint32())); + message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 6: { if (!(message.service && message.service.length)) message.service = []; - message.service.push($root.google.protobuf.ServiceDescriptorProto.decode(reader, reader.uint32())); + message.service.push($root.google.protobuf.ServiceDescriptorProto.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 7: { if (!(message.extension && message.extension.length)) message.extension = []; - message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); + message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 8: { - message.options = $root.google.protobuf.FileOptions.decode(reader, reader.uint32()); + message.options = $root.google.protobuf.FileOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { - message.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.decode(reader, reader.uint32()); + message.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.decode(reader, reader.uint32(), undefined, long + 1); break; } case 12: { @@ -150210,7 +165288,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -150241,90 +165319,102 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FileDescriptorProto.verify = function verify(message) { + FileDescriptorProto.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message["package"] != null && message.hasOwnProperty("package")) + if (message["package"] != null && Object.hasOwnProperty.call(message, "package")) if (!$util.isString(message["package"])) return "package: string expected"; - if (message.dependency != null && message.hasOwnProperty("dependency")) { + if (message.dependency != null && Object.hasOwnProperty.call(message, "dependency")) { if (!Array.isArray(message.dependency)) return "dependency: array expected"; for (var i = 0; i < message.dependency.length; ++i) if (!$util.isString(message.dependency[i])) return "dependency: string[] expected"; } - if (message.publicDependency != null && message.hasOwnProperty("publicDependency")) { + if (message.publicDependency != null && Object.hasOwnProperty.call(message, "publicDependency")) { if (!Array.isArray(message.publicDependency)) return "publicDependency: array expected"; for (var i = 0; i < message.publicDependency.length; ++i) if (!$util.isInteger(message.publicDependency[i])) return "publicDependency: integer[] expected"; } - if (message.weakDependency != null && message.hasOwnProperty("weakDependency")) { + if (message.weakDependency != null && Object.hasOwnProperty.call(message, "weakDependency")) { if (!Array.isArray(message.weakDependency)) return "weakDependency: array expected"; for (var i = 0; i < message.weakDependency.length; ++i) if (!$util.isInteger(message.weakDependency[i])) return "weakDependency: integer[] expected"; } - if (message.messageType != null && message.hasOwnProperty("messageType")) { + if (message.optionDependency != null && Object.hasOwnProperty.call(message, "optionDependency")) { + if (!Array.isArray(message.optionDependency)) + return "optionDependency: array expected"; + for (var i = 0; i < message.optionDependency.length; ++i) + if (!$util.isString(message.optionDependency[i])) + return "optionDependency: string[] expected"; + } + if (message.messageType != null && Object.hasOwnProperty.call(message, "messageType")) { if (!Array.isArray(message.messageType)) return "messageType: array expected"; for (var i = 0; i < message.messageType.length; ++i) { - var error = $root.google.protobuf.DescriptorProto.verify(message.messageType[i]); + var error = $root.google.protobuf.DescriptorProto.verify(message.messageType[i], long + 1); if (error) return "messageType." + error; } } - if (message.enumType != null && message.hasOwnProperty("enumType")) { + if (message.enumType != null && Object.hasOwnProperty.call(message, "enumType")) { if (!Array.isArray(message.enumType)) return "enumType: array expected"; for (var i = 0; i < message.enumType.length; ++i) { - var error = $root.google.protobuf.EnumDescriptorProto.verify(message.enumType[i]); + var error = $root.google.protobuf.EnumDescriptorProto.verify(message.enumType[i], long + 1); if (error) return "enumType." + error; } } - if (message.service != null && message.hasOwnProperty("service")) { + if (message.service != null && Object.hasOwnProperty.call(message, "service")) { if (!Array.isArray(message.service)) return "service: array expected"; for (var i = 0; i < message.service.length; ++i) { - var error = $root.google.protobuf.ServiceDescriptorProto.verify(message.service[i]); + var error = $root.google.protobuf.ServiceDescriptorProto.verify(message.service[i], long + 1); if (error) return "service." + error; } } - if (message.extension != null && message.hasOwnProperty("extension")) { + if (message.extension != null && Object.hasOwnProperty.call(message, "extension")) { if (!Array.isArray(message.extension)) return "extension: array expected"; for (var i = 0; i < message.extension.length; ++i) { - var error = $root.google.protobuf.FieldDescriptorProto.verify(message.extension[i]); + var error = $root.google.protobuf.FieldDescriptorProto.verify(message.extension[i], long + 1); if (error) return "extension." + error; } } - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.FileOptions.verify(message.options); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) { + var error = $root.google.protobuf.FileOptions.verify(message.options, long + 1); if (error) return "options." + error; } - if (message.sourceCodeInfo != null && message.hasOwnProperty("sourceCodeInfo")) { - var error = $root.google.protobuf.SourceCodeInfo.verify(message.sourceCodeInfo); + if (message.sourceCodeInfo != null && Object.hasOwnProperty.call(message, "sourceCodeInfo")) { + var error = $root.google.protobuf.SourceCodeInfo.verify(message.sourceCodeInfo, long + 1); if (error) return "sourceCodeInfo." + error; } - if (message.syntax != null && message.hasOwnProperty("syntax")) + if (message.syntax != null && Object.hasOwnProperty.call(message, "syntax")) if (!$util.isString(message.syntax)) return "syntax: string expected"; - if (message.edition != null && message.hasOwnProperty("edition")) + if (message.edition != null && Object.hasOwnProperty.call(message, "edition")) switch (message.edition) { default: return "edition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -150348,9 +165438,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.FileDescriptorProto} FileDescriptorProto */ - FileDescriptorProto.fromObject = function fromObject(object) { + FileDescriptorProto.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.FileDescriptorProto) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.FileDescriptorProto: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.FileDescriptorProto(); if (object.name != null) message.name = String(object.name); @@ -150377,14 +165473,21 @@ for (var i = 0; i < object.weakDependency.length; ++i) message.weakDependency[i] = object.weakDependency[i] | 0; } + if (object.optionDependency) { + if (!Array.isArray(object.optionDependency)) + throw TypeError(".google.protobuf.FileDescriptorProto.optionDependency: array expected"); + message.optionDependency = []; + for (var i = 0; i < object.optionDependency.length; ++i) + message.optionDependency[i] = String(object.optionDependency[i]); + } if (object.messageType) { if (!Array.isArray(object.messageType)) throw TypeError(".google.protobuf.FileDescriptorProto.messageType: array expected"); message.messageType = []; for (var i = 0; i < object.messageType.length; ++i) { - if (typeof object.messageType[i] !== "object") + if (!$util.isObject(object.messageType[i])) throw TypeError(".google.protobuf.FileDescriptorProto.messageType: object expected"); - message.messageType[i] = $root.google.protobuf.DescriptorProto.fromObject(object.messageType[i]); + message.messageType[i] = $root.google.protobuf.DescriptorProto.fromObject(object.messageType[i], long + 1); } } if (object.enumType) { @@ -150392,9 +165495,9 @@ throw TypeError(".google.protobuf.FileDescriptorProto.enumType: array expected"); message.enumType = []; for (var i = 0; i < object.enumType.length; ++i) { - if (typeof object.enumType[i] !== "object") + if (!$util.isObject(object.enumType[i])) throw TypeError(".google.protobuf.FileDescriptorProto.enumType: object expected"); - message.enumType[i] = $root.google.protobuf.EnumDescriptorProto.fromObject(object.enumType[i]); + message.enumType[i] = $root.google.protobuf.EnumDescriptorProto.fromObject(object.enumType[i], long + 1); } } if (object.service) { @@ -150402,9 +165505,9 @@ throw TypeError(".google.protobuf.FileDescriptorProto.service: array expected"); message.service = []; for (var i = 0; i < object.service.length; ++i) { - if (typeof object.service[i] !== "object") + if (!$util.isObject(object.service[i])) throw TypeError(".google.protobuf.FileDescriptorProto.service: object expected"); - message.service[i] = $root.google.protobuf.ServiceDescriptorProto.fromObject(object.service[i]); + message.service[i] = $root.google.protobuf.ServiceDescriptorProto.fromObject(object.service[i], long + 1); } } if (object.extension) { @@ -150412,20 +165515,20 @@ throw TypeError(".google.protobuf.FileDescriptorProto.extension: array expected"); message.extension = []; for (var i = 0; i < object.extension.length; ++i) { - if (typeof object.extension[i] !== "object") + if (!$util.isObject(object.extension[i])) throw TypeError(".google.protobuf.FileDescriptorProto.extension: object expected"); - message.extension[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.extension[i]); + message.extension[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.extension[i], long + 1); } } if (object.options != null) { - if (typeof object.options !== "object") + if (!$util.isObject(object.options)) throw TypeError(".google.protobuf.FileDescriptorProto.options: object expected"); - message.options = $root.google.protobuf.FileOptions.fromObject(object.options); + message.options = $root.google.protobuf.FileOptions.fromObject(object.options, long + 1); } if (object.sourceCodeInfo != null) { - if (typeof object.sourceCodeInfo !== "object") + if (!$util.isObject(object.sourceCodeInfo)) throw TypeError(".google.protobuf.FileDescriptorProto.sourceCodeInfo: object expected"); - message.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.fromObject(object.sourceCodeInfo); + message.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.fromObject(object.sourceCodeInfo, long + 1); } if (object.syntax != null) message.syntax = String(object.syntax); @@ -150440,6 +165543,10 @@ case 0: message.edition = 0; break; + case "EDITION_LEGACY": + case 900: + message.edition = 900; + break; case "EDITION_PROTO2": case 998: message.edition = 998; @@ -150493,9 +165600,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FileDescriptorProto.toObject = function toObject(message, options) { + FileDescriptorProto.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.dependency = []; @@ -150505,6 +165616,7 @@ object.extension = []; object.publicDependency = []; object.weakDependency = []; + object.optionDependency = []; } if (options.defaults) { object.name = ""; @@ -150514,9 +165626,9 @@ object.syntax = ""; object.edition = options.enums === String ? "EDITION_UNKNOWN" : 0; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message["package"] != null && message.hasOwnProperty("package")) + if (message["package"] != null && Object.hasOwnProperty.call(message, "package")) object["package"] = message["package"]; if (message.dependency && message.dependency.length) { object.dependency = []; @@ -150526,27 +165638,27 @@ if (message.messageType && message.messageType.length) { object.messageType = []; for (var j = 0; j < message.messageType.length; ++j) - object.messageType[j] = $root.google.protobuf.DescriptorProto.toObject(message.messageType[j], options); + object.messageType[j] = $root.google.protobuf.DescriptorProto.toObject(message.messageType[j], options, q + 1); } if (message.enumType && message.enumType.length) { object.enumType = []; for (var j = 0; j < message.enumType.length; ++j) - object.enumType[j] = $root.google.protobuf.EnumDescriptorProto.toObject(message.enumType[j], options); + object.enumType[j] = $root.google.protobuf.EnumDescriptorProto.toObject(message.enumType[j], options, q + 1); } if (message.service && message.service.length) { object.service = []; for (var j = 0; j < message.service.length; ++j) - object.service[j] = $root.google.protobuf.ServiceDescriptorProto.toObject(message.service[j], options); + object.service[j] = $root.google.protobuf.ServiceDescriptorProto.toObject(message.service[j], options, q + 1); } if (message.extension && message.extension.length) { object.extension = []; for (var j = 0; j < message.extension.length; ++j) - object.extension[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.extension[j], options); + object.extension[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.extension[j], options, q + 1); } - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.FileOptions.toObject(message.options, options); - if (message.sourceCodeInfo != null && message.hasOwnProperty("sourceCodeInfo")) - object.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.toObject(message.sourceCodeInfo, options); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + object.options = $root.google.protobuf.FileOptions.toObject(message.options, options, q + 1); + if (message.sourceCodeInfo != null && Object.hasOwnProperty.call(message, "sourceCodeInfo")) + object.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.toObject(message.sourceCodeInfo, options, q + 1); if (message.publicDependency && message.publicDependency.length) { object.publicDependency = []; for (var j = 0; j < message.publicDependency.length; ++j) @@ -150557,10 +165669,15 @@ for (var j = 0; j < message.weakDependency.length; ++j) object.weakDependency[j] = message.weakDependency[j]; } - if (message.syntax != null && message.hasOwnProperty("syntax")) + if (message.syntax != null && Object.hasOwnProperty.call(message, "syntax")) object.syntax = message.syntax; - if (message.edition != null && message.hasOwnProperty("edition")) + if (message.edition != null && Object.hasOwnProperty.call(message, "edition")) object.edition = options.enums === String ? $root.google.protobuf.Edition[message.edition] === undefined ? message.edition : $root.google.protobuf.Edition[message.edition] : message.edition; + if (message.optionDependency && message.optionDependency.length) { + object.optionDependency = []; + for (var j = 0; j < message.optionDependency.length; ++j) + object.optionDependency[j] = message.optionDependency[j]; + } return object; }; @@ -150609,6 +165726,7 @@ * @property {google.protobuf.IMessageOptions|null} [options] DescriptorProto options * @property {Array.|null} [reservedRange] DescriptorProto reservedRange * @property {Array.|null} [reservedName] DescriptorProto reservedName + * @property {google.protobuf.SymbolVisibility|null} [visibility] DescriptorProto visibility */ /** @@ -150630,7 +165748,7 @@ this.reservedName = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -150714,6 +165832,14 @@ */ DescriptorProto.prototype.reservedName = $util.emptyArray; + /** + * DescriptorProto visibility. + * @member {google.protobuf.SymbolVisibility} visibility + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.visibility = 0; + /** * Creates a new DescriptorProto instance using the specified properties. * @function create @@ -150735,37 +165861,43 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DescriptorProto.encode = function encode(message, writer) { + DescriptorProto.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.field != null && message.field.length) for (var i = 0; i < message.field.length; ++i) - $root.google.protobuf.FieldDescriptorProto.encode(message.field[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.FieldDescriptorProto.encode(message.field[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.nestedType != null && message.nestedType.length) for (var i = 0; i < message.nestedType.length; ++i) - $root.google.protobuf.DescriptorProto.encode(message.nestedType[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.DescriptorProto.encode(message.nestedType[i], writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.enumType != null && message.enumType.length) for (var i = 0; i < message.enumType.length; ++i) - $root.google.protobuf.EnumDescriptorProto.encode(message.enumType[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.EnumDescriptorProto.encode(message.enumType[i], writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.extensionRange != null && message.extensionRange.length) for (var i = 0; i < message.extensionRange.length; ++i) - $root.google.protobuf.DescriptorProto.ExtensionRange.encode(message.extensionRange[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.protobuf.DescriptorProto.ExtensionRange.encode(message.extensionRange[i], writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); if (message.extension != null && message.extension.length) for (var i = 0; i < message.extension.length; ++i) - $root.google.protobuf.FieldDescriptorProto.encode(message.extension[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.protobuf.FieldDescriptorProto.encode(message.extension[i], writer.uint32(/* id 6, wireType 2 =*/50).fork(), q + 1).ldelim(); if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.MessageOptions.encode(message.options, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.MessageOptions.encode(message.options, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.oneofDecl != null && message.oneofDecl.length) for (var i = 0; i < message.oneofDecl.length; ++i) - $root.google.protobuf.OneofDescriptorProto.encode(message.oneofDecl[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.protobuf.OneofDescriptorProto.encode(message.oneofDecl[i], writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); if (message.reservedRange != null && message.reservedRange.length) for (var i = 0; i < message.reservedRange.length; ++i) - $root.google.protobuf.DescriptorProto.ReservedRange.encode(message.reservedRange[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + $root.google.protobuf.DescriptorProto.ReservedRange.encode(message.reservedRange[i], writer.uint32(/* id 9, wireType 2 =*/74).fork(), q + 1).ldelim(); if (message.reservedName != null && message.reservedName.length) for (var i = 0; i < message.reservedName.length; ++i) writer.uint32(/* id 10, wireType 2 =*/82).string(message.reservedName[i]); + if (message.visibility != null && Object.hasOwnProperty.call(message, "visibility")) + writer.uint32(/* id 11, wireType 0 =*/88).int32(message.visibility); return writer; }; @@ -150779,7 +165911,7 @@ * @returns {$protobuf.Writer} Writer */ DescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -150793,9 +165925,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DescriptorProto.decode = function decode(reader, length, error) { + DescriptorProto.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.DescriptorProto(); while (reader.pos < end) { var tag = reader.uint32(); @@ -150809,47 +165945,47 @@ case 2: { if (!(message.field && message.field.length)) message.field = []; - message.field.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); + message.field.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 6: { if (!(message.extension && message.extension.length)) message.extension = []; - message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); + message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { if (!(message.nestedType && message.nestedType.length)) message.nestedType = []; - message.nestedType.push($root.google.protobuf.DescriptorProto.decode(reader, reader.uint32())); + message.nestedType.push($root.google.protobuf.DescriptorProto.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 4: { if (!(message.enumType && message.enumType.length)) message.enumType = []; - message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader, reader.uint32())); + message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 5: { if (!(message.extensionRange && message.extensionRange.length)) message.extensionRange = []; - message.extensionRange.push($root.google.protobuf.DescriptorProto.ExtensionRange.decode(reader, reader.uint32())); + message.extensionRange.push($root.google.protobuf.DescriptorProto.ExtensionRange.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 8: { if (!(message.oneofDecl && message.oneofDecl.length)) message.oneofDecl = []; - message.oneofDecl.push($root.google.protobuf.OneofDescriptorProto.decode(reader, reader.uint32())); + message.oneofDecl.push($root.google.protobuf.OneofDescriptorProto.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 7: { - message.options = $root.google.protobuf.MessageOptions.decode(reader, reader.uint32()); + message.options = $root.google.protobuf.MessageOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { if (!(message.reservedRange && message.reservedRange.length)) message.reservedRange = []; - message.reservedRange.push($root.google.protobuf.DescriptorProto.ReservedRange.decode(reader, reader.uint32())); + message.reservedRange.push($root.google.protobuf.DescriptorProto.ReservedRange.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 10: { @@ -150858,8 +165994,12 @@ message.reservedName.push(reader.string()); break; } + case 11: { + message.visibility = reader.int32(); + break; + } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -150890,87 +166030,100 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DescriptorProto.verify = function verify(message) { + DescriptorProto.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.field != null && message.hasOwnProperty("field")) { + if (message.field != null && Object.hasOwnProperty.call(message, "field")) { if (!Array.isArray(message.field)) return "field: array expected"; for (var i = 0; i < message.field.length; ++i) { - var error = $root.google.protobuf.FieldDescriptorProto.verify(message.field[i]); + var error = $root.google.protobuf.FieldDescriptorProto.verify(message.field[i], long + 1); if (error) return "field." + error; } } - if (message.extension != null && message.hasOwnProperty("extension")) { + if (message.extension != null && Object.hasOwnProperty.call(message, "extension")) { if (!Array.isArray(message.extension)) return "extension: array expected"; for (var i = 0; i < message.extension.length; ++i) { - var error = $root.google.protobuf.FieldDescriptorProto.verify(message.extension[i]); + var error = $root.google.protobuf.FieldDescriptorProto.verify(message.extension[i], long + 1); if (error) return "extension." + error; } } - if (message.nestedType != null && message.hasOwnProperty("nestedType")) { + if (message.nestedType != null && Object.hasOwnProperty.call(message, "nestedType")) { if (!Array.isArray(message.nestedType)) return "nestedType: array expected"; for (var i = 0; i < message.nestedType.length; ++i) { - var error = $root.google.protobuf.DescriptorProto.verify(message.nestedType[i]); + var error = $root.google.protobuf.DescriptorProto.verify(message.nestedType[i], long + 1); if (error) return "nestedType." + error; } } - if (message.enumType != null && message.hasOwnProperty("enumType")) { + if (message.enumType != null && Object.hasOwnProperty.call(message, "enumType")) { if (!Array.isArray(message.enumType)) return "enumType: array expected"; for (var i = 0; i < message.enumType.length; ++i) { - var error = $root.google.protobuf.EnumDescriptorProto.verify(message.enumType[i]); + var error = $root.google.protobuf.EnumDescriptorProto.verify(message.enumType[i], long + 1); if (error) return "enumType." + error; } } - if (message.extensionRange != null && message.hasOwnProperty("extensionRange")) { + if (message.extensionRange != null && Object.hasOwnProperty.call(message, "extensionRange")) { if (!Array.isArray(message.extensionRange)) return "extensionRange: array expected"; for (var i = 0; i < message.extensionRange.length; ++i) { - var error = $root.google.protobuf.DescriptorProto.ExtensionRange.verify(message.extensionRange[i]); + var error = $root.google.protobuf.DescriptorProto.ExtensionRange.verify(message.extensionRange[i], long + 1); if (error) return "extensionRange." + error; } } - if (message.oneofDecl != null && message.hasOwnProperty("oneofDecl")) { + if (message.oneofDecl != null && Object.hasOwnProperty.call(message, "oneofDecl")) { if (!Array.isArray(message.oneofDecl)) return "oneofDecl: array expected"; for (var i = 0; i < message.oneofDecl.length; ++i) { - var error = $root.google.protobuf.OneofDescriptorProto.verify(message.oneofDecl[i]); + var error = $root.google.protobuf.OneofDescriptorProto.verify(message.oneofDecl[i], long + 1); if (error) return "oneofDecl." + error; } } - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.MessageOptions.verify(message.options); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) { + var error = $root.google.protobuf.MessageOptions.verify(message.options, long + 1); if (error) return "options." + error; } - if (message.reservedRange != null && message.hasOwnProperty("reservedRange")) { + if (message.reservedRange != null && Object.hasOwnProperty.call(message, "reservedRange")) { if (!Array.isArray(message.reservedRange)) return "reservedRange: array expected"; for (var i = 0; i < message.reservedRange.length; ++i) { - var error = $root.google.protobuf.DescriptorProto.ReservedRange.verify(message.reservedRange[i]); + var error = $root.google.protobuf.DescriptorProto.ReservedRange.verify(message.reservedRange[i], long + 1); if (error) return "reservedRange." + error; } } - if (message.reservedName != null && message.hasOwnProperty("reservedName")) { + if (message.reservedName != null && Object.hasOwnProperty.call(message, "reservedName")) { if (!Array.isArray(message.reservedName)) return "reservedName: array expected"; for (var i = 0; i < message.reservedName.length; ++i) if (!$util.isString(message.reservedName[i])) return "reservedName: string[] expected"; } + if (message.visibility != null && Object.hasOwnProperty.call(message, "visibility")) + switch (message.visibility) { + default: + return "visibility: enum value expected"; + case 0: + case 1: + case 2: + break; + } return null; }; @@ -150982,9 +166135,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.DescriptorProto} DescriptorProto */ - DescriptorProto.fromObject = function fromObject(object) { + DescriptorProto.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.DescriptorProto) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.DescriptorProto: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.DescriptorProto(); if (object.name != null) message.name = String(object.name); @@ -150993,9 +166152,9 @@ throw TypeError(".google.protobuf.DescriptorProto.field: array expected"); message.field = []; for (var i = 0; i < object.field.length; ++i) { - if (typeof object.field[i] !== "object") + if (!$util.isObject(object.field[i])) throw TypeError(".google.protobuf.DescriptorProto.field: object expected"); - message.field[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.field[i]); + message.field[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.field[i], long + 1); } } if (object.extension) { @@ -151003,9 +166162,9 @@ throw TypeError(".google.protobuf.DescriptorProto.extension: array expected"); message.extension = []; for (var i = 0; i < object.extension.length; ++i) { - if (typeof object.extension[i] !== "object") + if (!$util.isObject(object.extension[i])) throw TypeError(".google.protobuf.DescriptorProto.extension: object expected"); - message.extension[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.extension[i]); + message.extension[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.extension[i], long + 1); } } if (object.nestedType) { @@ -151013,9 +166172,9 @@ throw TypeError(".google.protobuf.DescriptorProto.nestedType: array expected"); message.nestedType = []; for (var i = 0; i < object.nestedType.length; ++i) { - if (typeof object.nestedType[i] !== "object") + if (!$util.isObject(object.nestedType[i])) throw TypeError(".google.protobuf.DescriptorProto.nestedType: object expected"); - message.nestedType[i] = $root.google.protobuf.DescriptorProto.fromObject(object.nestedType[i]); + message.nestedType[i] = $root.google.protobuf.DescriptorProto.fromObject(object.nestedType[i], long + 1); } } if (object.enumType) { @@ -151023,9 +166182,9 @@ throw TypeError(".google.protobuf.DescriptorProto.enumType: array expected"); message.enumType = []; for (var i = 0; i < object.enumType.length; ++i) { - if (typeof object.enumType[i] !== "object") + if (!$util.isObject(object.enumType[i])) throw TypeError(".google.protobuf.DescriptorProto.enumType: object expected"); - message.enumType[i] = $root.google.protobuf.EnumDescriptorProto.fromObject(object.enumType[i]); + message.enumType[i] = $root.google.protobuf.EnumDescriptorProto.fromObject(object.enumType[i], long + 1); } } if (object.extensionRange) { @@ -151033,9 +166192,9 @@ throw TypeError(".google.protobuf.DescriptorProto.extensionRange: array expected"); message.extensionRange = []; for (var i = 0; i < object.extensionRange.length; ++i) { - if (typeof object.extensionRange[i] !== "object") + if (!$util.isObject(object.extensionRange[i])) throw TypeError(".google.protobuf.DescriptorProto.extensionRange: object expected"); - message.extensionRange[i] = $root.google.protobuf.DescriptorProto.ExtensionRange.fromObject(object.extensionRange[i]); + message.extensionRange[i] = $root.google.protobuf.DescriptorProto.ExtensionRange.fromObject(object.extensionRange[i], long + 1); } } if (object.oneofDecl) { @@ -151043,24 +166202,24 @@ throw TypeError(".google.protobuf.DescriptorProto.oneofDecl: array expected"); message.oneofDecl = []; for (var i = 0; i < object.oneofDecl.length; ++i) { - if (typeof object.oneofDecl[i] !== "object") + if (!$util.isObject(object.oneofDecl[i])) throw TypeError(".google.protobuf.DescriptorProto.oneofDecl: object expected"); - message.oneofDecl[i] = $root.google.protobuf.OneofDescriptorProto.fromObject(object.oneofDecl[i]); + message.oneofDecl[i] = $root.google.protobuf.OneofDescriptorProto.fromObject(object.oneofDecl[i], long + 1); } } if (object.options != null) { - if (typeof object.options !== "object") + if (!$util.isObject(object.options)) throw TypeError(".google.protobuf.DescriptorProto.options: object expected"); - message.options = $root.google.protobuf.MessageOptions.fromObject(object.options); + message.options = $root.google.protobuf.MessageOptions.fromObject(object.options, long + 1); } if (object.reservedRange) { if (!Array.isArray(object.reservedRange)) throw TypeError(".google.protobuf.DescriptorProto.reservedRange: array expected"); message.reservedRange = []; for (var i = 0; i < object.reservedRange.length; ++i) { - if (typeof object.reservedRange[i] !== "object") + if (!$util.isObject(object.reservedRange[i])) throw TypeError(".google.protobuf.DescriptorProto.reservedRange: object expected"); - message.reservedRange[i] = $root.google.protobuf.DescriptorProto.ReservedRange.fromObject(object.reservedRange[i]); + message.reservedRange[i] = $root.google.protobuf.DescriptorProto.ReservedRange.fromObject(object.reservedRange[i], long + 1); } } if (object.reservedName) { @@ -151070,6 +166229,26 @@ for (var i = 0; i < object.reservedName.length; ++i) message.reservedName[i] = String(object.reservedName[i]); } + switch (object.visibility) { + default: + if (typeof object.visibility === "number") { + message.visibility = object.visibility; + break; + } + break; + case "VISIBILITY_UNSET": + case 0: + message.visibility = 0; + break; + case "VISIBILITY_LOCAL": + case 1: + message.visibility = 1; + break; + case "VISIBILITY_EXPORT": + case 2: + message.visibility = 2; + break; + } return message; }; @@ -151082,9 +166261,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DescriptorProto.toObject = function toObject(message, options) { + DescriptorProto.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.field = []; @@ -151099,51 +166282,54 @@ if (options.defaults) { object.name = ""; object.options = null; + object.visibility = options.enums === String ? "VISIBILITY_UNSET" : 0; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; if (message.field && message.field.length) { object.field = []; for (var j = 0; j < message.field.length; ++j) - object.field[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.field[j], options); + object.field[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.field[j], options, q + 1); } if (message.nestedType && message.nestedType.length) { object.nestedType = []; for (var j = 0; j < message.nestedType.length; ++j) - object.nestedType[j] = $root.google.protobuf.DescriptorProto.toObject(message.nestedType[j], options); + object.nestedType[j] = $root.google.protobuf.DescriptorProto.toObject(message.nestedType[j], options, q + 1); } if (message.enumType && message.enumType.length) { object.enumType = []; for (var j = 0; j < message.enumType.length; ++j) - object.enumType[j] = $root.google.protobuf.EnumDescriptorProto.toObject(message.enumType[j], options); + object.enumType[j] = $root.google.protobuf.EnumDescriptorProto.toObject(message.enumType[j], options, q + 1); } if (message.extensionRange && message.extensionRange.length) { object.extensionRange = []; for (var j = 0; j < message.extensionRange.length; ++j) - object.extensionRange[j] = $root.google.protobuf.DescriptorProto.ExtensionRange.toObject(message.extensionRange[j], options); + object.extensionRange[j] = $root.google.protobuf.DescriptorProto.ExtensionRange.toObject(message.extensionRange[j], options, q + 1); } if (message.extension && message.extension.length) { object.extension = []; for (var j = 0; j < message.extension.length; ++j) - object.extension[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.extension[j], options); + object.extension[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.extension[j], options, q + 1); } - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.MessageOptions.toObject(message.options, options); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + object.options = $root.google.protobuf.MessageOptions.toObject(message.options, options, q + 1); if (message.oneofDecl && message.oneofDecl.length) { object.oneofDecl = []; for (var j = 0; j < message.oneofDecl.length; ++j) - object.oneofDecl[j] = $root.google.protobuf.OneofDescriptorProto.toObject(message.oneofDecl[j], options); + object.oneofDecl[j] = $root.google.protobuf.OneofDescriptorProto.toObject(message.oneofDecl[j], options, q + 1); } if (message.reservedRange && message.reservedRange.length) { object.reservedRange = []; for (var j = 0; j < message.reservedRange.length; ++j) - object.reservedRange[j] = $root.google.protobuf.DescriptorProto.ReservedRange.toObject(message.reservedRange[j], options); + object.reservedRange[j] = $root.google.protobuf.DescriptorProto.ReservedRange.toObject(message.reservedRange[j], options, q + 1); } if (message.reservedName && message.reservedName.length) { object.reservedName = []; for (var j = 0; j < message.reservedName.length; ++j) object.reservedName[j] = message.reservedName[j]; } + if (message.visibility != null && Object.hasOwnProperty.call(message, "visibility")) + object.visibility = options.enums === String ? $root.google.protobuf.SymbolVisibility[message.visibility] === undefined ? message.visibility : $root.google.protobuf.SymbolVisibility[message.visibility] : message.visibility; return object; }; @@ -151195,7 +166381,7 @@ function ExtensionRange(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -151244,15 +166430,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ExtensionRange.encode = function encode(message, writer) { + ExtensionRange.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.start != null && Object.hasOwnProperty.call(message, "start")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start); if (message.end != null && Object.hasOwnProperty.call(message, "end")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.end); if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.ExtensionRangeOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.ExtensionRangeOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -151266,7 +166456,7 @@ * @returns {$protobuf.Writer} Writer */ ExtensionRange.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -151280,9 +166470,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExtensionRange.decode = function decode(reader, length, error) { + ExtensionRange.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.DescriptorProto.ExtensionRange(); while (reader.pos < end) { var tag = reader.uint32(); @@ -151298,11 +166492,11 @@ break; } case 3: { - message.options = $root.google.protobuf.ExtensionRangeOptions.decode(reader, reader.uint32()); + message.options = $root.google.protobuf.ExtensionRangeOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -151333,17 +166527,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ExtensionRange.verify = function verify(message) { + ExtensionRange.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.start != null && message.hasOwnProperty("start")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.start != null && Object.hasOwnProperty.call(message, "start")) if (!$util.isInteger(message.start)) return "start: integer expected"; - if (message.end != null && message.hasOwnProperty("end")) + if (message.end != null && Object.hasOwnProperty.call(message, "end")) if (!$util.isInteger(message.end)) return "end: integer expected"; - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.ExtensionRangeOptions.verify(message.options); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) { + var error = $root.google.protobuf.ExtensionRangeOptions.verify(message.options, long + 1); if (error) return "options." + error; } @@ -151358,18 +166556,24 @@ * @param {Object.} object Plain object * @returns {google.protobuf.DescriptorProto.ExtensionRange} ExtensionRange */ - ExtensionRange.fromObject = function fromObject(object) { + ExtensionRange.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.DescriptorProto.ExtensionRange) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.DescriptorProto.ExtensionRange: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.DescriptorProto.ExtensionRange(); if (object.start != null) message.start = object.start | 0; if (object.end != null) message.end = object.end | 0; if (object.options != null) { - if (typeof object.options !== "object") + if (!$util.isObject(object.options)) throw TypeError(".google.protobuf.DescriptorProto.ExtensionRange.options: object expected"); - message.options = $root.google.protobuf.ExtensionRangeOptions.fromObject(object.options); + message.options = $root.google.protobuf.ExtensionRangeOptions.fromObject(object.options, long + 1); } return message; }; @@ -151383,21 +166587,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ExtensionRange.toObject = function toObject(message, options) { + ExtensionRange.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.start = 0; object.end = 0; object.options = null; } - if (message.start != null && message.hasOwnProperty("start")) + if (message.start != null && Object.hasOwnProperty.call(message, "start")) object.start = message.start; - if (message.end != null && message.hasOwnProperty("end")) + if (message.end != null && Object.hasOwnProperty.call(message, "end")) object.end = message.end; - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.ExtensionRangeOptions.toObject(message.options, options); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + object.options = $root.google.protobuf.ExtensionRangeOptions.toObject(message.options, options, q + 1); return object; }; @@ -151451,7 +166659,7 @@ function ReservedRange(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -151492,9 +166700,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ReservedRange.encode = function encode(message, writer) { + ReservedRange.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.start != null && Object.hasOwnProperty.call(message, "start")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start); if (message.end != null && Object.hasOwnProperty.call(message, "end")) @@ -151512,7 +166724,7 @@ * @returns {$protobuf.Writer} Writer */ ReservedRange.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -151526,9 +166738,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ReservedRange.decode = function decode(reader, length, error) { + ReservedRange.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.DescriptorProto.ReservedRange(); while (reader.pos < end) { var tag = reader.uint32(); @@ -151544,7 +166760,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -151575,13 +166791,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ReservedRange.verify = function verify(message) { + ReservedRange.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.start != null && message.hasOwnProperty("start")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.start != null && Object.hasOwnProperty.call(message, "start")) if (!$util.isInteger(message.start)) return "start: integer expected"; - if (message.end != null && message.hasOwnProperty("end")) + if (message.end != null && Object.hasOwnProperty.call(message, "end")) if (!$util.isInteger(message.end)) return "end: integer expected"; return null; @@ -151595,9 +166815,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.DescriptorProto.ReservedRange} ReservedRange */ - ReservedRange.fromObject = function fromObject(object) { + ReservedRange.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.DescriptorProto.ReservedRange) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.DescriptorProto.ReservedRange: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.DescriptorProto.ReservedRange(); if (object.start != null) message.start = object.start | 0; @@ -151615,17 +166841,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ReservedRange.toObject = function toObject(message, options) { + ReservedRange.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.start = 0; object.end = 0; } - if (message.start != null && message.hasOwnProperty("start")) + if (message.start != null && Object.hasOwnProperty.call(message, "start")) object.start = message.start; - if (message.end != null && message.hasOwnProperty("end")) + if (message.end != null && Object.hasOwnProperty.call(message, "end")) object.end = message.end; return object; }; @@ -151687,7 +166917,7 @@ this.declaration = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -151744,19 +166974,23 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ExtensionRangeOptions.encode = function encode(message, writer) { + ExtensionRangeOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.declaration != null && message.declaration.length) for (var i = 0; i < message.declaration.length; ++i) - $root.google.protobuf.ExtensionRangeOptions.Declaration.encode(message.declaration[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.ExtensionRangeOptions.Declaration.encode(message.declaration[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.verification != null && Object.hasOwnProperty.call(message, "verification")) writer.uint32(/* id 3, wireType 0 =*/24).int32(message.verification); if (message.features != null && Object.hasOwnProperty.call(message, "features")) - $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 50, wireType 2 =*/402).fork()).ldelim(); + $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 50, wireType 2 =*/402).fork(), q + 1).ldelim(); if (message.uninterpretedOption != null && message.uninterpretedOption.length) for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork(), q + 1).ldelim(); return writer; }; @@ -151770,7 +167004,7 @@ * @returns {$protobuf.Writer} Writer */ ExtensionRangeOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -151784,9 +167018,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExtensionRangeOptions.decode = function decode(reader, length, error) { + ExtensionRangeOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ExtensionRangeOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -151796,17 +167034,17 @@ case 999: { if (!(message.uninterpretedOption && message.uninterpretedOption.length)) message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { if (!(message.declaration && message.declaration.length)) message.declaration = []; - message.declaration.push($root.google.protobuf.ExtensionRangeOptions.Declaration.decode(reader, reader.uint32())); + message.declaration.push($root.google.protobuf.ExtensionRangeOptions.Declaration.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 50: { - message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32()); + message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -151814,7 +167052,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -151845,33 +167083,37 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ExtensionRangeOptions.verify = function verify(message) { + ExtensionRangeOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.uninterpretedOption != null && Object.hasOwnProperty.call(message, "uninterpretedOption")) { if (!Array.isArray(message.uninterpretedOption)) return "uninterpretedOption: array expected"; for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i], long + 1); if (error) return "uninterpretedOption." + error; } } - if (message.declaration != null && message.hasOwnProperty("declaration")) { + if (message.declaration != null && Object.hasOwnProperty.call(message, "declaration")) { if (!Array.isArray(message.declaration)) return "declaration: array expected"; for (var i = 0; i < message.declaration.length; ++i) { - var error = $root.google.protobuf.ExtensionRangeOptions.Declaration.verify(message.declaration[i]); + var error = $root.google.protobuf.ExtensionRangeOptions.Declaration.verify(message.declaration[i], long + 1); if (error) return "declaration." + error; } } - if (message.features != null && message.hasOwnProperty("features")) { - var error = $root.google.protobuf.FeatureSet.verify(message.features); + if (message.features != null && Object.hasOwnProperty.call(message, "features")) { + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } - if (message.verification != null && message.hasOwnProperty("verification")) + if (message.verification != null && Object.hasOwnProperty.call(message, "verification")) switch (message.verification) { default: return "verification: enum value expected"; @@ -151890,18 +167132,24 @@ * @param {Object.} object Plain object * @returns {google.protobuf.ExtensionRangeOptions} ExtensionRangeOptions */ - ExtensionRangeOptions.fromObject = function fromObject(object) { + ExtensionRangeOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.ExtensionRangeOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.ExtensionRangeOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.ExtensionRangeOptions(); if (object.uninterpretedOption) { if (!Array.isArray(object.uninterpretedOption)) throw TypeError(".google.protobuf.ExtensionRangeOptions.uninterpretedOption: array expected"); message.uninterpretedOption = []; for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") + if (!$util.isObject(object.uninterpretedOption[i])) throw TypeError(".google.protobuf.ExtensionRangeOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i], long + 1); } } if (object.declaration) { @@ -151909,15 +167157,15 @@ throw TypeError(".google.protobuf.ExtensionRangeOptions.declaration: array expected"); message.declaration = []; for (var i = 0; i < object.declaration.length; ++i) { - if (typeof object.declaration[i] !== "object") + if (!$util.isObject(object.declaration[i])) throw TypeError(".google.protobuf.ExtensionRangeOptions.declaration: object expected"); - message.declaration[i] = $root.google.protobuf.ExtensionRangeOptions.Declaration.fromObject(object.declaration[i]); + message.declaration[i] = $root.google.protobuf.ExtensionRangeOptions.Declaration.fromObject(object.declaration[i], long + 1); } } if (object.features != null) { - if (typeof object.features !== "object") + if (!$util.isObject(object.features)) throw TypeError(".google.protobuf.ExtensionRangeOptions.features: object expected"); - message.features = $root.google.protobuf.FeatureSet.fromObject(object.features); + message.features = $root.google.protobuf.FeatureSet.fromObject(object.features, long + 1); } switch (object.verification) { case "DECLARATION": @@ -151947,9 +167195,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ExtensionRangeOptions.toObject = function toObject(message, options) { + ExtensionRangeOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.declaration = []; @@ -151962,16 +167214,16 @@ if (message.declaration && message.declaration.length) { object.declaration = []; for (var j = 0; j < message.declaration.length; ++j) - object.declaration[j] = $root.google.protobuf.ExtensionRangeOptions.Declaration.toObject(message.declaration[j], options); + object.declaration[j] = $root.google.protobuf.ExtensionRangeOptions.Declaration.toObject(message.declaration[j], options, q + 1); } - if (message.verification != null && message.hasOwnProperty("verification")) + if (message.verification != null && Object.hasOwnProperty.call(message, "verification")) object.verification = options.enums === String ? $root.google.protobuf.ExtensionRangeOptions.VerificationState[message.verification] === undefined ? message.verification : $root.google.protobuf.ExtensionRangeOptions.VerificationState[message.verification] : message.verification; - if (message.features != null && message.hasOwnProperty("features")) - object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options); + if (message.features != null && Object.hasOwnProperty.call(message, "features")) + object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options, q + 1); if (message.uninterpretedOption && message.uninterpretedOption.length) { object.uninterpretedOption = []; for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options, q + 1); } return object; }; @@ -152026,7 +167278,7 @@ function Declaration(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -152091,9 +167343,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Declaration.encode = function encode(message, writer) { + Declaration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.number != null && Object.hasOwnProperty.call(message, "number")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.number); if (message.fullName != null && Object.hasOwnProperty.call(message, "fullName")) @@ -152117,7 +167373,7 @@ * @returns {$protobuf.Writer} Writer */ Declaration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -152131,9 +167387,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Declaration.decode = function decode(reader, length, error) { + Declaration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ExtensionRangeOptions.Declaration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -152161,7 +167421,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -152192,22 +167452,26 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Declaration.verify = function verify(message) { + Declaration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.number != null && message.hasOwnProperty("number")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.number != null && Object.hasOwnProperty.call(message, "number")) if (!$util.isInteger(message.number)) return "number: integer expected"; - if (message.fullName != null && message.hasOwnProperty("fullName")) + if (message.fullName != null && Object.hasOwnProperty.call(message, "fullName")) if (!$util.isString(message.fullName)) return "fullName: string expected"; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) if (!$util.isString(message.type)) return "type: string expected"; - if (message.reserved != null && message.hasOwnProperty("reserved")) + if (message.reserved != null && Object.hasOwnProperty.call(message, "reserved")) if (typeof message.reserved !== "boolean") return "reserved: boolean expected"; - if (message.repeated != null && message.hasOwnProperty("repeated")) + if (message.repeated != null && Object.hasOwnProperty.call(message, "repeated")) if (typeof message.repeated !== "boolean") return "repeated: boolean expected"; return null; @@ -152221,9 +167485,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.ExtensionRangeOptions.Declaration} Declaration */ - Declaration.fromObject = function fromObject(object) { + Declaration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.ExtensionRangeOptions.Declaration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.ExtensionRangeOptions.Declaration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.ExtensionRangeOptions.Declaration(); if (object.number != null) message.number = object.number | 0; @@ -152247,9 +167517,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Declaration.toObject = function toObject(message, options) { + Declaration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.number = 0; @@ -152258,15 +167532,15 @@ object.reserved = false; object.repeated = false; } - if (message.number != null && message.hasOwnProperty("number")) + if (message.number != null && Object.hasOwnProperty.call(message, "number")) object.number = message.number; - if (message.fullName != null && message.hasOwnProperty("fullName")) + if (message.fullName != null && Object.hasOwnProperty.call(message, "fullName")) object.fullName = message.fullName; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = message.type; - if (message.reserved != null && message.hasOwnProperty("reserved")) + if (message.reserved != null && Object.hasOwnProperty.call(message, "reserved")) object.reserved = message.reserved; - if (message.repeated != null && message.hasOwnProperty("repeated")) + if (message.repeated != null && Object.hasOwnProperty.call(message, "repeated")) object.repeated = message.repeated; return object; }; @@ -152347,7 +167621,7 @@ function FieldDescriptorProto(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -152460,9 +167734,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FieldDescriptorProto.encode = function encode(message, writer) { + FieldDescriptorProto.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.extendee != null && Object.hasOwnProperty.call(message, "extendee")) @@ -152478,7 +167756,7 @@ if (message.defaultValue != null && Object.hasOwnProperty.call(message, "defaultValue")) writer.uint32(/* id 7, wireType 2 =*/58).string(message.defaultValue); if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.FieldOptions.encode(message.options, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + $root.google.protobuf.FieldOptions.encode(message.options, writer.uint32(/* id 8, wireType 2 =*/66).fork(), q + 1).ldelim(); if (message.oneofIndex != null && Object.hasOwnProperty.call(message, "oneofIndex")) writer.uint32(/* id 9, wireType 0 =*/72).int32(message.oneofIndex); if (message.jsonName != null && Object.hasOwnProperty.call(message, "jsonName")) @@ -152498,7 +167776,7 @@ * @returns {$protobuf.Writer} Writer */ FieldDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -152512,9 +167790,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FieldDescriptorProto.decode = function decode(reader, length, error) { + FieldDescriptorProto.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FieldDescriptorProto(); while (reader.pos < end) { var tag = reader.uint32(); @@ -152558,7 +167840,7 @@ break; } case 8: { - message.options = $root.google.protobuf.FieldOptions.decode(reader, reader.uint32()); + message.options = $root.google.protobuf.FieldOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 17: { @@ -152566,7 +167848,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -152597,16 +167879,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FieldDescriptorProto.verify = function verify(message) { + FieldDescriptorProto.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.number != null && message.hasOwnProperty("number")) + if (message.number != null && Object.hasOwnProperty.call(message, "number")) if (!$util.isInteger(message.number)) return "number: integer expected"; - if (message.label != null && message.hasOwnProperty("label")) + if (message.label != null && Object.hasOwnProperty.call(message, "label")) switch (message.label) { default: return "label: enum value expected"; @@ -152615,7 +167901,7 @@ case 2: break; } - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) switch (message.type) { default: return "type: enum value expected"; @@ -152639,27 +167925,27 @@ case 18: break; } - if (message.typeName != null && message.hasOwnProperty("typeName")) + if (message.typeName != null && Object.hasOwnProperty.call(message, "typeName")) if (!$util.isString(message.typeName)) return "typeName: string expected"; - if (message.extendee != null && message.hasOwnProperty("extendee")) + if (message.extendee != null && Object.hasOwnProperty.call(message, "extendee")) if (!$util.isString(message.extendee)) return "extendee: string expected"; - if (message.defaultValue != null && message.hasOwnProperty("defaultValue")) + if (message.defaultValue != null && Object.hasOwnProperty.call(message, "defaultValue")) if (!$util.isString(message.defaultValue)) return "defaultValue: string expected"; - if (message.oneofIndex != null && message.hasOwnProperty("oneofIndex")) + if (message.oneofIndex != null && Object.hasOwnProperty.call(message, "oneofIndex")) if (!$util.isInteger(message.oneofIndex)) return "oneofIndex: integer expected"; - if (message.jsonName != null && message.hasOwnProperty("jsonName")) + if (message.jsonName != null && Object.hasOwnProperty.call(message, "jsonName")) if (!$util.isString(message.jsonName)) return "jsonName: string expected"; - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.FieldOptions.verify(message.options); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) { + var error = $root.google.protobuf.FieldOptions.verify(message.options, long + 1); if (error) return "options." + error; } - if (message.proto3Optional != null && message.hasOwnProperty("proto3Optional")) + if (message.proto3Optional != null && Object.hasOwnProperty.call(message, "proto3Optional")) if (typeof message.proto3Optional !== "boolean") return "proto3Optional: boolean expected"; return null; @@ -152673,9 +167959,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.FieldDescriptorProto} FieldDescriptorProto */ - FieldDescriptorProto.fromObject = function fromObject(object) { + FieldDescriptorProto.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.FieldDescriptorProto) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.FieldDescriptorProto: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.FieldDescriptorProto(); if (object.name != null) message.name = String(object.name); @@ -152792,9 +168084,9 @@ if (object.jsonName != null) message.jsonName = String(object.jsonName); if (object.options != null) { - if (typeof object.options !== "object") + if (!$util.isObject(object.options)) throw TypeError(".google.protobuf.FieldDescriptorProto.options: object expected"); - message.options = $root.google.protobuf.FieldOptions.fromObject(object.options); + message.options = $root.google.protobuf.FieldOptions.fromObject(object.options, long + 1); } if (object.proto3Optional != null) message.proto3Optional = Boolean(object.proto3Optional); @@ -152810,9 +168102,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FieldDescriptorProto.toObject = function toObject(message, options) { + FieldDescriptorProto.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; @@ -152827,27 +168123,27 @@ object.jsonName = ""; object.proto3Optional = false; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.extendee != null && message.hasOwnProperty("extendee")) + if (message.extendee != null && Object.hasOwnProperty.call(message, "extendee")) object.extendee = message.extendee; - if (message.number != null && message.hasOwnProperty("number")) + if (message.number != null && Object.hasOwnProperty.call(message, "number")) object.number = message.number; - if (message.label != null && message.hasOwnProperty("label")) + if (message.label != null && Object.hasOwnProperty.call(message, "label")) object.label = options.enums === String ? $root.google.protobuf.FieldDescriptorProto.Label[message.label] === undefined ? message.label : $root.google.protobuf.FieldDescriptorProto.Label[message.label] : message.label; - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) object.type = options.enums === String ? $root.google.protobuf.FieldDescriptorProto.Type[message.type] === undefined ? message.type : $root.google.protobuf.FieldDescriptorProto.Type[message.type] : message.type; - if (message.typeName != null && message.hasOwnProperty("typeName")) + if (message.typeName != null && Object.hasOwnProperty.call(message, "typeName")) object.typeName = message.typeName; - if (message.defaultValue != null && message.hasOwnProperty("defaultValue")) + if (message.defaultValue != null && Object.hasOwnProperty.call(message, "defaultValue")) object.defaultValue = message.defaultValue; - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.FieldOptions.toObject(message.options, options); - if (message.oneofIndex != null && message.hasOwnProperty("oneofIndex")) + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + object.options = $root.google.protobuf.FieldOptions.toObject(message.options, options, q + 1); + if (message.oneofIndex != null && Object.hasOwnProperty.call(message, "oneofIndex")) object.oneofIndex = message.oneofIndex; - if (message.jsonName != null && message.hasOwnProperty("jsonName")) + if (message.jsonName != null && Object.hasOwnProperty.call(message, "jsonName")) object.jsonName = message.jsonName; - if (message.proto3Optional != null && message.hasOwnProperty("proto3Optional")) + if (message.proto3Optional != null && Object.hasOwnProperty.call(message, "proto3Optional")) object.proto3Optional = message.proto3Optional; return object; }; @@ -152964,7 +168260,7 @@ function OneofDescriptorProto(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -153005,13 +168301,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - OneofDescriptorProto.encode = function encode(message, writer) { + OneofDescriptorProto.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.OneofOptions.encode(message.options, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.OneofOptions.encode(message.options, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -153025,7 +168325,7 @@ * @returns {$protobuf.Writer} Writer */ OneofDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -153039,9 +168339,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OneofDescriptorProto.decode = function decode(reader, length, error) { + OneofDescriptorProto.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.OneofDescriptorProto(); while (reader.pos < end) { var tag = reader.uint32(); @@ -153053,11 +168357,11 @@ break; } case 2: { - message.options = $root.google.protobuf.OneofOptions.decode(reader, reader.uint32()); + message.options = $root.google.protobuf.OneofOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -153088,14 +168392,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OneofDescriptorProto.verify = function verify(message) { + OneofDescriptorProto.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.OneofOptions.verify(message.options); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) { + var error = $root.google.protobuf.OneofOptions.verify(message.options, long + 1); if (error) return "options." + error; } @@ -153110,16 +168418,22 @@ * @param {Object.} object Plain object * @returns {google.protobuf.OneofDescriptorProto} OneofDescriptorProto */ - OneofDescriptorProto.fromObject = function fromObject(object) { + OneofDescriptorProto.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.OneofDescriptorProto) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.OneofDescriptorProto: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.OneofDescriptorProto(); if (object.name != null) message.name = String(object.name); if (object.options != null) { - if (typeof object.options !== "object") + if (!$util.isObject(object.options)) throw TypeError(".google.protobuf.OneofDescriptorProto.options: object expected"); - message.options = $root.google.protobuf.OneofOptions.fromObject(object.options); + message.options = $root.google.protobuf.OneofOptions.fromObject(object.options, long + 1); } return message; }; @@ -153133,18 +168447,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - OneofDescriptorProto.toObject = function toObject(message, options) { + OneofDescriptorProto.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; object.options = null; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.OneofOptions.toObject(message.options, options); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + object.options = $root.google.protobuf.OneofOptions.toObject(message.options, options, q + 1); return object; }; @@ -153188,6 +168506,7 @@ * @property {google.protobuf.IEnumOptions|null} [options] EnumDescriptorProto options * @property {Array.|null} [reservedRange] EnumDescriptorProto reservedRange * @property {Array.|null} [reservedName] EnumDescriptorProto reservedName + * @property {google.protobuf.SymbolVisibility|null} [visibility] EnumDescriptorProto visibility */ /** @@ -153204,7 +168523,7 @@ this.reservedName = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -153248,6 +168567,14 @@ */ EnumDescriptorProto.prototype.reservedName = $util.emptyArray; + /** + * EnumDescriptorProto visibility. + * @member {google.protobuf.SymbolVisibility} visibility + * @memberof google.protobuf.EnumDescriptorProto + * @instance + */ + EnumDescriptorProto.prototype.visibility = 0; + /** * Creates a new EnumDescriptorProto instance using the specified properties. * @function create @@ -153269,22 +168596,28 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EnumDescriptorProto.encode = function encode(message, writer) { + EnumDescriptorProto.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.value != null && message.value.length) for (var i = 0; i < message.value.length; ++i) - $root.google.protobuf.EnumValueDescriptorProto.encode(message.value[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.EnumValueDescriptorProto.encode(message.value[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.EnumOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.EnumOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); if (message.reservedRange != null && message.reservedRange.length) for (var i = 0; i < message.reservedRange.length; ++i) - $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.encode(message.reservedRange[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.encode(message.reservedRange[i], writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.reservedName != null && message.reservedName.length) for (var i = 0; i < message.reservedName.length; ++i) writer.uint32(/* id 5, wireType 2 =*/42).string(message.reservedName[i]); + if (message.visibility != null && Object.hasOwnProperty.call(message, "visibility")) + writer.uint32(/* id 6, wireType 0 =*/48).int32(message.visibility); return writer; }; @@ -153298,7 +168631,7 @@ * @returns {$protobuf.Writer} Writer */ EnumDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -153312,9 +168645,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EnumDescriptorProto.decode = function decode(reader, length, error) { + EnumDescriptorProto.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumDescriptorProto(); while (reader.pos < end) { var tag = reader.uint32(); @@ -153328,17 +168665,17 @@ case 2: { if (!(message.value && message.value.length)) message.value = []; - message.value.push($root.google.protobuf.EnumValueDescriptorProto.decode(reader, reader.uint32())); + message.value.push($root.google.protobuf.EnumValueDescriptorProto.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { - message.options = $root.google.protobuf.EnumOptions.decode(reader, reader.uint32()); + message.options = $root.google.protobuf.EnumOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { if (!(message.reservedRange && message.reservedRange.length)) message.reservedRange = []; - message.reservedRange.push($root.google.protobuf.EnumDescriptorProto.EnumReservedRange.decode(reader, reader.uint32())); + message.reservedRange.push($root.google.protobuf.EnumDescriptorProto.EnumReservedRange.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 5: { @@ -153347,8 +168684,12 @@ message.reservedName.push(reader.string()); break; } + case 6: { + message.visibility = reader.int32(); + break; + } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -153379,42 +168720,55 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EnumDescriptorProto.verify = function verify(message) { + EnumDescriptorProto.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.value != null && message.hasOwnProperty("value")) { + if (message.value != null && Object.hasOwnProperty.call(message, "value")) { if (!Array.isArray(message.value)) return "value: array expected"; for (var i = 0; i < message.value.length; ++i) { - var error = $root.google.protobuf.EnumValueDescriptorProto.verify(message.value[i]); + var error = $root.google.protobuf.EnumValueDescriptorProto.verify(message.value[i], long + 1); if (error) return "value." + error; } } - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.EnumOptions.verify(message.options); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) { + var error = $root.google.protobuf.EnumOptions.verify(message.options, long + 1); if (error) return "options." + error; } - if (message.reservedRange != null && message.hasOwnProperty("reservedRange")) { + if (message.reservedRange != null && Object.hasOwnProperty.call(message, "reservedRange")) { if (!Array.isArray(message.reservedRange)) return "reservedRange: array expected"; for (var i = 0; i < message.reservedRange.length; ++i) { - var error = $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.verify(message.reservedRange[i]); + var error = $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.verify(message.reservedRange[i], long + 1); if (error) return "reservedRange." + error; } } - if (message.reservedName != null && message.hasOwnProperty("reservedName")) { + if (message.reservedName != null && Object.hasOwnProperty.call(message, "reservedName")) { if (!Array.isArray(message.reservedName)) return "reservedName: array expected"; for (var i = 0; i < message.reservedName.length; ++i) if (!$util.isString(message.reservedName[i])) return "reservedName: string[] expected"; } + if (message.visibility != null && Object.hasOwnProperty.call(message, "visibility")) + switch (message.visibility) { + default: + return "visibility: enum value expected"; + case 0: + case 1: + case 2: + break; + } return null; }; @@ -153426,9 +168780,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.EnumDescriptorProto} EnumDescriptorProto */ - EnumDescriptorProto.fromObject = function fromObject(object) { + EnumDescriptorProto.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.EnumDescriptorProto) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.EnumDescriptorProto: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.EnumDescriptorProto(); if (object.name != null) message.name = String(object.name); @@ -153437,24 +168797,24 @@ throw TypeError(".google.protobuf.EnumDescriptorProto.value: array expected"); message.value = []; for (var i = 0; i < object.value.length; ++i) { - if (typeof object.value[i] !== "object") + if (!$util.isObject(object.value[i])) throw TypeError(".google.protobuf.EnumDescriptorProto.value: object expected"); - message.value[i] = $root.google.protobuf.EnumValueDescriptorProto.fromObject(object.value[i]); + message.value[i] = $root.google.protobuf.EnumValueDescriptorProto.fromObject(object.value[i], long + 1); } } if (object.options != null) { - if (typeof object.options !== "object") + if (!$util.isObject(object.options)) throw TypeError(".google.protobuf.EnumDescriptorProto.options: object expected"); - message.options = $root.google.protobuf.EnumOptions.fromObject(object.options); + message.options = $root.google.protobuf.EnumOptions.fromObject(object.options, long + 1); } if (object.reservedRange) { if (!Array.isArray(object.reservedRange)) throw TypeError(".google.protobuf.EnumDescriptorProto.reservedRange: array expected"); message.reservedRange = []; for (var i = 0; i < object.reservedRange.length; ++i) { - if (typeof object.reservedRange[i] !== "object") + if (!$util.isObject(object.reservedRange[i])) throw TypeError(".google.protobuf.EnumDescriptorProto.reservedRange: object expected"); - message.reservedRange[i] = $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.fromObject(object.reservedRange[i]); + message.reservedRange[i] = $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.fromObject(object.reservedRange[i], long + 1); } } if (object.reservedName) { @@ -153464,6 +168824,26 @@ for (var i = 0; i < object.reservedName.length; ++i) message.reservedName[i] = String(object.reservedName[i]); } + switch (object.visibility) { + default: + if (typeof object.visibility === "number") { + message.visibility = object.visibility; + break; + } + break; + case "VISIBILITY_UNSET": + case 0: + message.visibility = 0; + break; + case "VISIBILITY_LOCAL": + case 1: + message.visibility = 1; + break; + case "VISIBILITY_EXPORT": + case 2: + message.visibility = 2; + break; + } return message; }; @@ -153476,9 +168856,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - EnumDescriptorProto.toObject = function toObject(message, options) { + EnumDescriptorProto.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.value = []; @@ -153488,26 +168872,29 @@ if (options.defaults) { object.name = ""; object.options = null; + object.visibility = options.enums === String ? "VISIBILITY_UNSET" : 0; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; if (message.value && message.value.length) { object.value = []; for (var j = 0; j < message.value.length; ++j) - object.value[j] = $root.google.protobuf.EnumValueDescriptorProto.toObject(message.value[j], options); + object.value[j] = $root.google.protobuf.EnumValueDescriptorProto.toObject(message.value[j], options, q + 1); } - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.EnumOptions.toObject(message.options, options); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + object.options = $root.google.protobuf.EnumOptions.toObject(message.options, options, q + 1); if (message.reservedRange && message.reservedRange.length) { object.reservedRange = []; for (var j = 0; j < message.reservedRange.length; ++j) - object.reservedRange[j] = $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.toObject(message.reservedRange[j], options); + object.reservedRange[j] = $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.toObject(message.reservedRange[j], options, q + 1); } if (message.reservedName && message.reservedName.length) { object.reservedName = []; for (var j = 0; j < message.reservedName.length; ++j) object.reservedName[j] = message.reservedName[j]; } + if (message.visibility != null && Object.hasOwnProperty.call(message, "visibility")) + object.visibility = options.enums === String ? $root.google.protobuf.SymbolVisibility[message.visibility] === undefined ? message.visibility : $root.google.protobuf.SymbolVisibility[message.visibility] : message.visibility; return object; }; @@ -153558,7 +168945,7 @@ function EnumReservedRange(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -153599,9 +168986,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EnumReservedRange.encode = function encode(message, writer) { + EnumReservedRange.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.start != null && Object.hasOwnProperty.call(message, "start")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start); if (message.end != null && Object.hasOwnProperty.call(message, "end")) @@ -153619,7 +169010,7 @@ * @returns {$protobuf.Writer} Writer */ EnumReservedRange.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -153633,9 +169024,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EnumReservedRange.decode = function decode(reader, length, error) { + EnumReservedRange.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumDescriptorProto.EnumReservedRange(); while (reader.pos < end) { var tag = reader.uint32(); @@ -153651,7 +169046,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -153682,13 +169077,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EnumReservedRange.verify = function verify(message) { + EnumReservedRange.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.start != null && message.hasOwnProperty("start")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.start != null && Object.hasOwnProperty.call(message, "start")) if (!$util.isInteger(message.start)) return "start: integer expected"; - if (message.end != null && message.hasOwnProperty("end")) + if (message.end != null && Object.hasOwnProperty.call(message, "end")) if (!$util.isInteger(message.end)) return "end: integer expected"; return null; @@ -153702,9 +169101,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.EnumDescriptorProto.EnumReservedRange} EnumReservedRange */ - EnumReservedRange.fromObject = function fromObject(object) { + EnumReservedRange.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.EnumDescriptorProto.EnumReservedRange) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.EnumDescriptorProto.EnumReservedRange: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.EnumDescriptorProto.EnumReservedRange(); if (object.start != null) message.start = object.start | 0; @@ -153722,17 +169127,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - EnumReservedRange.toObject = function toObject(message, options) { + EnumReservedRange.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.start = 0; object.end = 0; } - if (message.start != null && message.hasOwnProperty("start")) + if (message.start != null && Object.hasOwnProperty.call(message, "start")) object.start = message.start; - if (message.end != null && message.hasOwnProperty("end")) + if (message.end != null && Object.hasOwnProperty.call(message, "end")) object.end = message.end; return object; }; @@ -153791,7 +169200,7 @@ function EnumValueDescriptorProto(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -153840,15 +169249,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EnumValueDescriptorProto.encode = function encode(message, writer) { + EnumValueDescriptorProto.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.number != null && Object.hasOwnProperty.call(message, "number")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.number); if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.EnumValueOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.EnumValueOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -153862,7 +169275,7 @@ * @returns {$protobuf.Writer} Writer */ EnumValueDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -153876,9 +169289,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EnumValueDescriptorProto.decode = function decode(reader, length, error) { + EnumValueDescriptorProto.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumValueDescriptorProto(); while (reader.pos < end) { var tag = reader.uint32(); @@ -153894,11 +169311,11 @@ break; } case 3: { - message.options = $root.google.protobuf.EnumValueOptions.decode(reader, reader.uint32()); + message.options = $root.google.protobuf.EnumValueOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -153929,17 +169346,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EnumValueDescriptorProto.verify = function verify(message) { + EnumValueDescriptorProto.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.number != null && message.hasOwnProperty("number")) + if (message.number != null && Object.hasOwnProperty.call(message, "number")) if (!$util.isInteger(message.number)) return "number: integer expected"; - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.EnumValueOptions.verify(message.options); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) { + var error = $root.google.protobuf.EnumValueOptions.verify(message.options, long + 1); if (error) return "options." + error; } @@ -153954,18 +169375,24 @@ * @param {Object.} object Plain object * @returns {google.protobuf.EnumValueDescriptorProto} EnumValueDescriptorProto */ - EnumValueDescriptorProto.fromObject = function fromObject(object) { + EnumValueDescriptorProto.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.EnumValueDescriptorProto) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.EnumValueDescriptorProto: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.EnumValueDescriptorProto(); if (object.name != null) message.name = String(object.name); if (object.number != null) message.number = object.number | 0; if (object.options != null) { - if (typeof object.options !== "object") + if (!$util.isObject(object.options)) throw TypeError(".google.protobuf.EnumValueDescriptorProto.options: object expected"); - message.options = $root.google.protobuf.EnumValueOptions.fromObject(object.options); + message.options = $root.google.protobuf.EnumValueOptions.fromObject(object.options, long + 1); } return message; }; @@ -153979,21 +169406,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - EnumValueDescriptorProto.toObject = function toObject(message, options) { + EnumValueDescriptorProto.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; object.number = 0; object.options = null; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.number != null && message.hasOwnProperty("number")) + if (message.number != null && Object.hasOwnProperty.call(message, "number")) object.number = message.number; - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.EnumValueOptions.toObject(message.options, options); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + object.options = $root.google.protobuf.EnumValueOptions.toObject(message.options, options, q + 1); return object; }; @@ -154049,7 +169480,7 @@ this.method = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -154098,16 +169529,20 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ServiceDescriptorProto.encode = function encode(message, writer) { + ServiceDescriptorProto.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.method != null && message.method.length) for (var i = 0; i < message.method.length; ++i) - $root.google.protobuf.MethodDescriptorProto.encode(message.method[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.MethodDescriptorProto.encode(message.method[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.ServiceOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.ServiceOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -154121,7 +169556,7 @@ * @returns {$protobuf.Writer} Writer */ ServiceDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -154135,9 +169570,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ServiceDescriptorProto.decode = function decode(reader, length, error) { + ServiceDescriptorProto.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ServiceDescriptorProto(); while (reader.pos < end) { var tag = reader.uint32(); @@ -154151,15 +169590,15 @@ case 2: { if (!(message.method && message.method.length)) message.method = []; - message.method.push($root.google.protobuf.MethodDescriptorProto.decode(reader, reader.uint32())); + message.method.push($root.google.protobuf.MethodDescriptorProto.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { - message.options = $root.google.protobuf.ServiceOptions.decode(reader, reader.uint32()); + message.options = $root.google.protobuf.ServiceOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -154190,23 +169629,27 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ServiceDescriptorProto.verify = function verify(message) { + ServiceDescriptorProto.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.method != null && message.hasOwnProperty("method")) { + if (message.method != null && Object.hasOwnProperty.call(message, "method")) { if (!Array.isArray(message.method)) return "method: array expected"; for (var i = 0; i < message.method.length; ++i) { - var error = $root.google.protobuf.MethodDescriptorProto.verify(message.method[i]); + var error = $root.google.protobuf.MethodDescriptorProto.verify(message.method[i], long + 1); if (error) return "method." + error; } } - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.ServiceOptions.verify(message.options); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) { + var error = $root.google.protobuf.ServiceOptions.verify(message.options, long + 1); if (error) return "options." + error; } @@ -154221,9 +169664,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.ServiceDescriptorProto} ServiceDescriptorProto */ - ServiceDescriptorProto.fromObject = function fromObject(object) { + ServiceDescriptorProto.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.ServiceDescriptorProto) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.ServiceDescriptorProto: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.ServiceDescriptorProto(); if (object.name != null) message.name = String(object.name); @@ -154232,15 +169681,15 @@ throw TypeError(".google.protobuf.ServiceDescriptorProto.method: array expected"); message.method = []; for (var i = 0; i < object.method.length; ++i) { - if (typeof object.method[i] !== "object") + if (!$util.isObject(object.method[i])) throw TypeError(".google.protobuf.ServiceDescriptorProto.method: object expected"); - message.method[i] = $root.google.protobuf.MethodDescriptorProto.fromObject(object.method[i]); + message.method[i] = $root.google.protobuf.MethodDescriptorProto.fromObject(object.method[i], long + 1); } } if (object.options != null) { - if (typeof object.options !== "object") + if (!$util.isObject(object.options)) throw TypeError(".google.protobuf.ServiceDescriptorProto.options: object expected"); - message.options = $root.google.protobuf.ServiceOptions.fromObject(object.options); + message.options = $root.google.protobuf.ServiceOptions.fromObject(object.options, long + 1); } return message; }; @@ -154254,9 +169703,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ServiceDescriptorProto.toObject = function toObject(message, options) { + ServiceDescriptorProto.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.method = []; @@ -154264,15 +169717,15 @@ object.name = ""; object.options = null; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; if (message.method && message.method.length) { object.method = []; for (var j = 0; j < message.method.length; ++j) - object.method[j] = $root.google.protobuf.MethodDescriptorProto.toObject(message.method[j], options); + object.method[j] = $root.google.protobuf.MethodDescriptorProto.toObject(message.method[j], options, q + 1); } - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.ServiceOptions.toObject(message.options, options); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + object.options = $root.google.protobuf.ServiceOptions.toObject(message.options, options, q + 1); return object; }; @@ -154330,7 +169783,7 @@ function MethodDescriptorProto(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -154403,9 +169856,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MethodDescriptorProto.encode = function encode(message, writer) { + MethodDescriptorProto.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.inputType != null && Object.hasOwnProperty.call(message, "inputType")) @@ -154413,7 +169870,7 @@ if (message.outputType != null && Object.hasOwnProperty.call(message, "outputType")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.outputType); if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.MethodOptions.encode(message.options, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + $root.google.protobuf.MethodOptions.encode(message.options, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.clientStreaming != null && Object.hasOwnProperty.call(message, "clientStreaming")) writer.uint32(/* id 5, wireType 0 =*/40).bool(message.clientStreaming); if (message.serverStreaming != null && Object.hasOwnProperty.call(message, "serverStreaming")) @@ -154431,7 +169888,7 @@ * @returns {$protobuf.Writer} Writer */ MethodDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -154445,9 +169902,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MethodDescriptorProto.decode = function decode(reader, length, error) { + MethodDescriptorProto.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.MethodDescriptorProto(); while (reader.pos < end) { var tag = reader.uint32(); @@ -154467,7 +169928,7 @@ break; } case 4: { - message.options = $root.google.protobuf.MethodOptions.decode(reader, reader.uint32()); + message.options = $root.google.protobuf.MethodOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -154479,7 +169940,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -154510,27 +169971,31 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MethodDescriptorProto.verify = function verify(message) { + MethodDescriptorProto.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.inputType != null && message.hasOwnProperty("inputType")) + if (message.inputType != null && Object.hasOwnProperty.call(message, "inputType")) if (!$util.isString(message.inputType)) return "inputType: string expected"; - if (message.outputType != null && message.hasOwnProperty("outputType")) + if (message.outputType != null && Object.hasOwnProperty.call(message, "outputType")) if (!$util.isString(message.outputType)) return "outputType: string expected"; - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.MethodOptions.verify(message.options); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) { + var error = $root.google.protobuf.MethodOptions.verify(message.options, long + 1); if (error) return "options." + error; } - if (message.clientStreaming != null && message.hasOwnProperty("clientStreaming")) + if (message.clientStreaming != null && Object.hasOwnProperty.call(message, "clientStreaming")) if (typeof message.clientStreaming !== "boolean") return "clientStreaming: boolean expected"; - if (message.serverStreaming != null && message.hasOwnProperty("serverStreaming")) + if (message.serverStreaming != null && Object.hasOwnProperty.call(message, "serverStreaming")) if (typeof message.serverStreaming !== "boolean") return "serverStreaming: boolean expected"; return null; @@ -154544,9 +170009,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.MethodDescriptorProto} MethodDescriptorProto */ - MethodDescriptorProto.fromObject = function fromObject(object) { + MethodDescriptorProto.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.MethodDescriptorProto) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.MethodDescriptorProto: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.MethodDescriptorProto(); if (object.name != null) message.name = String(object.name); @@ -154555,9 +170026,9 @@ if (object.outputType != null) message.outputType = String(object.outputType); if (object.options != null) { - if (typeof object.options !== "object") + if (!$util.isObject(object.options)) throw TypeError(".google.protobuf.MethodDescriptorProto.options: object expected"); - message.options = $root.google.protobuf.MethodOptions.fromObject(object.options); + message.options = $root.google.protobuf.MethodOptions.fromObject(object.options, long + 1); } if (object.clientStreaming != null) message.clientStreaming = Boolean(object.clientStreaming); @@ -154575,9 +170046,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MethodDescriptorProto.toObject = function toObject(message, options) { + MethodDescriptorProto.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.name = ""; @@ -154587,17 +170062,17 @@ object.clientStreaming = false; object.serverStreaming = false; } - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) object.name = message.name; - if (message.inputType != null && message.hasOwnProperty("inputType")) + if (message.inputType != null && Object.hasOwnProperty.call(message, "inputType")) object.inputType = message.inputType; - if (message.outputType != null && message.hasOwnProperty("outputType")) + if (message.outputType != null && Object.hasOwnProperty.call(message, "outputType")) object.outputType = message.outputType; - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.MethodOptions.toObject(message.options, options); - if (message.clientStreaming != null && message.hasOwnProperty("clientStreaming")) + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + object.options = $root.google.protobuf.MethodOptions.toObject(message.options, options, q + 1); + if (message.clientStreaming != null && Object.hasOwnProperty.call(message, "clientStreaming")) object.clientStreaming = message.clientStreaming; - if (message.serverStreaming != null && message.hasOwnProperty("serverStreaming")) + if (message.serverStreaming != null && Object.hasOwnProperty.call(message, "serverStreaming")) object.serverStreaming = message.serverStreaming; return object; }; @@ -154674,7 +170149,7 @@ this[".google.api.resourceDefinition"] = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -154875,9 +170350,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FileOptions.encode = function encode(message, writer) { + FileOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.javaPackage != null && Object.hasOwnProperty.call(message, "javaPackage")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.javaPackage); if (message.javaOuterClassname != null && Object.hasOwnProperty.call(message, "javaOuterClassname")) @@ -154917,13 +170396,13 @@ if (message.rubyPackage != null && Object.hasOwnProperty.call(message, "rubyPackage")) writer.uint32(/* id 45, wireType 2 =*/362).string(message.rubyPackage); if (message.features != null && Object.hasOwnProperty.call(message, "features")) - $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 50, wireType 2 =*/402).fork()).ldelim(); + $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 50, wireType 2 =*/402).fork(), q + 1).ldelim(); if (message.uninterpretedOption != null && message.uninterpretedOption.length) for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork(), q + 1).ldelim(); if (message[".google.api.resourceDefinition"] != null && message[".google.api.resourceDefinition"].length) for (var i = 0; i < message[".google.api.resourceDefinition"].length; ++i) - $root.google.api.ResourceDescriptor.encode(message[".google.api.resourceDefinition"][i], writer.uint32(/* id 1053, wireType 2 =*/8426).fork()).ldelim(); + $root.google.api.ResourceDescriptor.encode(message[".google.api.resourceDefinition"][i], writer.uint32(/* id 1053, wireType 2 =*/8426).fork(), q + 1).ldelim(); return writer; }; @@ -154937,7 +170416,7 @@ * @returns {$protobuf.Writer} Writer */ FileOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -154951,9 +170430,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FileOptions.decode = function decode(reader, length, error) { + FileOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FileOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -155037,23 +170520,23 @@ break; } case 50: { - message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32()); + message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32(), undefined, long + 1); break; } case 999: { if (!(message.uninterpretedOption && message.uninterpretedOption.length)) message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 1053: { if (!(message[".google.api.resourceDefinition"] && message[".google.api.resourceDefinition"].length)) message[".google.api.resourceDefinition"] = []; - message[".google.api.resourceDefinition"].push($root.google.api.ResourceDescriptor.decode(reader, reader.uint32())); + message[".google.api.resourceDefinition"].push($root.google.api.ResourceDescriptor.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -155084,25 +170567,29 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FileOptions.verify = function verify(message) { + FileOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.javaPackage != null && message.hasOwnProperty("javaPackage")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.javaPackage != null && Object.hasOwnProperty.call(message, "javaPackage")) if (!$util.isString(message.javaPackage)) return "javaPackage: string expected"; - if (message.javaOuterClassname != null && message.hasOwnProperty("javaOuterClassname")) + if (message.javaOuterClassname != null && Object.hasOwnProperty.call(message, "javaOuterClassname")) if (!$util.isString(message.javaOuterClassname)) return "javaOuterClassname: string expected"; - if (message.javaMultipleFiles != null && message.hasOwnProperty("javaMultipleFiles")) + if (message.javaMultipleFiles != null && Object.hasOwnProperty.call(message, "javaMultipleFiles")) if (typeof message.javaMultipleFiles !== "boolean") return "javaMultipleFiles: boolean expected"; - if (message.javaGenerateEqualsAndHash != null && message.hasOwnProperty("javaGenerateEqualsAndHash")) + if (message.javaGenerateEqualsAndHash != null && Object.hasOwnProperty.call(message, "javaGenerateEqualsAndHash")) if (typeof message.javaGenerateEqualsAndHash !== "boolean") return "javaGenerateEqualsAndHash: boolean expected"; - if (message.javaStringCheckUtf8 != null && message.hasOwnProperty("javaStringCheckUtf8")) + if (message.javaStringCheckUtf8 != null && Object.hasOwnProperty.call(message, "javaStringCheckUtf8")) if (typeof message.javaStringCheckUtf8 !== "boolean") return "javaStringCheckUtf8: boolean expected"; - if (message.optimizeFor != null && message.hasOwnProperty("optimizeFor")) + if (message.optimizeFor != null && Object.hasOwnProperty.call(message, "optimizeFor")) switch (message.optimizeFor) { default: return "optimizeFor: enum value expected"; @@ -155111,64 +170598,64 @@ case 3: break; } - if (message.goPackage != null && message.hasOwnProperty("goPackage")) + if (message.goPackage != null && Object.hasOwnProperty.call(message, "goPackage")) if (!$util.isString(message.goPackage)) return "goPackage: string expected"; - if (message.ccGenericServices != null && message.hasOwnProperty("ccGenericServices")) + if (message.ccGenericServices != null && Object.hasOwnProperty.call(message, "ccGenericServices")) if (typeof message.ccGenericServices !== "boolean") return "ccGenericServices: boolean expected"; - if (message.javaGenericServices != null && message.hasOwnProperty("javaGenericServices")) + if (message.javaGenericServices != null && Object.hasOwnProperty.call(message, "javaGenericServices")) if (typeof message.javaGenericServices !== "boolean") return "javaGenericServices: boolean expected"; - if (message.pyGenericServices != null && message.hasOwnProperty("pyGenericServices")) + if (message.pyGenericServices != null && Object.hasOwnProperty.call(message, "pyGenericServices")) if (typeof message.pyGenericServices !== "boolean") return "pyGenericServices: boolean expected"; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) if (typeof message.deprecated !== "boolean") return "deprecated: boolean expected"; - if (message.ccEnableArenas != null && message.hasOwnProperty("ccEnableArenas")) + if (message.ccEnableArenas != null && Object.hasOwnProperty.call(message, "ccEnableArenas")) if (typeof message.ccEnableArenas !== "boolean") return "ccEnableArenas: boolean expected"; - if (message.objcClassPrefix != null && message.hasOwnProperty("objcClassPrefix")) + if (message.objcClassPrefix != null && Object.hasOwnProperty.call(message, "objcClassPrefix")) if (!$util.isString(message.objcClassPrefix)) return "objcClassPrefix: string expected"; - if (message.csharpNamespace != null && message.hasOwnProperty("csharpNamespace")) + if (message.csharpNamespace != null && Object.hasOwnProperty.call(message, "csharpNamespace")) if (!$util.isString(message.csharpNamespace)) return "csharpNamespace: string expected"; - if (message.swiftPrefix != null && message.hasOwnProperty("swiftPrefix")) + if (message.swiftPrefix != null && Object.hasOwnProperty.call(message, "swiftPrefix")) if (!$util.isString(message.swiftPrefix)) return "swiftPrefix: string expected"; - if (message.phpClassPrefix != null && message.hasOwnProperty("phpClassPrefix")) + if (message.phpClassPrefix != null && Object.hasOwnProperty.call(message, "phpClassPrefix")) if (!$util.isString(message.phpClassPrefix)) return "phpClassPrefix: string expected"; - if (message.phpNamespace != null && message.hasOwnProperty("phpNamespace")) + if (message.phpNamespace != null && Object.hasOwnProperty.call(message, "phpNamespace")) if (!$util.isString(message.phpNamespace)) return "phpNamespace: string expected"; - if (message.phpMetadataNamespace != null && message.hasOwnProperty("phpMetadataNamespace")) + if (message.phpMetadataNamespace != null && Object.hasOwnProperty.call(message, "phpMetadataNamespace")) if (!$util.isString(message.phpMetadataNamespace)) return "phpMetadataNamespace: string expected"; - if (message.rubyPackage != null && message.hasOwnProperty("rubyPackage")) + if (message.rubyPackage != null && Object.hasOwnProperty.call(message, "rubyPackage")) if (!$util.isString(message.rubyPackage)) return "rubyPackage: string expected"; - if (message.features != null && message.hasOwnProperty("features")) { - var error = $root.google.protobuf.FeatureSet.verify(message.features); + if (message.features != null && Object.hasOwnProperty.call(message, "features")) { + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (message.uninterpretedOption != null && Object.hasOwnProperty.call(message, "uninterpretedOption")) { if (!Array.isArray(message.uninterpretedOption)) return "uninterpretedOption: array expected"; for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i], long + 1); if (error) return "uninterpretedOption." + error; } } - if (message[".google.api.resourceDefinition"] != null && message.hasOwnProperty(".google.api.resourceDefinition")) { + if (message[".google.api.resourceDefinition"] != null && Object.hasOwnProperty.call(message, ".google.api.resourceDefinition")) { if (!Array.isArray(message[".google.api.resourceDefinition"])) return ".google.api.resourceDefinition: array expected"; for (var i = 0; i < message[".google.api.resourceDefinition"].length; ++i) { - var error = $root.google.api.ResourceDescriptor.verify(message[".google.api.resourceDefinition"][i]); + var error = $root.google.api.ResourceDescriptor.verify(message[".google.api.resourceDefinition"][i], long + 1); if (error) return ".google.api.resourceDefinition." + error; } @@ -155184,9 +170671,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.FileOptions} FileOptions */ - FileOptions.fromObject = function fromObject(object) { + FileOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.FileOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.FileOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.FileOptions(); if (object.javaPackage != null) message.javaPackage = String(object.javaPackage); @@ -155245,18 +170738,18 @@ if (object.rubyPackage != null) message.rubyPackage = String(object.rubyPackage); if (object.features != null) { - if (typeof object.features !== "object") + if (!$util.isObject(object.features)) throw TypeError(".google.protobuf.FileOptions.features: object expected"); - message.features = $root.google.protobuf.FeatureSet.fromObject(object.features); + message.features = $root.google.protobuf.FeatureSet.fromObject(object.features, long + 1); } if (object.uninterpretedOption) { if (!Array.isArray(object.uninterpretedOption)) throw TypeError(".google.protobuf.FileOptions.uninterpretedOption: array expected"); message.uninterpretedOption = []; for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") + if (!$util.isObject(object.uninterpretedOption[i])) throw TypeError(".google.protobuf.FileOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i], long + 1); } } if (object[".google.api.resourceDefinition"]) { @@ -155264,9 +170757,9 @@ throw TypeError(".google.protobuf.FileOptions..google.api.resourceDefinition: array expected"); message[".google.api.resourceDefinition"] = []; for (var i = 0; i < object[".google.api.resourceDefinition"].length; ++i) { - if (typeof object[".google.api.resourceDefinition"][i] !== "object") + if (!$util.isObject(object[".google.api.resourceDefinition"][i])) throw TypeError(".google.protobuf.FileOptions..google.api.resourceDefinition: object expected"); - message[".google.api.resourceDefinition"][i] = $root.google.api.ResourceDescriptor.fromObject(object[".google.api.resourceDefinition"][i]); + message[".google.api.resourceDefinition"][i] = $root.google.api.ResourceDescriptor.fromObject(object[".google.api.resourceDefinition"][i], long + 1); } } return message; @@ -155281,9 +170774,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FileOptions.toObject = function toObject(message, options) { + FileOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.uninterpretedOption = []; @@ -155311,55 +170808,55 @@ object.rubyPackage = ""; object.features = null; } - if (message.javaPackage != null && message.hasOwnProperty("javaPackage")) + if (message.javaPackage != null && Object.hasOwnProperty.call(message, "javaPackage")) object.javaPackage = message.javaPackage; - if (message.javaOuterClassname != null && message.hasOwnProperty("javaOuterClassname")) + if (message.javaOuterClassname != null && Object.hasOwnProperty.call(message, "javaOuterClassname")) object.javaOuterClassname = message.javaOuterClassname; - if (message.optimizeFor != null && message.hasOwnProperty("optimizeFor")) + if (message.optimizeFor != null && Object.hasOwnProperty.call(message, "optimizeFor")) object.optimizeFor = options.enums === String ? $root.google.protobuf.FileOptions.OptimizeMode[message.optimizeFor] === undefined ? message.optimizeFor : $root.google.protobuf.FileOptions.OptimizeMode[message.optimizeFor] : message.optimizeFor; - if (message.javaMultipleFiles != null && message.hasOwnProperty("javaMultipleFiles")) + if (message.javaMultipleFiles != null && Object.hasOwnProperty.call(message, "javaMultipleFiles")) object.javaMultipleFiles = message.javaMultipleFiles; - if (message.goPackage != null && message.hasOwnProperty("goPackage")) + if (message.goPackage != null && Object.hasOwnProperty.call(message, "goPackage")) object.goPackage = message.goPackage; - if (message.ccGenericServices != null && message.hasOwnProperty("ccGenericServices")) + if (message.ccGenericServices != null && Object.hasOwnProperty.call(message, "ccGenericServices")) object.ccGenericServices = message.ccGenericServices; - if (message.javaGenericServices != null && message.hasOwnProperty("javaGenericServices")) + if (message.javaGenericServices != null && Object.hasOwnProperty.call(message, "javaGenericServices")) object.javaGenericServices = message.javaGenericServices; - if (message.pyGenericServices != null && message.hasOwnProperty("pyGenericServices")) + if (message.pyGenericServices != null && Object.hasOwnProperty.call(message, "pyGenericServices")) object.pyGenericServices = message.pyGenericServices; - if (message.javaGenerateEqualsAndHash != null && message.hasOwnProperty("javaGenerateEqualsAndHash")) + if (message.javaGenerateEqualsAndHash != null && Object.hasOwnProperty.call(message, "javaGenerateEqualsAndHash")) object.javaGenerateEqualsAndHash = message.javaGenerateEqualsAndHash; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) object.deprecated = message.deprecated; - if (message.javaStringCheckUtf8 != null && message.hasOwnProperty("javaStringCheckUtf8")) + if (message.javaStringCheckUtf8 != null && Object.hasOwnProperty.call(message, "javaStringCheckUtf8")) object.javaStringCheckUtf8 = message.javaStringCheckUtf8; - if (message.ccEnableArenas != null && message.hasOwnProperty("ccEnableArenas")) + if (message.ccEnableArenas != null && Object.hasOwnProperty.call(message, "ccEnableArenas")) object.ccEnableArenas = message.ccEnableArenas; - if (message.objcClassPrefix != null && message.hasOwnProperty("objcClassPrefix")) + if (message.objcClassPrefix != null && Object.hasOwnProperty.call(message, "objcClassPrefix")) object.objcClassPrefix = message.objcClassPrefix; - if (message.csharpNamespace != null && message.hasOwnProperty("csharpNamespace")) + if (message.csharpNamespace != null && Object.hasOwnProperty.call(message, "csharpNamespace")) object.csharpNamespace = message.csharpNamespace; - if (message.swiftPrefix != null && message.hasOwnProperty("swiftPrefix")) + if (message.swiftPrefix != null && Object.hasOwnProperty.call(message, "swiftPrefix")) object.swiftPrefix = message.swiftPrefix; - if (message.phpClassPrefix != null && message.hasOwnProperty("phpClassPrefix")) + if (message.phpClassPrefix != null && Object.hasOwnProperty.call(message, "phpClassPrefix")) object.phpClassPrefix = message.phpClassPrefix; - if (message.phpNamespace != null && message.hasOwnProperty("phpNamespace")) + if (message.phpNamespace != null && Object.hasOwnProperty.call(message, "phpNamespace")) object.phpNamespace = message.phpNamespace; - if (message.phpMetadataNamespace != null && message.hasOwnProperty("phpMetadataNamespace")) + if (message.phpMetadataNamespace != null && Object.hasOwnProperty.call(message, "phpMetadataNamespace")) object.phpMetadataNamespace = message.phpMetadataNamespace; - if (message.rubyPackage != null && message.hasOwnProperty("rubyPackage")) + if (message.rubyPackage != null && Object.hasOwnProperty.call(message, "rubyPackage")) object.rubyPackage = message.rubyPackage; - if (message.features != null && message.hasOwnProperty("features")) - object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options); + if (message.features != null && Object.hasOwnProperty.call(message, "features")) + object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options, q + 1); if (message.uninterpretedOption && message.uninterpretedOption.length) { object.uninterpretedOption = []; for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options, q + 1); } if (message[".google.api.resourceDefinition"] && message[".google.api.resourceDefinition"].length) { object[".google.api.resourceDefinition"] = []; for (var j = 0; j < message[".google.api.resourceDefinition"].length; ++j) - object[".google.api.resourceDefinition"][j] = $root.google.api.ResourceDescriptor.toObject(message[".google.api.resourceDefinition"][j], options); + object[".google.api.resourceDefinition"][j] = $root.google.api.ResourceDescriptor.toObject(message[".google.api.resourceDefinition"][j], options, q + 1); } return object; }; @@ -155437,7 +170934,7 @@ this.uninterpretedOption = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -155526,9 +171023,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MessageOptions.encode = function encode(message, writer) { + MessageOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.messageSetWireFormat != null && Object.hasOwnProperty.call(message, "messageSetWireFormat")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.messageSetWireFormat); if (message.noStandardDescriptorAccessor != null && Object.hasOwnProperty.call(message, "noStandardDescriptorAccessor")) @@ -155540,12 +171041,12 @@ if (message.deprecatedLegacyJsonFieldConflicts != null && Object.hasOwnProperty.call(message, "deprecatedLegacyJsonFieldConflicts")) writer.uint32(/* id 11, wireType 0 =*/88).bool(message.deprecatedLegacyJsonFieldConflicts); if (message.features != null && Object.hasOwnProperty.call(message, "features")) - $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim(); + $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 12, wireType 2 =*/98).fork(), q + 1).ldelim(); if (message.uninterpretedOption != null && message.uninterpretedOption.length) for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork(), q + 1).ldelim(); if (message[".google.api.resource"] != null && Object.hasOwnProperty.call(message, ".google.api.resource")) - $root.google.api.ResourceDescriptor.encode(message[".google.api.resource"], writer.uint32(/* id 1053, wireType 2 =*/8426).fork()).ldelim(); + $root.google.api.ResourceDescriptor.encode(message[".google.api.resource"], writer.uint32(/* id 1053, wireType 2 =*/8426).fork(), q + 1).ldelim(); return writer; }; @@ -155559,7 +171060,7 @@ * @returns {$protobuf.Writer} Writer */ MessageOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -155573,9 +171074,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MessageOptions.decode = function decode(reader, length, error) { + MessageOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.MessageOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -155603,21 +171108,21 @@ break; } case 12: { - message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32()); + message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32(), undefined, long + 1); break; } case 999: { if (!(message.uninterpretedOption && message.uninterpretedOption.length)) message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 1053: { - message[".google.api.resource"] = $root.google.api.ResourceDescriptor.decode(reader, reader.uint32()); + message[".google.api.resource"] = $root.google.api.ResourceDescriptor.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -155648,40 +171153,44 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MessageOptions.verify = function verify(message) { + MessageOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.messageSetWireFormat != null && message.hasOwnProperty("messageSetWireFormat")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.messageSetWireFormat != null && Object.hasOwnProperty.call(message, "messageSetWireFormat")) if (typeof message.messageSetWireFormat !== "boolean") return "messageSetWireFormat: boolean expected"; - if (message.noStandardDescriptorAccessor != null && message.hasOwnProperty("noStandardDescriptorAccessor")) + if (message.noStandardDescriptorAccessor != null && Object.hasOwnProperty.call(message, "noStandardDescriptorAccessor")) if (typeof message.noStandardDescriptorAccessor !== "boolean") return "noStandardDescriptorAccessor: boolean expected"; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) if (typeof message.deprecated !== "boolean") return "deprecated: boolean expected"; - if (message.mapEntry != null && message.hasOwnProperty("mapEntry")) + if (message.mapEntry != null && Object.hasOwnProperty.call(message, "mapEntry")) if (typeof message.mapEntry !== "boolean") return "mapEntry: boolean expected"; - if (message.deprecatedLegacyJsonFieldConflicts != null && message.hasOwnProperty("deprecatedLegacyJsonFieldConflicts")) + if (message.deprecatedLegacyJsonFieldConflicts != null && Object.hasOwnProperty.call(message, "deprecatedLegacyJsonFieldConflicts")) if (typeof message.deprecatedLegacyJsonFieldConflicts !== "boolean") return "deprecatedLegacyJsonFieldConflicts: boolean expected"; - if (message.features != null && message.hasOwnProperty("features")) { - var error = $root.google.protobuf.FeatureSet.verify(message.features); + if (message.features != null && Object.hasOwnProperty.call(message, "features")) { + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (message.uninterpretedOption != null && Object.hasOwnProperty.call(message, "uninterpretedOption")) { if (!Array.isArray(message.uninterpretedOption)) return "uninterpretedOption: array expected"; for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i], long + 1); if (error) return "uninterpretedOption." + error; } } - if (message[".google.api.resource"] != null && message.hasOwnProperty(".google.api.resource")) { - var error = $root.google.api.ResourceDescriptor.verify(message[".google.api.resource"]); + if (message[".google.api.resource"] != null && Object.hasOwnProperty.call(message, ".google.api.resource")) { + var error = $root.google.api.ResourceDescriptor.verify(message[".google.api.resource"], long + 1); if (error) return ".google.api.resource." + error; } @@ -155696,9 +171205,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.MessageOptions} MessageOptions */ - MessageOptions.fromObject = function fromObject(object) { + MessageOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.MessageOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.MessageOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.MessageOptions(); if (object.messageSetWireFormat != null) message.messageSetWireFormat = Boolean(object.messageSetWireFormat); @@ -155711,24 +171226,24 @@ if (object.deprecatedLegacyJsonFieldConflicts != null) message.deprecatedLegacyJsonFieldConflicts = Boolean(object.deprecatedLegacyJsonFieldConflicts); if (object.features != null) { - if (typeof object.features !== "object") + if (!$util.isObject(object.features)) throw TypeError(".google.protobuf.MessageOptions.features: object expected"); - message.features = $root.google.protobuf.FeatureSet.fromObject(object.features); + message.features = $root.google.protobuf.FeatureSet.fromObject(object.features, long + 1); } if (object.uninterpretedOption) { if (!Array.isArray(object.uninterpretedOption)) throw TypeError(".google.protobuf.MessageOptions.uninterpretedOption: array expected"); message.uninterpretedOption = []; for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") + if (!$util.isObject(object.uninterpretedOption[i])) throw TypeError(".google.protobuf.MessageOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i], long + 1); } } if (object[".google.api.resource"] != null) { - if (typeof object[".google.api.resource"] !== "object") + if (!$util.isObject(object[".google.api.resource"])) throw TypeError(".google.protobuf.MessageOptions..google.api.resource: object expected"); - message[".google.api.resource"] = $root.google.api.ResourceDescriptor.fromObject(object[".google.api.resource"]); + message[".google.api.resource"] = $root.google.api.ResourceDescriptor.fromObject(object[".google.api.resource"], long + 1); } return message; }; @@ -155742,9 +171257,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MessageOptions.toObject = function toObject(message, options) { + MessageOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.uninterpretedOption = []; @@ -155757,25 +171276,25 @@ object.features = null; object[".google.api.resource"] = null; } - if (message.messageSetWireFormat != null && message.hasOwnProperty("messageSetWireFormat")) + if (message.messageSetWireFormat != null && Object.hasOwnProperty.call(message, "messageSetWireFormat")) object.messageSetWireFormat = message.messageSetWireFormat; - if (message.noStandardDescriptorAccessor != null && message.hasOwnProperty("noStandardDescriptorAccessor")) + if (message.noStandardDescriptorAccessor != null && Object.hasOwnProperty.call(message, "noStandardDescriptorAccessor")) object.noStandardDescriptorAccessor = message.noStandardDescriptorAccessor; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) object.deprecated = message.deprecated; - if (message.mapEntry != null && message.hasOwnProperty("mapEntry")) + if (message.mapEntry != null && Object.hasOwnProperty.call(message, "mapEntry")) object.mapEntry = message.mapEntry; - if (message.deprecatedLegacyJsonFieldConflicts != null && message.hasOwnProperty("deprecatedLegacyJsonFieldConflicts")) + if (message.deprecatedLegacyJsonFieldConflicts != null && Object.hasOwnProperty.call(message, "deprecatedLegacyJsonFieldConflicts")) object.deprecatedLegacyJsonFieldConflicts = message.deprecatedLegacyJsonFieldConflicts; - if (message.features != null && message.hasOwnProperty("features")) - object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options); + if (message.features != null && Object.hasOwnProperty.call(message, "features")) + object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options, q + 1); if (message.uninterpretedOption && message.uninterpretedOption.length) { object.uninterpretedOption = []; for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options, q + 1); } - if (message[".google.api.resource"] != null && message.hasOwnProperty(".google.api.resource")) - object[".google.api.resource"] = $root.google.api.ResourceDescriptor.toObject(message[".google.api.resource"], options); + if (message[".google.api.resource"] != null && Object.hasOwnProperty.call(message, ".google.api.resource")) + object[".google.api.resource"] = $root.google.api.ResourceDescriptor.toObject(message[".google.api.resource"], options, q + 1); return object; }; @@ -155826,6 +171345,7 @@ * @property {Array.|null} [targets] FieldOptions targets * @property {Array.|null} [editionDefaults] FieldOptions editionDefaults * @property {google.protobuf.IFeatureSet|null} [features] FieldOptions features + * @property {google.protobuf.FieldOptions.IFeatureSupport|null} [featureSupport] FieldOptions featureSupport * @property {Array.|null} [uninterpretedOption] FieldOptions uninterpretedOption * @property {Array.|null} [".google.api.fieldBehavior"] FieldOptions .google.api.fieldBehavior * @property {google.api.IResourceReference|null} [".google.api.resourceReference"] FieldOptions .google.api.resourceReference @@ -155847,7 +171367,7 @@ this[".google.api.fieldBehavior"] = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -155947,6 +171467,14 @@ */ FieldOptions.prototype.features = null; + /** + * FieldOptions featureSupport. + * @member {google.protobuf.FieldOptions.IFeatureSupport|null|undefined} featureSupport + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype.featureSupport = null; + /** * FieldOptions uninterpretedOption. * @member {Array.} uninterpretedOption @@ -156000,9 +171528,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FieldOptions.encode = function encode(message, writer) { + FieldOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.ctype != null && Object.hasOwnProperty.call(message, "ctype")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.ctype); if (message.packed != null && Object.hasOwnProperty.call(message, "packed")) @@ -156026,19 +171558,21 @@ writer.uint32(/* id 19, wireType 0 =*/152).int32(message.targets[i]); if (message.editionDefaults != null && message.editionDefaults.length) for (var i = 0; i < message.editionDefaults.length; ++i) - $root.google.protobuf.FieldOptions.EditionDefault.encode(message.editionDefaults[i], writer.uint32(/* id 20, wireType 2 =*/162).fork()).ldelim(); + $root.google.protobuf.FieldOptions.EditionDefault.encode(message.editionDefaults[i], writer.uint32(/* id 20, wireType 2 =*/162).fork(), q + 1).ldelim(); if (message.features != null && Object.hasOwnProperty.call(message, "features")) - $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 21, wireType 2 =*/170).fork()).ldelim(); + $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 21, wireType 2 =*/170).fork(), q + 1).ldelim(); + if (message.featureSupport != null && Object.hasOwnProperty.call(message, "featureSupport")) + $root.google.protobuf.FieldOptions.FeatureSupport.encode(message.featureSupport, writer.uint32(/* id 22, wireType 2 =*/178).fork(), q + 1).ldelim(); if (message.uninterpretedOption != null && message.uninterpretedOption.length) for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork(), q + 1).ldelim(); if (message[".google.api.fieldBehavior"] != null && message[".google.api.fieldBehavior"].length) for (var i = 0; i < message[".google.api.fieldBehavior"].length; ++i) writer.uint32(/* id 1052, wireType 0 =*/8416).int32(message[".google.api.fieldBehavior"][i]); if (message[".google.api.resourceReference"] != null && Object.hasOwnProperty.call(message, ".google.api.resourceReference")) - $root.google.api.ResourceReference.encode(message[".google.api.resourceReference"], writer.uint32(/* id 1055, wireType 2 =*/8442).fork()).ldelim(); + $root.google.api.ResourceReference.encode(message[".google.api.resourceReference"], writer.uint32(/* id 1055, wireType 2 =*/8442).fork(), q + 1).ldelim(); if (message[".google.api.fieldInfo"] != null && Object.hasOwnProperty.call(message, ".google.api.fieldInfo")) - $root.google.api.FieldInfo.encode(message[".google.api.fieldInfo"], writer.uint32(/* id 291403980, wireType 2 =*/2331231842).fork()).ldelim(); + $root.google.api.FieldInfo.encode(message[".google.api.fieldInfo"], writer.uint32(/* id 291403980, wireType 2 =*/2331231842).fork(), q + 1).ldelim(); return writer; }; @@ -156052,7 +171586,7 @@ * @returns {$protobuf.Writer} Writer */ FieldOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -156066,9 +171600,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FieldOptions.decode = function decode(reader, length, error) { + FieldOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FieldOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -156125,17 +171663,21 @@ case 20: { if (!(message.editionDefaults && message.editionDefaults.length)) message.editionDefaults = []; - message.editionDefaults.push($root.google.protobuf.FieldOptions.EditionDefault.decode(reader, reader.uint32())); + message.editionDefaults.push($root.google.protobuf.FieldOptions.EditionDefault.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 21: { - message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32()); + message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + case 22: { + message.featureSupport = $root.google.protobuf.FieldOptions.FeatureSupport.decode(reader, reader.uint32(), undefined, long + 1); break; } case 999: { if (!(message.uninterpretedOption && message.uninterpretedOption.length)) message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 1052: { @@ -156150,15 +171692,15 @@ break; } case 1055: { - message[".google.api.resourceReference"] = $root.google.api.ResourceReference.decode(reader, reader.uint32()); + message[".google.api.resourceReference"] = $root.google.api.ResourceReference.decode(reader, reader.uint32(), undefined, long + 1); break; } case 291403980: { - message[".google.api.fieldInfo"] = $root.google.api.FieldInfo.decode(reader, reader.uint32()); + message[".google.api.fieldInfo"] = $root.google.api.FieldInfo.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -156189,10 +171731,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FieldOptions.verify = function verify(message) { + FieldOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.ctype != null && message.hasOwnProperty("ctype")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.ctype != null && Object.hasOwnProperty.call(message, "ctype")) switch (message.ctype) { default: return "ctype: enum value expected"; @@ -156201,10 +171747,10 @@ case 2: break; } - if (message.packed != null && message.hasOwnProperty("packed")) + if (message.packed != null && Object.hasOwnProperty.call(message, "packed")) if (typeof message.packed !== "boolean") return "packed: boolean expected"; - if (message.jstype != null && message.hasOwnProperty("jstype")) + if (message.jstype != null && Object.hasOwnProperty.call(message, "jstype")) switch (message.jstype) { default: return "jstype: enum value expected"; @@ -156213,22 +171759,22 @@ case 2: break; } - if (message.lazy != null && message.hasOwnProperty("lazy")) + if (message.lazy != null && Object.hasOwnProperty.call(message, "lazy")) if (typeof message.lazy !== "boolean") return "lazy: boolean expected"; - if (message.unverifiedLazy != null && message.hasOwnProperty("unverifiedLazy")) + if (message.unverifiedLazy != null && Object.hasOwnProperty.call(message, "unverifiedLazy")) if (typeof message.unverifiedLazy !== "boolean") return "unverifiedLazy: boolean expected"; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) if (typeof message.deprecated !== "boolean") return "deprecated: boolean expected"; - if (message.weak != null && message.hasOwnProperty("weak")) + if (message.weak != null && Object.hasOwnProperty.call(message, "weak")) if (typeof message.weak !== "boolean") return "weak: boolean expected"; - if (message.debugRedact != null && message.hasOwnProperty("debugRedact")) + if (message.debugRedact != null && Object.hasOwnProperty.call(message, "debugRedact")) if (typeof message.debugRedact !== "boolean") return "debugRedact: boolean expected"; - if (message.retention != null && message.hasOwnProperty("retention")) + if (message.retention != null && Object.hasOwnProperty.call(message, "retention")) switch (message.retention) { default: return "retention: enum value expected"; @@ -156237,7 +171783,7 @@ case 2: break; } - if (message.targets != null && message.hasOwnProperty("targets")) { + if (message.targets != null && Object.hasOwnProperty.call(message, "targets")) { if (!Array.isArray(message.targets)) return "targets: array expected"; for (var i = 0; i < message.targets.length; ++i) @@ -156257,30 +171803,35 @@ break; } } - if (message.editionDefaults != null && message.hasOwnProperty("editionDefaults")) { + if (message.editionDefaults != null && Object.hasOwnProperty.call(message, "editionDefaults")) { if (!Array.isArray(message.editionDefaults)) return "editionDefaults: array expected"; for (var i = 0; i < message.editionDefaults.length; ++i) { - var error = $root.google.protobuf.FieldOptions.EditionDefault.verify(message.editionDefaults[i]); + var error = $root.google.protobuf.FieldOptions.EditionDefault.verify(message.editionDefaults[i], long + 1); if (error) return "editionDefaults." + error; } } - if (message.features != null && message.hasOwnProperty("features")) { - var error = $root.google.protobuf.FeatureSet.verify(message.features); + if (message.features != null && Object.hasOwnProperty.call(message, "features")) { + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (message.featureSupport != null && Object.hasOwnProperty.call(message, "featureSupport")) { + var error = $root.google.protobuf.FieldOptions.FeatureSupport.verify(message.featureSupport, long + 1); + if (error) + return "featureSupport." + error; + } + if (message.uninterpretedOption != null && Object.hasOwnProperty.call(message, "uninterpretedOption")) { if (!Array.isArray(message.uninterpretedOption)) return "uninterpretedOption: array expected"; for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i], long + 1); if (error) return "uninterpretedOption." + error; } } - if (message[".google.api.fieldBehavior"] != null && message.hasOwnProperty(".google.api.fieldBehavior")) { + if (message[".google.api.fieldBehavior"] != null && Object.hasOwnProperty.call(message, ".google.api.fieldBehavior")) { if (!Array.isArray(message[".google.api.fieldBehavior"])) return ".google.api.fieldBehavior: array expected"; for (var i = 0; i < message[".google.api.fieldBehavior"].length; ++i) @@ -156299,13 +171850,13 @@ break; } } - if (message[".google.api.resourceReference"] != null && message.hasOwnProperty(".google.api.resourceReference")) { - var error = $root.google.api.ResourceReference.verify(message[".google.api.resourceReference"]); + if (message[".google.api.resourceReference"] != null && Object.hasOwnProperty.call(message, ".google.api.resourceReference")) { + var error = $root.google.api.ResourceReference.verify(message[".google.api.resourceReference"], long + 1); if (error) return ".google.api.resourceReference." + error; } - if (message[".google.api.fieldInfo"] != null && message.hasOwnProperty(".google.api.fieldInfo")) { - var error = $root.google.api.FieldInfo.verify(message[".google.api.fieldInfo"]); + if (message[".google.api.fieldInfo"] != null && Object.hasOwnProperty.call(message, ".google.api.fieldInfo")) { + var error = $root.google.api.FieldInfo.verify(message[".google.api.fieldInfo"], long + 1); if (error) return ".google.api.fieldInfo." + error; } @@ -156320,9 +171871,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.FieldOptions} FieldOptions */ - FieldOptions.fromObject = function fromObject(object) { + FieldOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.FieldOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.FieldOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.FieldOptions(); switch (object.ctype) { default: @@ -156454,24 +172011,29 @@ throw TypeError(".google.protobuf.FieldOptions.editionDefaults: array expected"); message.editionDefaults = []; for (var i = 0; i < object.editionDefaults.length; ++i) { - if (typeof object.editionDefaults[i] !== "object") + if (!$util.isObject(object.editionDefaults[i])) throw TypeError(".google.protobuf.FieldOptions.editionDefaults: object expected"); - message.editionDefaults[i] = $root.google.protobuf.FieldOptions.EditionDefault.fromObject(object.editionDefaults[i]); + message.editionDefaults[i] = $root.google.protobuf.FieldOptions.EditionDefault.fromObject(object.editionDefaults[i], long + 1); } } if (object.features != null) { - if (typeof object.features !== "object") + if (!$util.isObject(object.features)) throw TypeError(".google.protobuf.FieldOptions.features: object expected"); - message.features = $root.google.protobuf.FeatureSet.fromObject(object.features); + message.features = $root.google.protobuf.FeatureSet.fromObject(object.features, long + 1); + } + if (object.featureSupport != null) { + if (!$util.isObject(object.featureSupport)) + throw TypeError(".google.protobuf.FieldOptions.featureSupport: object expected"); + message.featureSupport = $root.google.protobuf.FieldOptions.FeatureSupport.fromObject(object.featureSupport, long + 1); } if (object.uninterpretedOption) { if (!Array.isArray(object.uninterpretedOption)) throw TypeError(".google.protobuf.FieldOptions.uninterpretedOption: array expected"); message.uninterpretedOption = []; for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") + if (!$util.isObject(object.uninterpretedOption[i])) throw TypeError(".google.protobuf.FieldOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i], long + 1); } } if (object[".google.api.fieldBehavior"]) { @@ -156524,14 +172086,14 @@ } } if (object[".google.api.resourceReference"] != null) { - if (typeof object[".google.api.resourceReference"] !== "object") + if (!$util.isObject(object[".google.api.resourceReference"])) throw TypeError(".google.protobuf.FieldOptions..google.api.resourceReference: object expected"); - message[".google.api.resourceReference"] = $root.google.api.ResourceReference.fromObject(object[".google.api.resourceReference"]); + message[".google.api.resourceReference"] = $root.google.api.ResourceReference.fromObject(object[".google.api.resourceReference"], long + 1); } if (object[".google.api.fieldInfo"] != null) { - if (typeof object[".google.api.fieldInfo"] !== "object") + if (!$util.isObject(object[".google.api.fieldInfo"])) throw TypeError(".google.protobuf.FieldOptions..google.api.fieldInfo: object expected"); - message[".google.api.fieldInfo"] = $root.google.api.FieldInfo.fromObject(object[".google.api.fieldInfo"]); + message[".google.api.fieldInfo"] = $root.google.api.FieldInfo.fromObject(object[".google.api.fieldInfo"], long + 1); } return message; }; @@ -156545,9 +172107,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FieldOptions.toObject = function toObject(message, options) { + FieldOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.targets = []; @@ -156566,26 +172132,27 @@ object.debugRedact = false; object.retention = options.enums === String ? "RETENTION_UNKNOWN" : 0; object.features = null; + object.featureSupport = null; object[".google.api.resourceReference"] = null; object[".google.api.fieldInfo"] = null; } - if (message.ctype != null && message.hasOwnProperty("ctype")) + if (message.ctype != null && Object.hasOwnProperty.call(message, "ctype")) object.ctype = options.enums === String ? $root.google.protobuf.FieldOptions.CType[message.ctype] === undefined ? message.ctype : $root.google.protobuf.FieldOptions.CType[message.ctype] : message.ctype; - if (message.packed != null && message.hasOwnProperty("packed")) + if (message.packed != null && Object.hasOwnProperty.call(message, "packed")) object.packed = message.packed; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) object.deprecated = message.deprecated; - if (message.lazy != null && message.hasOwnProperty("lazy")) + if (message.lazy != null && Object.hasOwnProperty.call(message, "lazy")) object.lazy = message.lazy; - if (message.jstype != null && message.hasOwnProperty("jstype")) + if (message.jstype != null && Object.hasOwnProperty.call(message, "jstype")) object.jstype = options.enums === String ? $root.google.protobuf.FieldOptions.JSType[message.jstype] === undefined ? message.jstype : $root.google.protobuf.FieldOptions.JSType[message.jstype] : message.jstype; - if (message.weak != null && message.hasOwnProperty("weak")) + if (message.weak != null && Object.hasOwnProperty.call(message, "weak")) object.weak = message.weak; - if (message.unverifiedLazy != null && message.hasOwnProperty("unverifiedLazy")) + if (message.unverifiedLazy != null && Object.hasOwnProperty.call(message, "unverifiedLazy")) object.unverifiedLazy = message.unverifiedLazy; - if (message.debugRedact != null && message.hasOwnProperty("debugRedact")) + if (message.debugRedact != null && Object.hasOwnProperty.call(message, "debugRedact")) object.debugRedact = message.debugRedact; - if (message.retention != null && message.hasOwnProperty("retention")) + if (message.retention != null && Object.hasOwnProperty.call(message, "retention")) object.retention = options.enums === String ? $root.google.protobuf.FieldOptions.OptionRetention[message.retention] === undefined ? message.retention : $root.google.protobuf.FieldOptions.OptionRetention[message.retention] : message.retention; if (message.targets && message.targets.length) { object.targets = []; @@ -156595,24 +172162,26 @@ if (message.editionDefaults && message.editionDefaults.length) { object.editionDefaults = []; for (var j = 0; j < message.editionDefaults.length; ++j) - object.editionDefaults[j] = $root.google.protobuf.FieldOptions.EditionDefault.toObject(message.editionDefaults[j], options); + object.editionDefaults[j] = $root.google.protobuf.FieldOptions.EditionDefault.toObject(message.editionDefaults[j], options, q + 1); } - if (message.features != null && message.hasOwnProperty("features")) - object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options); + if (message.features != null && Object.hasOwnProperty.call(message, "features")) + object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options, q + 1); + if (message.featureSupport != null && Object.hasOwnProperty.call(message, "featureSupport")) + object.featureSupport = $root.google.protobuf.FieldOptions.FeatureSupport.toObject(message.featureSupport, options, q + 1); if (message.uninterpretedOption && message.uninterpretedOption.length) { object.uninterpretedOption = []; for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options, q + 1); } if (message[".google.api.fieldBehavior"] && message[".google.api.fieldBehavior"].length) { object[".google.api.fieldBehavior"] = []; for (var j = 0; j < message[".google.api.fieldBehavior"].length; ++j) object[".google.api.fieldBehavior"][j] = options.enums === String ? $root.google.api.FieldBehavior[message[".google.api.fieldBehavior"][j]] === undefined ? message[".google.api.fieldBehavior"][j] : $root.google.api.FieldBehavior[message[".google.api.fieldBehavior"][j]] : message[".google.api.fieldBehavior"][j]; } - if (message[".google.api.resourceReference"] != null && message.hasOwnProperty(".google.api.resourceReference")) - object[".google.api.resourceReference"] = $root.google.api.ResourceReference.toObject(message[".google.api.resourceReference"], options); - if (message[".google.api.fieldInfo"] != null && message.hasOwnProperty(".google.api.fieldInfo")) - object[".google.api.fieldInfo"] = $root.google.api.FieldInfo.toObject(message[".google.api.fieldInfo"], options); + if (message[".google.api.resourceReference"] != null && Object.hasOwnProperty.call(message, ".google.api.resourceReference")) + object[".google.api.resourceReference"] = $root.google.api.ResourceReference.toObject(message[".google.api.resourceReference"], options, q + 1); + if (message[".google.api.fieldInfo"] != null && Object.hasOwnProperty.call(message, ".google.api.fieldInfo")) + object[".google.api.fieldInfo"] = $root.google.api.FieldInfo.toObject(message[".google.api.fieldInfo"], options, q + 1); return object; }; @@ -156741,7 +172310,7 @@ function EditionDefault(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -156782,9 +172351,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EditionDefault.encode = function encode(message, writer) { + EditionDefault.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.value != null && Object.hasOwnProperty.call(message, "value")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.value); if (message.edition != null && Object.hasOwnProperty.call(message, "edition")) @@ -156802,7 +172375,7 @@ * @returns {$protobuf.Writer} Writer */ EditionDefault.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -156816,9 +172389,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EditionDefault.decode = function decode(reader, length, error) { + EditionDefault.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FieldOptions.EditionDefault(); while (reader.pos < end) { var tag = reader.uint32(); @@ -156834,7 +172411,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -156865,14 +172442,19 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EditionDefault.verify = function verify(message) { + EditionDefault.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.edition != null && message.hasOwnProperty("edition")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.edition != null && Object.hasOwnProperty.call(message, "edition")) switch (message.edition) { default: return "edition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -156885,7 +172467,7 @@ case 2147483647: break; } - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!$util.isString(message.value)) return "value: string expected"; return null; @@ -156899,9 +172481,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.FieldOptions.EditionDefault} EditionDefault */ - EditionDefault.fromObject = function fromObject(object) { + EditionDefault.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.FieldOptions.EditionDefault) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.FieldOptions.EditionDefault: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.FieldOptions.EditionDefault(); switch (object.edition) { default: @@ -156914,6 +172502,10 @@ case 0: message.edition = 0; break; + case "EDITION_LEGACY": + case 900: + message.edition = 900; + break; case "EDITION_PROTO2": case 998: message.edition = 998; @@ -156969,17 +172561,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - EditionDefault.toObject = function toObject(message, options) { + EditionDefault.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.value = ""; object.edition = options.enums === String ? "EDITION_UNKNOWN" : 0; } - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = message.value; - if (message.edition != null && message.hasOwnProperty("edition")) + if (message.edition != null && Object.hasOwnProperty.call(message, "edition")) object.edition = options.enums === String ? $root.google.protobuf.Edition[message.edition] === undefined ? message.edition : $root.google.protobuf.Edition[message.edition] : message.edition; return object; }; @@ -157013,6 +172609,510 @@ return EditionDefault; })(); + FieldOptions.FeatureSupport = (function() { + + /** + * Properties of a FeatureSupport. + * @memberof google.protobuf.FieldOptions + * @interface IFeatureSupport + * @property {google.protobuf.Edition|null} [editionIntroduced] FeatureSupport editionIntroduced + * @property {google.protobuf.Edition|null} [editionDeprecated] FeatureSupport editionDeprecated + * @property {string|null} [deprecationWarning] FeatureSupport deprecationWarning + * @property {google.protobuf.Edition|null} [editionRemoved] FeatureSupport editionRemoved + */ + + /** + * Constructs a new FeatureSupport. + * @memberof google.protobuf.FieldOptions + * @classdesc Represents a FeatureSupport. + * @implements IFeatureSupport + * @constructor + * @param {google.protobuf.FieldOptions.IFeatureSupport=} [properties] Properties to set + */ + function FeatureSupport(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null && keys[i] !== "__proto__") + this[keys[i]] = properties[keys[i]]; + } + + /** + * FeatureSupport editionIntroduced. + * @member {google.protobuf.Edition} editionIntroduced + * @memberof google.protobuf.FieldOptions.FeatureSupport + * @instance + */ + FeatureSupport.prototype.editionIntroduced = 0; + + /** + * FeatureSupport editionDeprecated. + * @member {google.protobuf.Edition} editionDeprecated + * @memberof google.protobuf.FieldOptions.FeatureSupport + * @instance + */ + FeatureSupport.prototype.editionDeprecated = 0; + + /** + * FeatureSupport deprecationWarning. + * @member {string} deprecationWarning + * @memberof google.protobuf.FieldOptions.FeatureSupport + * @instance + */ + FeatureSupport.prototype.deprecationWarning = ""; + + /** + * FeatureSupport editionRemoved. + * @member {google.protobuf.Edition} editionRemoved + * @memberof google.protobuf.FieldOptions.FeatureSupport + * @instance + */ + FeatureSupport.prototype.editionRemoved = 0; + + /** + * Creates a new FeatureSupport instance using the specified properties. + * @function create + * @memberof google.protobuf.FieldOptions.FeatureSupport + * @static + * @param {google.protobuf.FieldOptions.IFeatureSupport=} [properties] Properties to set + * @returns {google.protobuf.FieldOptions.FeatureSupport} FeatureSupport instance + */ + FeatureSupport.create = function create(properties) { + return new FeatureSupport(properties); + }; + + /** + * Encodes the specified FeatureSupport message. Does not implicitly {@link google.protobuf.FieldOptions.FeatureSupport.verify|verify} messages. + * @function encode + * @memberof google.protobuf.FieldOptions.FeatureSupport + * @static + * @param {google.protobuf.FieldOptions.IFeatureSupport} message FeatureSupport message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FeatureSupport.encode = function encode(message, writer, q) { + if (!writer) + writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + if (message.editionIntroduced != null && Object.hasOwnProperty.call(message, "editionIntroduced")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.editionIntroduced); + if (message.editionDeprecated != null && Object.hasOwnProperty.call(message, "editionDeprecated")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.editionDeprecated); + if (message.deprecationWarning != null && Object.hasOwnProperty.call(message, "deprecationWarning")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.deprecationWarning); + if (message.editionRemoved != null && Object.hasOwnProperty.call(message, "editionRemoved")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.editionRemoved); + return writer; + }; + + /** + * Encodes the specified FeatureSupport message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.FeatureSupport.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.FieldOptions.FeatureSupport + * @static + * @param {google.protobuf.FieldOptions.IFeatureSupport} message FeatureSupport message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FeatureSupport.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); + }; + + /** + * Decodes a FeatureSupport message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.FieldOptions.FeatureSupport + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.FieldOptions.FeatureSupport} FeatureSupport + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FeatureSupport.decode = function decode(reader, length, error, long) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FieldOptions.FeatureSupport(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.editionIntroduced = reader.int32(); + break; + } + case 2: { + message.editionDeprecated = reader.int32(); + break; + } + case 3: { + message.deprecationWarning = reader.string(); + break; + } + case 4: { + message.editionRemoved = reader.int32(); + break; + } + default: + reader.skipType(tag & 7, long); + break; + } + } + return message; + }; + + /** + * Decodes a FeatureSupport message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.FieldOptions.FeatureSupport + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.FieldOptions.FeatureSupport} FeatureSupport + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FeatureSupport.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FeatureSupport message. + * @function verify + * @memberof google.protobuf.FieldOptions.FeatureSupport + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FeatureSupport.verify = function verify(message, long) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.editionIntroduced != null && Object.hasOwnProperty.call(message, "editionIntroduced")) + switch (message.editionIntroduced) { + default: + return "editionIntroduced: enum value expected"; + case 0: + case 900: + case 998: + case 999: + case 1000: + case 1001: + case 1: + case 2: + case 99997: + case 99998: + case 99999: + case 2147483647: + break; + } + if (message.editionDeprecated != null && Object.hasOwnProperty.call(message, "editionDeprecated")) + switch (message.editionDeprecated) { + default: + return "editionDeprecated: enum value expected"; + case 0: + case 900: + case 998: + case 999: + case 1000: + case 1001: + case 1: + case 2: + case 99997: + case 99998: + case 99999: + case 2147483647: + break; + } + if (message.deprecationWarning != null && Object.hasOwnProperty.call(message, "deprecationWarning")) + if (!$util.isString(message.deprecationWarning)) + return "deprecationWarning: string expected"; + if (message.editionRemoved != null && Object.hasOwnProperty.call(message, "editionRemoved")) + switch (message.editionRemoved) { + default: + return "editionRemoved: enum value expected"; + case 0: + case 900: + case 998: + case 999: + case 1000: + case 1001: + case 1: + case 2: + case 99997: + case 99998: + case 99999: + case 2147483647: + break; + } + return null; + }; + + /** + * Creates a FeatureSupport message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.FieldOptions.FeatureSupport + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.FieldOptions.FeatureSupport} FeatureSupport + */ + FeatureSupport.fromObject = function fromObject(object, long) { + if (object instanceof $root.google.protobuf.FieldOptions.FeatureSupport) + return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.FieldOptions.FeatureSupport: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var message = new $root.google.protobuf.FieldOptions.FeatureSupport(); + switch (object.editionIntroduced) { + default: + if (typeof object.editionIntroduced === "number") { + message.editionIntroduced = object.editionIntroduced; + break; + } + break; + case "EDITION_UNKNOWN": + case 0: + message.editionIntroduced = 0; + break; + case "EDITION_LEGACY": + case 900: + message.editionIntroduced = 900; + break; + case "EDITION_PROTO2": + case 998: + message.editionIntroduced = 998; + break; + case "EDITION_PROTO3": + case 999: + message.editionIntroduced = 999; + break; + case "EDITION_2023": + case 1000: + message.editionIntroduced = 1000; + break; + case "EDITION_2024": + case 1001: + message.editionIntroduced = 1001; + break; + case "EDITION_1_TEST_ONLY": + case 1: + message.editionIntroduced = 1; + break; + case "EDITION_2_TEST_ONLY": + case 2: + message.editionIntroduced = 2; + break; + case "EDITION_99997_TEST_ONLY": + case 99997: + message.editionIntroduced = 99997; + break; + case "EDITION_99998_TEST_ONLY": + case 99998: + message.editionIntroduced = 99998; + break; + case "EDITION_99999_TEST_ONLY": + case 99999: + message.editionIntroduced = 99999; + break; + case "EDITION_MAX": + case 2147483647: + message.editionIntroduced = 2147483647; + break; + } + switch (object.editionDeprecated) { + default: + if (typeof object.editionDeprecated === "number") { + message.editionDeprecated = object.editionDeprecated; + break; + } + break; + case "EDITION_UNKNOWN": + case 0: + message.editionDeprecated = 0; + break; + case "EDITION_LEGACY": + case 900: + message.editionDeprecated = 900; + break; + case "EDITION_PROTO2": + case 998: + message.editionDeprecated = 998; + break; + case "EDITION_PROTO3": + case 999: + message.editionDeprecated = 999; + break; + case "EDITION_2023": + case 1000: + message.editionDeprecated = 1000; + break; + case "EDITION_2024": + case 1001: + message.editionDeprecated = 1001; + break; + case "EDITION_1_TEST_ONLY": + case 1: + message.editionDeprecated = 1; + break; + case "EDITION_2_TEST_ONLY": + case 2: + message.editionDeprecated = 2; + break; + case "EDITION_99997_TEST_ONLY": + case 99997: + message.editionDeprecated = 99997; + break; + case "EDITION_99998_TEST_ONLY": + case 99998: + message.editionDeprecated = 99998; + break; + case "EDITION_99999_TEST_ONLY": + case 99999: + message.editionDeprecated = 99999; + break; + case "EDITION_MAX": + case 2147483647: + message.editionDeprecated = 2147483647; + break; + } + if (object.deprecationWarning != null) + message.deprecationWarning = String(object.deprecationWarning); + switch (object.editionRemoved) { + default: + if (typeof object.editionRemoved === "number") { + message.editionRemoved = object.editionRemoved; + break; + } + break; + case "EDITION_UNKNOWN": + case 0: + message.editionRemoved = 0; + break; + case "EDITION_LEGACY": + case 900: + message.editionRemoved = 900; + break; + case "EDITION_PROTO2": + case 998: + message.editionRemoved = 998; + break; + case "EDITION_PROTO3": + case 999: + message.editionRemoved = 999; + break; + case "EDITION_2023": + case 1000: + message.editionRemoved = 1000; + break; + case "EDITION_2024": + case 1001: + message.editionRemoved = 1001; + break; + case "EDITION_1_TEST_ONLY": + case 1: + message.editionRemoved = 1; + break; + case "EDITION_2_TEST_ONLY": + case 2: + message.editionRemoved = 2; + break; + case "EDITION_99997_TEST_ONLY": + case 99997: + message.editionRemoved = 99997; + break; + case "EDITION_99998_TEST_ONLY": + case 99998: + message.editionRemoved = 99998; + break; + case "EDITION_99999_TEST_ONLY": + case 99999: + message.editionRemoved = 99999; + break; + case "EDITION_MAX": + case 2147483647: + message.editionRemoved = 2147483647; + break; + } + return message; + }; + + /** + * Creates a plain object from a FeatureSupport message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.FieldOptions.FeatureSupport + * @static + * @param {google.protobuf.FieldOptions.FeatureSupport} message FeatureSupport + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FeatureSupport.toObject = function toObject(message, options, q) { + if (!options) + options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + var object = {}; + if (options.defaults) { + object.editionIntroduced = options.enums === String ? "EDITION_UNKNOWN" : 0; + object.editionDeprecated = options.enums === String ? "EDITION_UNKNOWN" : 0; + object.deprecationWarning = ""; + object.editionRemoved = options.enums === String ? "EDITION_UNKNOWN" : 0; + } + if (message.editionIntroduced != null && Object.hasOwnProperty.call(message, "editionIntroduced")) + object.editionIntroduced = options.enums === String ? $root.google.protobuf.Edition[message.editionIntroduced] === undefined ? message.editionIntroduced : $root.google.protobuf.Edition[message.editionIntroduced] : message.editionIntroduced; + if (message.editionDeprecated != null && Object.hasOwnProperty.call(message, "editionDeprecated")) + object.editionDeprecated = options.enums === String ? $root.google.protobuf.Edition[message.editionDeprecated] === undefined ? message.editionDeprecated : $root.google.protobuf.Edition[message.editionDeprecated] : message.editionDeprecated; + if (message.deprecationWarning != null && Object.hasOwnProperty.call(message, "deprecationWarning")) + object.deprecationWarning = message.deprecationWarning; + if (message.editionRemoved != null && Object.hasOwnProperty.call(message, "editionRemoved")) + object.editionRemoved = options.enums === String ? $root.google.protobuf.Edition[message.editionRemoved] === undefined ? message.editionRemoved : $root.google.protobuf.Edition[message.editionRemoved] : message.editionRemoved; + return object; + }; + + /** + * Converts this FeatureSupport to JSON. + * @function toJSON + * @memberof google.protobuf.FieldOptions.FeatureSupport + * @instance + * @returns {Object.} JSON object + */ + FeatureSupport.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for FeatureSupport + * @function getTypeUrl + * @memberof google.protobuf.FieldOptions.FeatureSupport + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + FeatureSupport.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.FieldOptions.FeatureSupport"; + }; + + return FeatureSupport; + })(); + return FieldOptions; })(); @@ -157038,7 +173138,7 @@ this.uninterpretedOption = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -157079,14 +173179,18 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - OneofOptions.encode = function encode(message, writer) { + OneofOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.features != null && Object.hasOwnProperty.call(message, "features")) - $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.uninterpretedOption != null && message.uninterpretedOption.length) for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork(), q + 1).ldelim(); return writer; }; @@ -157100,7 +173204,7 @@ * @returns {$protobuf.Writer} Writer */ OneofOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -157114,9 +173218,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OneofOptions.decode = function decode(reader, length, error) { + OneofOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.OneofOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -157124,17 +173232,17 @@ break; switch (tag >>> 3) { case 1: { - message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32()); + message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32(), undefined, long + 1); break; } case 999: { if (!(message.uninterpretedOption && message.uninterpretedOption.length)) message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -157165,19 +173273,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OneofOptions.verify = function verify(message) { + OneofOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.features != null && message.hasOwnProperty("features")) { - var error = $root.google.protobuf.FeatureSet.verify(message.features); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.features != null && Object.hasOwnProperty.call(message, "features")) { + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (message.uninterpretedOption != null && Object.hasOwnProperty.call(message, "uninterpretedOption")) { if (!Array.isArray(message.uninterpretedOption)) return "uninterpretedOption: array expected"; for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i], long + 1); if (error) return "uninterpretedOption." + error; } @@ -157193,23 +173305,29 @@ * @param {Object.} object Plain object * @returns {google.protobuf.OneofOptions} OneofOptions */ - OneofOptions.fromObject = function fromObject(object) { + OneofOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.OneofOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.OneofOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.OneofOptions(); if (object.features != null) { - if (typeof object.features !== "object") + if (!$util.isObject(object.features)) throw TypeError(".google.protobuf.OneofOptions.features: object expected"); - message.features = $root.google.protobuf.FeatureSet.fromObject(object.features); + message.features = $root.google.protobuf.FeatureSet.fromObject(object.features, long + 1); } if (object.uninterpretedOption) { if (!Array.isArray(object.uninterpretedOption)) throw TypeError(".google.protobuf.OneofOptions.uninterpretedOption: array expected"); message.uninterpretedOption = []; for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") + if (!$util.isObject(object.uninterpretedOption[i])) throw TypeError(".google.protobuf.OneofOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i], long + 1); } } return message; @@ -157224,20 +173342,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - OneofOptions.toObject = function toObject(message, options) { + OneofOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.uninterpretedOption = []; if (options.defaults) object.features = null; - if (message.features != null && message.hasOwnProperty("features")) - object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options); + if (message.features != null && Object.hasOwnProperty.call(message, "features")) + object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options, q + 1); if (message.uninterpretedOption && message.uninterpretedOption.length) { object.uninterpretedOption = []; for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options, q + 1); } return object; }; @@ -157296,7 +173418,7 @@ this.uninterpretedOption = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -157361,9 +173483,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EnumOptions.encode = function encode(message, writer) { + EnumOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.allowAlias != null && Object.hasOwnProperty.call(message, "allowAlias")) writer.uint32(/* id 2, wireType 0 =*/16).bool(message.allowAlias); if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) @@ -157371,10 +173497,10 @@ if (message.deprecatedLegacyJsonFieldConflicts != null && Object.hasOwnProperty.call(message, "deprecatedLegacyJsonFieldConflicts")) writer.uint32(/* id 6, wireType 0 =*/48).bool(message.deprecatedLegacyJsonFieldConflicts); if (message.features != null && Object.hasOwnProperty.call(message, "features")) - $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 7, wireType 2 =*/58).fork(), q + 1).ldelim(); if (message.uninterpretedOption != null && message.uninterpretedOption.length) for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork(), q + 1).ldelim(); return writer; }; @@ -157388,7 +173514,7 @@ * @returns {$protobuf.Writer} Writer */ EnumOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -157402,9 +173528,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EnumOptions.decode = function decode(reader, length, error) { + EnumOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -157424,17 +173554,17 @@ break; } case 7: { - message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32()); + message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32(), undefined, long + 1); break; } case 999: { if (!(message.uninterpretedOption && message.uninterpretedOption.length)) message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -157465,28 +173595,32 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EnumOptions.verify = function verify(message) { + EnumOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.allowAlias != null && message.hasOwnProperty("allowAlias")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.allowAlias != null && Object.hasOwnProperty.call(message, "allowAlias")) if (typeof message.allowAlias !== "boolean") return "allowAlias: boolean expected"; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) if (typeof message.deprecated !== "boolean") return "deprecated: boolean expected"; - if (message.deprecatedLegacyJsonFieldConflicts != null && message.hasOwnProperty("deprecatedLegacyJsonFieldConflicts")) + if (message.deprecatedLegacyJsonFieldConflicts != null && Object.hasOwnProperty.call(message, "deprecatedLegacyJsonFieldConflicts")) if (typeof message.deprecatedLegacyJsonFieldConflicts !== "boolean") return "deprecatedLegacyJsonFieldConflicts: boolean expected"; - if (message.features != null && message.hasOwnProperty("features")) { - var error = $root.google.protobuf.FeatureSet.verify(message.features); + if (message.features != null && Object.hasOwnProperty.call(message, "features")) { + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (message.uninterpretedOption != null && Object.hasOwnProperty.call(message, "uninterpretedOption")) { if (!Array.isArray(message.uninterpretedOption)) return "uninterpretedOption: array expected"; for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i], long + 1); if (error) return "uninterpretedOption." + error; } @@ -157502,9 +173636,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.EnumOptions} EnumOptions */ - EnumOptions.fromObject = function fromObject(object) { + EnumOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.EnumOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.EnumOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.EnumOptions(); if (object.allowAlias != null) message.allowAlias = Boolean(object.allowAlias); @@ -157513,18 +173653,18 @@ if (object.deprecatedLegacyJsonFieldConflicts != null) message.deprecatedLegacyJsonFieldConflicts = Boolean(object.deprecatedLegacyJsonFieldConflicts); if (object.features != null) { - if (typeof object.features !== "object") + if (!$util.isObject(object.features)) throw TypeError(".google.protobuf.EnumOptions.features: object expected"); - message.features = $root.google.protobuf.FeatureSet.fromObject(object.features); + message.features = $root.google.protobuf.FeatureSet.fromObject(object.features, long + 1); } if (object.uninterpretedOption) { if (!Array.isArray(object.uninterpretedOption)) throw TypeError(".google.protobuf.EnumOptions.uninterpretedOption: array expected"); message.uninterpretedOption = []; for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") + if (!$util.isObject(object.uninterpretedOption[i])) throw TypeError(".google.protobuf.EnumOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i], long + 1); } } return message; @@ -157539,9 +173679,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - EnumOptions.toObject = function toObject(message, options) { + EnumOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.uninterpretedOption = []; @@ -157551,18 +173695,18 @@ object.deprecatedLegacyJsonFieldConflicts = false; object.features = null; } - if (message.allowAlias != null && message.hasOwnProperty("allowAlias")) + if (message.allowAlias != null && Object.hasOwnProperty.call(message, "allowAlias")) object.allowAlias = message.allowAlias; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) object.deprecated = message.deprecated; - if (message.deprecatedLegacyJsonFieldConflicts != null && message.hasOwnProperty("deprecatedLegacyJsonFieldConflicts")) + if (message.deprecatedLegacyJsonFieldConflicts != null && Object.hasOwnProperty.call(message, "deprecatedLegacyJsonFieldConflicts")) object.deprecatedLegacyJsonFieldConflicts = message.deprecatedLegacyJsonFieldConflicts; - if (message.features != null && message.hasOwnProperty("features")) - object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options); + if (message.features != null && Object.hasOwnProperty.call(message, "features")) + object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options, q + 1); if (message.uninterpretedOption && message.uninterpretedOption.length) { object.uninterpretedOption = []; for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options, q + 1); } return object; }; @@ -157605,6 +173749,7 @@ * @property {boolean|null} [deprecated] EnumValueOptions deprecated * @property {google.protobuf.IFeatureSet|null} [features] EnumValueOptions features * @property {boolean|null} [debugRedact] EnumValueOptions debugRedact + * @property {google.protobuf.FieldOptions.IFeatureSupport|null} [featureSupport] EnumValueOptions featureSupport * @property {Array.|null} [uninterpretedOption] EnumValueOptions uninterpretedOption */ @@ -157620,7 +173765,7 @@ this.uninterpretedOption = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -157648,6 +173793,14 @@ */ EnumValueOptions.prototype.debugRedact = false; + /** + * EnumValueOptions featureSupport. + * @member {google.protobuf.FieldOptions.IFeatureSupport|null|undefined} featureSupport + * @memberof google.protobuf.EnumValueOptions + * @instance + */ + EnumValueOptions.prototype.featureSupport = null; + /** * EnumValueOptions uninterpretedOption. * @member {Array.} uninterpretedOption @@ -157677,18 +173830,24 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EnumValueOptions.encode = function encode(message, writer) { + EnumValueOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.deprecated); if (message.features != null && Object.hasOwnProperty.call(message, "features")) - $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.debugRedact != null && Object.hasOwnProperty.call(message, "debugRedact")) writer.uint32(/* id 3, wireType 0 =*/24).bool(message.debugRedact); + if (message.featureSupport != null && Object.hasOwnProperty.call(message, "featureSupport")) + $root.google.protobuf.FieldOptions.FeatureSupport.encode(message.featureSupport, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); if (message.uninterpretedOption != null && message.uninterpretedOption.length) for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork(), q + 1).ldelim(); return writer; }; @@ -157702,7 +173861,7 @@ * @returns {$protobuf.Writer} Writer */ EnumValueOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -157716,9 +173875,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EnumValueOptions.decode = function decode(reader, length, error) { + EnumValueOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumValueOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -157730,21 +173893,25 @@ break; } case 2: { - message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32()); + message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { message.debugRedact = reader.bool(); break; } + case 4: { + message.featureSupport = $root.google.protobuf.FieldOptions.FeatureSupport.decode(reader, reader.uint32(), undefined, long + 1); + break; + } case 999: { if (!(message.uninterpretedOption && message.uninterpretedOption.length)) message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -157775,25 +173942,34 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EnumValueOptions.verify = function verify(message) { + EnumValueOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) if (typeof message.deprecated !== "boolean") return "deprecated: boolean expected"; - if (message.features != null && message.hasOwnProperty("features")) { - var error = $root.google.protobuf.FeatureSet.verify(message.features); + if (message.features != null && Object.hasOwnProperty.call(message, "features")) { + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } - if (message.debugRedact != null && message.hasOwnProperty("debugRedact")) + if (message.debugRedact != null && Object.hasOwnProperty.call(message, "debugRedact")) if (typeof message.debugRedact !== "boolean") return "debugRedact: boolean expected"; - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (message.featureSupport != null && Object.hasOwnProperty.call(message, "featureSupport")) { + var error = $root.google.protobuf.FieldOptions.FeatureSupport.verify(message.featureSupport, long + 1); + if (error) + return "featureSupport." + error; + } + if (message.uninterpretedOption != null && Object.hasOwnProperty.call(message, "uninterpretedOption")) { if (!Array.isArray(message.uninterpretedOption)) return "uninterpretedOption: array expected"; for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i], long + 1); if (error) return "uninterpretedOption." + error; } @@ -157809,27 +173985,38 @@ * @param {Object.} object Plain object * @returns {google.protobuf.EnumValueOptions} EnumValueOptions */ - EnumValueOptions.fromObject = function fromObject(object) { + EnumValueOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.EnumValueOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.EnumValueOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.EnumValueOptions(); if (object.deprecated != null) message.deprecated = Boolean(object.deprecated); if (object.features != null) { - if (typeof object.features !== "object") + if (!$util.isObject(object.features)) throw TypeError(".google.protobuf.EnumValueOptions.features: object expected"); - message.features = $root.google.protobuf.FeatureSet.fromObject(object.features); + message.features = $root.google.protobuf.FeatureSet.fromObject(object.features, long + 1); } if (object.debugRedact != null) message.debugRedact = Boolean(object.debugRedact); + if (object.featureSupport != null) { + if (!$util.isObject(object.featureSupport)) + throw TypeError(".google.protobuf.EnumValueOptions.featureSupport: object expected"); + message.featureSupport = $root.google.protobuf.FieldOptions.FeatureSupport.fromObject(object.featureSupport, long + 1); + } if (object.uninterpretedOption) { if (!Array.isArray(object.uninterpretedOption)) throw TypeError(".google.protobuf.EnumValueOptions.uninterpretedOption: array expected"); message.uninterpretedOption = []; for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") + if (!$util.isObject(object.uninterpretedOption[i])) throw TypeError(".google.protobuf.EnumValueOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i], long + 1); } } return message; @@ -157844,9 +174031,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - EnumValueOptions.toObject = function toObject(message, options) { + EnumValueOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.uninterpretedOption = []; @@ -157854,17 +174045,20 @@ object.deprecated = false; object.features = null; object.debugRedact = false; + object.featureSupport = null; } - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) object.deprecated = message.deprecated; - if (message.features != null && message.hasOwnProperty("features")) - object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options); - if (message.debugRedact != null && message.hasOwnProperty("debugRedact")) + if (message.features != null && Object.hasOwnProperty.call(message, "features")) + object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options, q + 1); + if (message.debugRedact != null && Object.hasOwnProperty.call(message, "debugRedact")) object.debugRedact = message.debugRedact; + if (message.featureSupport != null && Object.hasOwnProperty.call(message, "featureSupport")) + object.featureSupport = $root.google.protobuf.FieldOptions.FeatureSupport.toObject(message.featureSupport, options, q + 1); if (message.uninterpretedOption && message.uninterpretedOption.length) { object.uninterpretedOption = []; for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options, q + 1); } return object; }; @@ -157924,7 +174118,7 @@ this.uninterpretedOption = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -157997,16 +174191,20 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ServiceOptions.encode = function encode(message, writer) { + ServiceOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) writer.uint32(/* id 33, wireType 0 =*/264).bool(message.deprecated); if (message.features != null && Object.hasOwnProperty.call(message, "features")) - $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 34, wireType 2 =*/274).fork()).ldelim(); + $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 34, wireType 2 =*/274).fork(), q + 1).ldelim(); if (message.uninterpretedOption != null && message.uninterpretedOption.length) for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork(), q + 1).ldelim(); if (message[".google.api.defaultHost"] != null && Object.hasOwnProperty.call(message, ".google.api.defaultHost")) writer.uint32(/* id 1049, wireType 2 =*/8394).string(message[".google.api.defaultHost"]); if (message[".google.api.oauthScopes"] != null && Object.hasOwnProperty.call(message, ".google.api.oauthScopes")) @@ -158026,7 +174224,7 @@ * @returns {$protobuf.Writer} Writer */ ServiceOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -158040,9 +174238,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ServiceOptions.decode = function decode(reader, length, error) { + ServiceOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ServiceOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -158050,7 +174252,7 @@ break; switch (tag >>> 3) { case 34: { - message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32()); + message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32(), undefined, long + 1); break; } case 33: { @@ -158060,7 +174262,7 @@ case 999: { if (!(message.uninterpretedOption && message.uninterpretedOption.length)) message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 1049: { @@ -158076,7 +174278,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -158107,33 +174309,37 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ServiceOptions.verify = function verify(message) { + ServiceOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.features != null && message.hasOwnProperty("features")) { - var error = $root.google.protobuf.FeatureSet.verify(message.features); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.features != null && Object.hasOwnProperty.call(message, "features")) { + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) if (typeof message.deprecated !== "boolean") return "deprecated: boolean expected"; - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (message.uninterpretedOption != null && Object.hasOwnProperty.call(message, "uninterpretedOption")) { if (!Array.isArray(message.uninterpretedOption)) return "uninterpretedOption: array expected"; for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i], long + 1); if (error) return "uninterpretedOption." + error; } } - if (message[".google.api.defaultHost"] != null && message.hasOwnProperty(".google.api.defaultHost")) + if (message[".google.api.defaultHost"] != null && Object.hasOwnProperty.call(message, ".google.api.defaultHost")) if (!$util.isString(message[".google.api.defaultHost"])) return ".google.api.defaultHost: string expected"; - if (message[".google.api.oauthScopes"] != null && message.hasOwnProperty(".google.api.oauthScopes")) + if (message[".google.api.oauthScopes"] != null && Object.hasOwnProperty.call(message, ".google.api.oauthScopes")) if (!$util.isString(message[".google.api.oauthScopes"])) return ".google.api.oauthScopes: string expected"; - if (message[".google.api.apiVersion"] != null && message.hasOwnProperty(".google.api.apiVersion")) + if (message[".google.api.apiVersion"] != null && Object.hasOwnProperty.call(message, ".google.api.apiVersion")) if (!$util.isString(message[".google.api.apiVersion"])) return ".google.api.apiVersion: string expected"; return null; @@ -158147,14 +174353,20 @@ * @param {Object.} object Plain object * @returns {google.protobuf.ServiceOptions} ServiceOptions */ - ServiceOptions.fromObject = function fromObject(object) { + ServiceOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.ServiceOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.ServiceOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.ServiceOptions(); if (object.features != null) { - if (typeof object.features !== "object") + if (!$util.isObject(object.features)) throw TypeError(".google.protobuf.ServiceOptions.features: object expected"); - message.features = $root.google.protobuf.FeatureSet.fromObject(object.features); + message.features = $root.google.protobuf.FeatureSet.fromObject(object.features, long + 1); } if (object.deprecated != null) message.deprecated = Boolean(object.deprecated); @@ -158163,9 +174375,9 @@ throw TypeError(".google.protobuf.ServiceOptions.uninterpretedOption: array expected"); message.uninterpretedOption = []; for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") + if (!$util.isObject(object.uninterpretedOption[i])) throw TypeError(".google.protobuf.ServiceOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i], long + 1); } } if (object[".google.api.defaultHost"] != null) @@ -158186,9 +174398,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ServiceOptions.toObject = function toObject(message, options) { + ServiceOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.uninterpretedOption = []; @@ -158199,20 +174415,20 @@ object[".google.api.oauthScopes"] = ""; object[".google.api.apiVersion"] = ""; } - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) object.deprecated = message.deprecated; - if (message.features != null && message.hasOwnProperty("features")) - object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options); + if (message.features != null && Object.hasOwnProperty.call(message, "features")) + object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options, q + 1); if (message.uninterpretedOption && message.uninterpretedOption.length) { object.uninterpretedOption = []; for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options, q + 1); } - if (message[".google.api.defaultHost"] != null && message.hasOwnProperty(".google.api.defaultHost")) + if (message[".google.api.defaultHost"] != null && Object.hasOwnProperty.call(message, ".google.api.defaultHost")) object[".google.api.defaultHost"] = message[".google.api.defaultHost"]; - if (message[".google.api.oauthScopes"] != null && message.hasOwnProperty(".google.api.oauthScopes")) + if (message[".google.api.oauthScopes"] != null && Object.hasOwnProperty.call(message, ".google.api.oauthScopes")) object[".google.api.oauthScopes"] = message[".google.api.oauthScopes"]; - if (message[".google.api.apiVersion"] != null && message.hasOwnProperty(".google.api.apiVersion")) + if (message[".google.api.apiVersion"] != null && Object.hasOwnProperty.call(message, ".google.api.apiVersion")) object[".google.api.apiVersion"] = message[".google.api.apiVersion"]; return object; }; @@ -158273,7 +174489,7 @@ this[".google.api.methodSignature"] = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -158346,23 +174562,27 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MethodOptions.encode = function encode(message, writer) { + MethodOptions.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) writer.uint32(/* id 33, wireType 0 =*/264).bool(message.deprecated); if (message.idempotencyLevel != null && Object.hasOwnProperty.call(message, "idempotencyLevel")) writer.uint32(/* id 34, wireType 0 =*/272).int32(message.idempotencyLevel); if (message.features != null && Object.hasOwnProperty.call(message, "features")) - $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 35, wireType 2 =*/282).fork()).ldelim(); + $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 35, wireType 2 =*/282).fork(), q + 1).ldelim(); if (message.uninterpretedOption != null && message.uninterpretedOption.length) for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork(), q + 1).ldelim(); if (message[".google.api.methodSignature"] != null && message[".google.api.methodSignature"].length) for (var i = 0; i < message[".google.api.methodSignature"].length; ++i) writer.uint32(/* id 1051, wireType 2 =*/8410).string(message[".google.api.methodSignature"][i]); if (message[".google.api.http"] != null && Object.hasOwnProperty.call(message, ".google.api.http")) - $root.google.api.HttpRule.encode(message[".google.api.http"], writer.uint32(/* id 72295728, wireType 2 =*/578365826).fork()).ldelim(); + $root.google.api.HttpRule.encode(message[".google.api.http"], writer.uint32(/* id 72295728, wireType 2 =*/578365826).fork(), q + 1).ldelim(); return writer; }; @@ -158376,7 +174596,7 @@ * @returns {$protobuf.Writer} Writer */ MethodOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -158390,9 +174610,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MethodOptions.decode = function decode(reader, length, error) { + MethodOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.MethodOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -158408,17 +174632,17 @@ break; } case 35: { - message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32()); + message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32(), undefined, long + 1); break; } case 999: { if (!(message.uninterpretedOption && message.uninterpretedOption.length)) message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 72295728: { - message[".google.api.http"] = $root.google.api.HttpRule.decode(reader, reader.uint32()); + message[".google.api.http"] = $root.google.api.HttpRule.decode(reader, reader.uint32(), undefined, long + 1); break; } case 1051: { @@ -158428,7 +174652,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -158459,13 +174683,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MethodOptions.verify = function verify(message) { + MethodOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) if (typeof message.deprecated !== "boolean") return "deprecated: boolean expected"; - if (message.idempotencyLevel != null && message.hasOwnProperty("idempotencyLevel")) + if (message.idempotencyLevel != null && Object.hasOwnProperty.call(message, "idempotencyLevel")) switch (message.idempotencyLevel) { default: return "idempotencyLevel: enum value expected"; @@ -158474,26 +174702,26 @@ case 2: break; } - if (message.features != null && message.hasOwnProperty("features")) { - var error = $root.google.protobuf.FeatureSet.verify(message.features); + if (message.features != null && Object.hasOwnProperty.call(message, "features")) { + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (message.uninterpretedOption != null && Object.hasOwnProperty.call(message, "uninterpretedOption")) { if (!Array.isArray(message.uninterpretedOption)) return "uninterpretedOption: array expected"; for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i], long + 1); if (error) return "uninterpretedOption." + error; } } - if (message[".google.api.http"] != null && message.hasOwnProperty(".google.api.http")) { - var error = $root.google.api.HttpRule.verify(message[".google.api.http"]); + if (message[".google.api.http"] != null && Object.hasOwnProperty.call(message, ".google.api.http")) { + var error = $root.google.api.HttpRule.verify(message[".google.api.http"], long + 1); if (error) return ".google.api.http." + error; } - if (message[".google.api.methodSignature"] != null && message.hasOwnProperty(".google.api.methodSignature")) { + if (message[".google.api.methodSignature"] != null && Object.hasOwnProperty.call(message, ".google.api.methodSignature")) { if (!Array.isArray(message[".google.api.methodSignature"])) return ".google.api.methodSignature: array expected"; for (var i = 0; i < message[".google.api.methodSignature"].length; ++i) @@ -158511,9 +174739,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.MethodOptions} MethodOptions */ - MethodOptions.fromObject = function fromObject(object) { + MethodOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.MethodOptions) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.MethodOptions: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.MethodOptions(); if (object.deprecated != null) message.deprecated = Boolean(object.deprecated); @@ -158538,24 +174772,24 @@ break; } if (object.features != null) { - if (typeof object.features !== "object") + if (!$util.isObject(object.features)) throw TypeError(".google.protobuf.MethodOptions.features: object expected"); - message.features = $root.google.protobuf.FeatureSet.fromObject(object.features); + message.features = $root.google.protobuf.FeatureSet.fromObject(object.features, long + 1); } if (object.uninterpretedOption) { if (!Array.isArray(object.uninterpretedOption)) throw TypeError(".google.protobuf.MethodOptions.uninterpretedOption: array expected"); message.uninterpretedOption = []; for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") + if (!$util.isObject(object.uninterpretedOption[i])) throw TypeError(".google.protobuf.MethodOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i], long + 1); } } if (object[".google.api.http"] != null) { - if (typeof object[".google.api.http"] !== "object") + if (!$util.isObject(object[".google.api.http"])) throw TypeError(".google.protobuf.MethodOptions..google.api.http: object expected"); - message[".google.api.http"] = $root.google.api.HttpRule.fromObject(object[".google.api.http"]); + message[".google.api.http"] = $root.google.api.HttpRule.fromObject(object[".google.api.http"], long + 1); } if (object[".google.api.methodSignature"]) { if (!Array.isArray(object[".google.api.methodSignature"])) @@ -158576,9 +174810,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MethodOptions.toObject = function toObject(message, options) { + MethodOptions.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.uninterpretedOption = []; @@ -158590,24 +174828,24 @@ object.features = null; object[".google.api.http"] = null; } - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) object.deprecated = message.deprecated; - if (message.idempotencyLevel != null && message.hasOwnProperty("idempotencyLevel")) + if (message.idempotencyLevel != null && Object.hasOwnProperty.call(message, "idempotencyLevel")) object.idempotencyLevel = options.enums === String ? $root.google.protobuf.MethodOptions.IdempotencyLevel[message.idempotencyLevel] === undefined ? message.idempotencyLevel : $root.google.protobuf.MethodOptions.IdempotencyLevel[message.idempotencyLevel] : message.idempotencyLevel; - if (message.features != null && message.hasOwnProperty("features")) - object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options); + if (message.features != null && Object.hasOwnProperty.call(message, "features")) + object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options, q + 1); if (message.uninterpretedOption && message.uninterpretedOption.length) { object.uninterpretedOption = []; for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options, q + 1); } if (message[".google.api.methodSignature"] && message[".google.api.methodSignature"].length) { object[".google.api.methodSignature"] = []; for (var j = 0; j < message[".google.api.methodSignature"].length; ++j) object[".google.api.methodSignature"][j] = message[".google.api.methodSignature"][j]; } - if (message[".google.api.http"] != null && message.hasOwnProperty(".google.api.http")) - object[".google.api.http"] = $root.google.api.HttpRule.toObject(message[".google.api.http"], options); + if (message[".google.api.http"] != null && Object.hasOwnProperty.call(message, ".google.api.http")) + object[".google.api.http"] = $root.google.api.HttpRule.toObject(message[".google.api.http"], options, q + 1); return object; }; @@ -158683,7 +174921,7 @@ this.name = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -158764,12 +175002,16 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UninterpretedOption.encode = function encode(message, writer) { + UninterpretedOption.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.name != null && message.name.length) for (var i = 0; i < message.name.length; ++i) - $root.google.protobuf.UninterpretedOption.NamePart.encode(message.name[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.UninterpretedOption.NamePart.encode(message.name[i], writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); if (message.identifierValue != null && Object.hasOwnProperty.call(message, "identifierValue")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.identifierValue); if (message.positiveIntValue != null && Object.hasOwnProperty.call(message, "positiveIntValue")) @@ -158795,7 +175037,7 @@ * @returns {$protobuf.Writer} Writer */ UninterpretedOption.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -158809,9 +175051,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UninterpretedOption.decode = function decode(reader, length, error) { + UninterpretedOption.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.UninterpretedOption(); while (reader.pos < end) { var tag = reader.uint32(); @@ -158821,7 +175067,7 @@ case 2: { if (!(message.name && message.name.length)) message.name = []; - message.name.push($root.google.protobuf.UninterpretedOption.NamePart.decode(reader, reader.uint32())); + message.name.push($root.google.protobuf.UninterpretedOption.NamePart.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { @@ -158849,7 +175095,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -158880,34 +175126,38 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UninterpretedOption.verify = function verify(message) { + UninterpretedOption.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.name != null && Object.hasOwnProperty.call(message, "name")) { if (!Array.isArray(message.name)) return "name: array expected"; for (var i = 0; i < message.name.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.NamePart.verify(message.name[i]); + var error = $root.google.protobuf.UninterpretedOption.NamePart.verify(message.name[i], long + 1); if (error) return "name." + error; } } - if (message.identifierValue != null && message.hasOwnProperty("identifierValue")) + if (message.identifierValue != null && Object.hasOwnProperty.call(message, "identifierValue")) if (!$util.isString(message.identifierValue)) return "identifierValue: string expected"; - if (message.positiveIntValue != null && message.hasOwnProperty("positiveIntValue")) + if (message.positiveIntValue != null && Object.hasOwnProperty.call(message, "positiveIntValue")) if (!$util.isInteger(message.positiveIntValue) && !(message.positiveIntValue && $util.isInteger(message.positiveIntValue.low) && $util.isInteger(message.positiveIntValue.high))) return "positiveIntValue: integer|Long expected"; - if (message.negativeIntValue != null && message.hasOwnProperty("negativeIntValue")) + if (message.negativeIntValue != null && Object.hasOwnProperty.call(message, "negativeIntValue")) if (!$util.isInteger(message.negativeIntValue) && !(message.negativeIntValue && $util.isInteger(message.negativeIntValue.low) && $util.isInteger(message.negativeIntValue.high))) return "negativeIntValue: integer|Long expected"; - if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) + if (message.doubleValue != null && Object.hasOwnProperty.call(message, "doubleValue")) if (typeof message.doubleValue !== "number") return "doubleValue: number expected"; - if (message.stringValue != null && message.hasOwnProperty("stringValue")) + if (message.stringValue != null && Object.hasOwnProperty.call(message, "stringValue")) if (!(message.stringValue && typeof message.stringValue.length === "number" || $util.isString(message.stringValue))) return "stringValue: buffer expected"; - if (message.aggregateValue != null && message.hasOwnProperty("aggregateValue")) + if (message.aggregateValue != null && Object.hasOwnProperty.call(message, "aggregateValue")) if (!$util.isString(message.aggregateValue)) return "aggregateValue: string expected"; return null; @@ -158921,25 +175171,31 @@ * @param {Object.} object Plain object * @returns {google.protobuf.UninterpretedOption} UninterpretedOption */ - UninterpretedOption.fromObject = function fromObject(object) { + UninterpretedOption.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.UninterpretedOption) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.UninterpretedOption: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.UninterpretedOption(); if (object.name) { if (!Array.isArray(object.name)) throw TypeError(".google.protobuf.UninterpretedOption.name: array expected"); message.name = []; for (var i = 0; i < object.name.length; ++i) { - if (typeof object.name[i] !== "object") + if (!$util.isObject(object.name[i])) throw TypeError(".google.protobuf.UninterpretedOption.name: object expected"); - message.name[i] = $root.google.protobuf.UninterpretedOption.NamePart.fromObject(object.name[i]); + message.name[i] = $root.google.protobuf.UninterpretedOption.NamePart.fromObject(object.name[i], long + 1); } } if (object.identifierValue != null) message.identifierValue = String(object.identifierValue); if (object.positiveIntValue != null) if ($util.Long) - (message.positiveIntValue = $util.Long.fromValue(object.positiveIntValue)).unsigned = true; + message.positiveIntValue = $util.Long.fromValue(object.positiveIntValue, true); else if (typeof object.positiveIntValue === "string") message.positiveIntValue = parseInt(object.positiveIntValue, 10); else if (typeof object.positiveIntValue === "number") @@ -158948,7 +175204,7 @@ message.positiveIntValue = new $util.LongBits(object.positiveIntValue.low >>> 0, object.positiveIntValue.high >>> 0).toNumber(true); if (object.negativeIntValue != null) if ($util.Long) - (message.negativeIntValue = $util.Long.fromValue(object.negativeIntValue)).unsigned = false; + message.negativeIntValue = $util.Long.fromValue(object.negativeIntValue, false); else if (typeof object.negativeIntValue === "string") message.negativeIntValue = parseInt(object.negativeIntValue, 10); else if (typeof object.negativeIntValue === "number") @@ -158976,9 +175232,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - UninterpretedOption.toObject = function toObject(message, options) { + UninterpretedOption.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.name = []; @@ -158986,14 +175246,14 @@ object.identifierValue = ""; if ($util.Long) { var long = new $util.Long(0, 0, true); - object.positiveIntValue = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.positiveIntValue = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.positiveIntValue = options.longs === String ? "0" : 0; + object.positiveIntValue = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.negativeIntValue = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.negativeIntValue = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.negativeIntValue = options.longs === String ? "0" : 0; + object.negativeIntValue = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.doubleValue = 0; if (options.bytes === String) object.stringValue = ""; @@ -159007,25 +175267,29 @@ if (message.name && message.name.length) { object.name = []; for (var j = 0; j < message.name.length; ++j) - object.name[j] = $root.google.protobuf.UninterpretedOption.NamePart.toObject(message.name[j], options); + object.name[j] = $root.google.protobuf.UninterpretedOption.NamePart.toObject(message.name[j], options, q + 1); } - if (message.identifierValue != null && message.hasOwnProperty("identifierValue")) + if (message.identifierValue != null && Object.hasOwnProperty.call(message, "identifierValue")) object.identifierValue = message.identifierValue; - if (message.positiveIntValue != null && message.hasOwnProperty("positiveIntValue")) - if (typeof message.positiveIntValue === "number") + if (message.positiveIntValue != null && Object.hasOwnProperty.call(message, "positiveIntValue")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.positiveIntValue = typeof message.positiveIntValue === "number" ? BigInt(message.positiveIntValue) : $util.Long.fromBits(message.positiveIntValue.low >>> 0, message.positiveIntValue.high >>> 0, true).toBigInt(); + else if (typeof message.positiveIntValue === "number") object.positiveIntValue = options.longs === String ? String(message.positiveIntValue) : message.positiveIntValue; else object.positiveIntValue = options.longs === String ? $util.Long.prototype.toString.call(message.positiveIntValue) : options.longs === Number ? new $util.LongBits(message.positiveIntValue.low >>> 0, message.positiveIntValue.high >>> 0).toNumber(true) : message.positiveIntValue; - if (message.negativeIntValue != null && message.hasOwnProperty("negativeIntValue")) - if (typeof message.negativeIntValue === "number") + if (message.negativeIntValue != null && Object.hasOwnProperty.call(message, "negativeIntValue")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.negativeIntValue = typeof message.negativeIntValue === "number" ? BigInt(message.negativeIntValue) : $util.Long.fromBits(message.negativeIntValue.low >>> 0, message.negativeIntValue.high >>> 0, false).toBigInt(); + else if (typeof message.negativeIntValue === "number") object.negativeIntValue = options.longs === String ? String(message.negativeIntValue) : message.negativeIntValue; else object.negativeIntValue = options.longs === String ? $util.Long.prototype.toString.call(message.negativeIntValue) : options.longs === Number ? new $util.LongBits(message.negativeIntValue.low >>> 0, message.negativeIntValue.high >>> 0).toNumber() : message.negativeIntValue; - if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) + if (message.doubleValue != null && Object.hasOwnProperty.call(message, "doubleValue")) object.doubleValue = options.json && !isFinite(message.doubleValue) ? String(message.doubleValue) : message.doubleValue; - if (message.stringValue != null && message.hasOwnProperty("stringValue")) + if (message.stringValue != null && Object.hasOwnProperty.call(message, "stringValue")) object.stringValue = options.bytes === String ? $util.base64.encode(message.stringValue, 0, message.stringValue.length) : options.bytes === Array ? Array.prototype.slice.call(message.stringValue) : message.stringValue; - if (message.aggregateValue != null && message.hasOwnProperty("aggregateValue")) + if (message.aggregateValue != null && Object.hasOwnProperty.call(message, "aggregateValue")) object.aggregateValue = message.aggregateValue; return object; }; @@ -159077,7 +175341,7 @@ function NamePart(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -159118,9 +175382,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - NamePart.encode = function encode(message, writer) { + NamePart.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); writer.uint32(/* id 1, wireType 2 =*/10).string(message.namePart); writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isExtension); return writer; @@ -159136,7 +175404,7 @@ * @returns {$protobuf.Writer} Writer */ NamePart.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -159150,9 +175418,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - NamePart.decode = function decode(reader, length, error) { + NamePart.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.UninterpretedOption.NamePart(); while (reader.pos < end) { var tag = reader.uint32(); @@ -159168,13 +175440,13 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } - if (!message.hasOwnProperty("namePart")) + if (!Object.hasOwnProperty.call(message, "namePart")) throw $util.ProtocolError("missing required 'namePart'", { instance: message }); - if (!message.hasOwnProperty("isExtension")) + if (!Object.hasOwnProperty.call(message, "isExtension")) throw $util.ProtocolError("missing required 'isExtension'", { instance: message }); return message; }; @@ -159203,9 +175475,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - NamePart.verify = function verify(message) { + NamePart.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (!$util.isString(message.namePart)) return "namePart: string expected"; if (typeof message.isExtension !== "boolean") @@ -159221,9 +175497,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.UninterpretedOption.NamePart} NamePart */ - NamePart.fromObject = function fromObject(object) { + NamePart.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.UninterpretedOption.NamePart) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.UninterpretedOption.NamePart: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.UninterpretedOption.NamePart(); if (object.namePart != null) message.namePart = String(object.namePart); @@ -159241,17 +175523,21 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - NamePart.toObject = function toObject(message, options) { + NamePart.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.namePart = ""; object.isExtension = false; } - if (message.namePart != null && message.hasOwnProperty("namePart")) + if (message.namePart != null && Object.hasOwnProperty.call(message, "namePart")) object.namePart = message.namePart; - if (message.isExtension != null && message.hasOwnProperty("isExtension")) + if (message.isExtension != null && Object.hasOwnProperty.call(message, "isExtension")) object.isExtension = message.isExtension; return object; }; @@ -159300,6 +175586,8 @@ * @property {google.protobuf.FeatureSet.Utf8Validation|null} [utf8Validation] FeatureSet utf8Validation * @property {google.protobuf.FeatureSet.MessageEncoding|null} [messageEncoding] FeatureSet messageEncoding * @property {google.protobuf.FeatureSet.JsonFormat|null} [jsonFormat] FeatureSet jsonFormat + * @property {google.protobuf.FeatureSet.EnforceNamingStyle|null} [enforceNamingStyle] FeatureSet enforceNamingStyle + * @property {google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility|null} [defaultSymbolVisibility] FeatureSet defaultSymbolVisibility */ /** @@ -159313,7 +175601,7 @@ function FeatureSet(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -159365,6 +175653,22 @@ */ FeatureSet.prototype.jsonFormat = 0; + /** + * FeatureSet enforceNamingStyle. + * @member {google.protobuf.FeatureSet.EnforceNamingStyle} enforceNamingStyle + * @memberof google.protobuf.FeatureSet + * @instance + */ + FeatureSet.prototype.enforceNamingStyle = 0; + + /** + * FeatureSet defaultSymbolVisibility. + * @member {google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility} defaultSymbolVisibility + * @memberof google.protobuf.FeatureSet + * @instance + */ + FeatureSet.prototype.defaultSymbolVisibility = 0; + /** * Creates a new FeatureSet instance using the specified properties. * @function create @@ -159386,9 +175690,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FeatureSet.encode = function encode(message, writer) { + FeatureSet.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.fieldPresence != null && Object.hasOwnProperty.call(message, "fieldPresence")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.fieldPresence); if (message.enumType != null && Object.hasOwnProperty.call(message, "enumType")) @@ -159401,6 +175709,10 @@ writer.uint32(/* id 5, wireType 0 =*/40).int32(message.messageEncoding); if (message.jsonFormat != null && Object.hasOwnProperty.call(message, "jsonFormat")) writer.uint32(/* id 6, wireType 0 =*/48).int32(message.jsonFormat); + if (message.enforceNamingStyle != null && Object.hasOwnProperty.call(message, "enforceNamingStyle")) + writer.uint32(/* id 7, wireType 0 =*/56).int32(message.enforceNamingStyle); + if (message.defaultSymbolVisibility != null && Object.hasOwnProperty.call(message, "defaultSymbolVisibility")) + writer.uint32(/* id 8, wireType 0 =*/64).int32(message.defaultSymbolVisibility); return writer; }; @@ -159414,7 +175726,7 @@ * @returns {$protobuf.Writer} Writer */ FeatureSet.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -159428,9 +175740,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FeatureSet.decode = function decode(reader, length, error) { + FeatureSet.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FeatureSet(); while (reader.pos < end) { var tag = reader.uint32(); @@ -159461,8 +175777,16 @@ message.jsonFormat = reader.int32(); break; } + case 7: { + message.enforceNamingStyle = reader.int32(); + break; + } + case 8: { + message.defaultSymbolVisibility = reader.int32(); + break; + } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -159493,10 +175817,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FeatureSet.verify = function verify(message) { + FeatureSet.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.fieldPresence != null && message.hasOwnProperty("fieldPresence")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.fieldPresence != null && Object.hasOwnProperty.call(message, "fieldPresence")) switch (message.fieldPresence) { default: return "fieldPresence: enum value expected"; @@ -159506,7 +175834,7 @@ case 3: break; } - if (message.enumType != null && message.hasOwnProperty("enumType")) + if (message.enumType != null && Object.hasOwnProperty.call(message, "enumType")) switch (message.enumType) { default: return "enumType: enum value expected"; @@ -159515,7 +175843,7 @@ case 2: break; } - if (message.repeatedFieldEncoding != null && message.hasOwnProperty("repeatedFieldEncoding")) + if (message.repeatedFieldEncoding != null && Object.hasOwnProperty.call(message, "repeatedFieldEncoding")) switch (message.repeatedFieldEncoding) { default: return "repeatedFieldEncoding: enum value expected"; @@ -159524,7 +175852,7 @@ case 2: break; } - if (message.utf8Validation != null && message.hasOwnProperty("utf8Validation")) + if (message.utf8Validation != null && Object.hasOwnProperty.call(message, "utf8Validation")) switch (message.utf8Validation) { default: return "utf8Validation: enum value expected"; @@ -159533,7 +175861,7 @@ case 3: break; } - if (message.messageEncoding != null && message.hasOwnProperty("messageEncoding")) + if (message.messageEncoding != null && Object.hasOwnProperty.call(message, "messageEncoding")) switch (message.messageEncoding) { default: return "messageEncoding: enum value expected"; @@ -159542,7 +175870,7 @@ case 2: break; } - if (message.jsonFormat != null && message.hasOwnProperty("jsonFormat")) + if (message.jsonFormat != null && Object.hasOwnProperty.call(message, "jsonFormat")) switch (message.jsonFormat) { default: return "jsonFormat: enum value expected"; @@ -159551,6 +175879,26 @@ case 2: break; } + if (message.enforceNamingStyle != null && Object.hasOwnProperty.call(message, "enforceNamingStyle")) + switch (message.enforceNamingStyle) { + default: + return "enforceNamingStyle: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.defaultSymbolVisibility != null && Object.hasOwnProperty.call(message, "defaultSymbolVisibility")) + switch (message.defaultSymbolVisibility) { + default: + return "defaultSymbolVisibility: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } return null; }; @@ -159562,9 +175910,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.FeatureSet} FeatureSet */ - FeatureSet.fromObject = function fromObject(object) { + FeatureSet.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.FeatureSet) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.FeatureSet: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.FeatureSet(); switch (object.fieldPresence) { default: @@ -159690,6 +176044,54 @@ message.jsonFormat = 2; break; } + switch (object.enforceNamingStyle) { + default: + if (typeof object.enforceNamingStyle === "number") { + message.enforceNamingStyle = object.enforceNamingStyle; + break; + } + break; + case "ENFORCE_NAMING_STYLE_UNKNOWN": + case 0: + message.enforceNamingStyle = 0; + break; + case "STYLE2024": + case 1: + message.enforceNamingStyle = 1; + break; + case "STYLE_LEGACY": + case 2: + message.enforceNamingStyle = 2; + break; + } + switch (object.defaultSymbolVisibility) { + default: + if (typeof object.defaultSymbolVisibility === "number") { + message.defaultSymbolVisibility = object.defaultSymbolVisibility; + break; + } + break; + case "DEFAULT_SYMBOL_VISIBILITY_UNKNOWN": + case 0: + message.defaultSymbolVisibility = 0; + break; + case "EXPORT_ALL": + case 1: + message.defaultSymbolVisibility = 1; + break; + case "EXPORT_TOP_LEVEL": + case 2: + message.defaultSymbolVisibility = 2; + break; + case "LOCAL_ALL": + case 3: + message.defaultSymbolVisibility = 3; + break; + case "STRICT": + case 4: + message.defaultSymbolVisibility = 4; + break; + } return message; }; @@ -159702,9 +176104,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FeatureSet.toObject = function toObject(message, options) { + FeatureSet.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.fieldPresence = options.enums === String ? "FIELD_PRESENCE_UNKNOWN" : 0; @@ -159713,19 +176119,25 @@ object.utf8Validation = options.enums === String ? "UTF8_VALIDATION_UNKNOWN" : 0; object.messageEncoding = options.enums === String ? "MESSAGE_ENCODING_UNKNOWN" : 0; object.jsonFormat = options.enums === String ? "JSON_FORMAT_UNKNOWN" : 0; + object.enforceNamingStyle = options.enums === String ? "ENFORCE_NAMING_STYLE_UNKNOWN" : 0; + object.defaultSymbolVisibility = options.enums === String ? "DEFAULT_SYMBOL_VISIBILITY_UNKNOWN" : 0; } - if (message.fieldPresence != null && message.hasOwnProperty("fieldPresence")) + if (message.fieldPresence != null && Object.hasOwnProperty.call(message, "fieldPresence")) object.fieldPresence = options.enums === String ? $root.google.protobuf.FeatureSet.FieldPresence[message.fieldPresence] === undefined ? message.fieldPresence : $root.google.protobuf.FeatureSet.FieldPresence[message.fieldPresence] : message.fieldPresence; - if (message.enumType != null && message.hasOwnProperty("enumType")) + if (message.enumType != null && Object.hasOwnProperty.call(message, "enumType")) object.enumType = options.enums === String ? $root.google.protobuf.FeatureSet.EnumType[message.enumType] === undefined ? message.enumType : $root.google.protobuf.FeatureSet.EnumType[message.enumType] : message.enumType; - if (message.repeatedFieldEncoding != null && message.hasOwnProperty("repeatedFieldEncoding")) + if (message.repeatedFieldEncoding != null && Object.hasOwnProperty.call(message, "repeatedFieldEncoding")) object.repeatedFieldEncoding = options.enums === String ? $root.google.protobuf.FeatureSet.RepeatedFieldEncoding[message.repeatedFieldEncoding] === undefined ? message.repeatedFieldEncoding : $root.google.protobuf.FeatureSet.RepeatedFieldEncoding[message.repeatedFieldEncoding] : message.repeatedFieldEncoding; - if (message.utf8Validation != null && message.hasOwnProperty("utf8Validation")) + if (message.utf8Validation != null && Object.hasOwnProperty.call(message, "utf8Validation")) object.utf8Validation = options.enums === String ? $root.google.protobuf.FeatureSet.Utf8Validation[message.utf8Validation] === undefined ? message.utf8Validation : $root.google.protobuf.FeatureSet.Utf8Validation[message.utf8Validation] : message.utf8Validation; - if (message.messageEncoding != null && message.hasOwnProperty("messageEncoding")) + if (message.messageEncoding != null && Object.hasOwnProperty.call(message, "messageEncoding")) object.messageEncoding = options.enums === String ? $root.google.protobuf.FeatureSet.MessageEncoding[message.messageEncoding] === undefined ? message.messageEncoding : $root.google.protobuf.FeatureSet.MessageEncoding[message.messageEncoding] : message.messageEncoding; - if (message.jsonFormat != null && message.hasOwnProperty("jsonFormat")) + if (message.jsonFormat != null && Object.hasOwnProperty.call(message, "jsonFormat")) object.jsonFormat = options.enums === String ? $root.google.protobuf.FeatureSet.JsonFormat[message.jsonFormat] === undefined ? message.jsonFormat : $root.google.protobuf.FeatureSet.JsonFormat[message.jsonFormat] : message.jsonFormat; + if (message.enforceNamingStyle != null && Object.hasOwnProperty.call(message, "enforceNamingStyle")) + object.enforceNamingStyle = options.enums === String ? $root.google.protobuf.FeatureSet.EnforceNamingStyle[message.enforceNamingStyle] === undefined ? message.enforceNamingStyle : $root.google.protobuf.FeatureSet.EnforceNamingStyle[message.enforceNamingStyle] : message.enforceNamingStyle; + if (message.defaultSymbolVisibility != null && Object.hasOwnProperty.call(message, "defaultSymbolVisibility")) + object.defaultSymbolVisibility = options.enums === String ? $root.google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility[message.defaultSymbolVisibility] === undefined ? message.defaultSymbolVisibility : $root.google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility[message.defaultSymbolVisibility] : message.defaultSymbolVisibility; return object; }; @@ -159853,6 +176265,231 @@ return values; })(); + /** + * EnforceNamingStyle enum. + * @name google.protobuf.FeatureSet.EnforceNamingStyle + * @enum {number} + * @property {number} ENFORCE_NAMING_STYLE_UNKNOWN=0 ENFORCE_NAMING_STYLE_UNKNOWN value + * @property {number} STYLE2024=1 STYLE2024 value + * @property {number} STYLE_LEGACY=2 STYLE_LEGACY value + */ + FeatureSet.EnforceNamingStyle = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "ENFORCE_NAMING_STYLE_UNKNOWN"] = 0; + values[valuesById[1] = "STYLE2024"] = 1; + values[valuesById[2] = "STYLE_LEGACY"] = 2; + return values; + })(); + + FeatureSet.VisibilityFeature = (function() { + + /** + * Properties of a VisibilityFeature. + * @memberof google.protobuf.FeatureSet + * @interface IVisibilityFeature + */ + + /** + * Constructs a new VisibilityFeature. + * @memberof google.protobuf.FeatureSet + * @classdesc Represents a VisibilityFeature. + * @implements IVisibilityFeature + * @constructor + * @param {google.protobuf.FeatureSet.IVisibilityFeature=} [properties] Properties to set + */ + function VisibilityFeature(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null && keys[i] !== "__proto__") + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new VisibilityFeature instance using the specified properties. + * @function create + * @memberof google.protobuf.FeatureSet.VisibilityFeature + * @static + * @param {google.protobuf.FeatureSet.IVisibilityFeature=} [properties] Properties to set + * @returns {google.protobuf.FeatureSet.VisibilityFeature} VisibilityFeature instance + */ + VisibilityFeature.create = function create(properties) { + return new VisibilityFeature(properties); + }; + + /** + * Encodes the specified VisibilityFeature message. Does not implicitly {@link google.protobuf.FeatureSet.VisibilityFeature.verify|verify} messages. + * @function encode + * @memberof google.protobuf.FeatureSet.VisibilityFeature + * @static + * @param {google.protobuf.FeatureSet.IVisibilityFeature} message VisibilityFeature message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + VisibilityFeature.encode = function encode(message, writer, q) { + if (!writer) + writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); + return writer; + }; + + /** + * Encodes the specified VisibilityFeature message, length delimited. Does not implicitly {@link google.protobuf.FeatureSet.VisibilityFeature.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.FeatureSet.VisibilityFeature + * @static + * @param {google.protobuf.FeatureSet.IVisibilityFeature} message VisibilityFeature message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + VisibilityFeature.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); + }; + + /** + * Decodes a VisibilityFeature message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.FeatureSet.VisibilityFeature + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.FeatureSet.VisibilityFeature} VisibilityFeature + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + VisibilityFeature.decode = function decode(reader, length, error, long) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FeatureSet.VisibilityFeature(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + default: + reader.skipType(tag & 7, long); + break; + } + } + return message; + }; + + /** + * Decodes a VisibilityFeature message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.FeatureSet.VisibilityFeature + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.FeatureSet.VisibilityFeature} VisibilityFeature + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + VisibilityFeature.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a VisibilityFeature message. + * @function verify + * @memberof google.protobuf.FeatureSet.VisibilityFeature + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + VisibilityFeature.verify = function verify(message, long) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + return null; + }; + + /** + * Creates a VisibilityFeature message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.FeatureSet.VisibilityFeature + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.FeatureSet.VisibilityFeature} VisibilityFeature + */ + VisibilityFeature.fromObject = function fromObject(object, long) { + if (object instanceof $root.google.protobuf.FeatureSet.VisibilityFeature) + return object; + return new $root.google.protobuf.FeatureSet.VisibilityFeature(); + }; + + /** + * Creates a plain object from a VisibilityFeature message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.FeatureSet.VisibilityFeature + * @static + * @param {google.protobuf.FeatureSet.VisibilityFeature} message VisibilityFeature + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + VisibilityFeature.toObject = function toObject() { + return {}; + }; + + /** + * Converts this VisibilityFeature to JSON. + * @function toJSON + * @memberof google.protobuf.FeatureSet.VisibilityFeature + * @instance + * @returns {Object.} JSON object + */ + VisibilityFeature.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for VisibilityFeature + * @function getTypeUrl + * @memberof google.protobuf.FeatureSet.VisibilityFeature + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + VisibilityFeature.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.FeatureSet.VisibilityFeature"; + }; + + /** + * DefaultSymbolVisibility enum. + * @name google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility + * @enum {number} + * @property {number} DEFAULT_SYMBOL_VISIBILITY_UNKNOWN=0 DEFAULT_SYMBOL_VISIBILITY_UNKNOWN value + * @property {number} EXPORT_ALL=1 EXPORT_ALL value + * @property {number} EXPORT_TOP_LEVEL=2 EXPORT_TOP_LEVEL value + * @property {number} LOCAL_ALL=3 LOCAL_ALL value + * @property {number} STRICT=4 STRICT value + */ + VisibilityFeature.DefaultSymbolVisibility = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "DEFAULT_SYMBOL_VISIBILITY_UNKNOWN"] = 0; + values[valuesById[1] = "EXPORT_ALL"] = 1; + values[valuesById[2] = "EXPORT_TOP_LEVEL"] = 2; + values[valuesById[3] = "LOCAL_ALL"] = 3; + values[valuesById[4] = "STRICT"] = 4; + return values; + })(); + + return VisibilityFeature; + })(); + return FeatureSet; })(); @@ -159879,7 +176516,7 @@ this.defaults = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -159928,12 +176565,16 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FeatureSetDefaults.encode = function encode(message, writer) { + FeatureSetDefaults.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.defaults != null && message.defaults.length) for (var i = 0; i < message.defaults.length; ++i) - $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.encode(message.defaults[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.encode(message.defaults[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.minimumEdition != null && Object.hasOwnProperty.call(message, "minimumEdition")) writer.uint32(/* id 4, wireType 0 =*/32).int32(message.minimumEdition); if (message.maximumEdition != null && Object.hasOwnProperty.call(message, "maximumEdition")) @@ -159951,7 +176592,7 @@ * @returns {$protobuf.Writer} Writer */ FeatureSetDefaults.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -159965,9 +176606,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FeatureSetDefaults.decode = function decode(reader, length, error) { + FeatureSetDefaults.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FeatureSetDefaults(); while (reader.pos < end) { var tag = reader.uint32(); @@ -159977,7 +176622,7 @@ case 1: { if (!(message.defaults && message.defaults.length)) message.defaults = []; - message.defaults.push($root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.decode(reader, reader.uint32())); + message.defaults.push($root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 4: { @@ -159989,7 +176634,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -160020,23 +176665,28 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FeatureSetDefaults.verify = function verify(message) { + FeatureSetDefaults.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.defaults != null && message.hasOwnProperty("defaults")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.defaults != null && Object.hasOwnProperty.call(message, "defaults")) { if (!Array.isArray(message.defaults)) return "defaults: array expected"; for (var i = 0; i < message.defaults.length; ++i) { - var error = $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.verify(message.defaults[i]); + var error = $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.verify(message.defaults[i], long + 1); if (error) return "defaults." + error; } } - if (message.minimumEdition != null && message.hasOwnProperty("minimumEdition")) + if (message.minimumEdition != null && Object.hasOwnProperty.call(message, "minimumEdition")) switch (message.minimumEdition) { default: return "minimumEdition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -160049,11 +176699,12 @@ case 2147483647: break; } - if (message.maximumEdition != null && message.hasOwnProperty("maximumEdition")) + if (message.maximumEdition != null && Object.hasOwnProperty.call(message, "maximumEdition")) switch (message.maximumEdition) { default: return "maximumEdition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -160077,18 +176728,24 @@ * @param {Object.} object Plain object * @returns {google.protobuf.FeatureSetDefaults} FeatureSetDefaults */ - FeatureSetDefaults.fromObject = function fromObject(object) { + FeatureSetDefaults.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.FeatureSetDefaults) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.FeatureSetDefaults: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.FeatureSetDefaults(); if (object.defaults) { if (!Array.isArray(object.defaults)) throw TypeError(".google.protobuf.FeatureSetDefaults.defaults: array expected"); message.defaults = []; for (var i = 0; i < object.defaults.length; ++i) { - if (typeof object.defaults[i] !== "object") + if (!$util.isObject(object.defaults[i])) throw TypeError(".google.protobuf.FeatureSetDefaults.defaults: object expected"); - message.defaults[i] = $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.fromObject(object.defaults[i]); + message.defaults[i] = $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.fromObject(object.defaults[i], long + 1); } } switch (object.minimumEdition) { @@ -160102,6 +176759,10 @@ case 0: message.minimumEdition = 0; break; + case "EDITION_LEGACY": + case 900: + message.minimumEdition = 900; + break; case "EDITION_PROTO2": case 998: message.minimumEdition = 998; @@ -160154,6 +176815,10 @@ case 0: message.maximumEdition = 0; break; + case "EDITION_LEGACY": + case 900: + message.maximumEdition = 900; + break; case "EDITION_PROTO2": case 998: message.maximumEdition = 998; @@ -160207,9 +176872,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FeatureSetDefaults.toObject = function toObject(message, options) { + FeatureSetDefaults.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.defaults = []; @@ -160220,11 +176889,11 @@ if (message.defaults && message.defaults.length) { object.defaults = []; for (var j = 0; j < message.defaults.length; ++j) - object.defaults[j] = $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.toObject(message.defaults[j], options); + object.defaults[j] = $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.toObject(message.defaults[j], options, q + 1); } - if (message.minimumEdition != null && message.hasOwnProperty("minimumEdition")) + if (message.minimumEdition != null && Object.hasOwnProperty.call(message, "minimumEdition")) object.minimumEdition = options.enums === String ? $root.google.protobuf.Edition[message.minimumEdition] === undefined ? message.minimumEdition : $root.google.protobuf.Edition[message.minimumEdition] : message.minimumEdition; - if (message.maximumEdition != null && message.hasOwnProperty("maximumEdition")) + if (message.maximumEdition != null && Object.hasOwnProperty.call(message, "maximumEdition")) object.maximumEdition = options.enums === String ? $root.google.protobuf.Edition[message.maximumEdition] === undefined ? message.maximumEdition : $root.google.protobuf.Edition[message.maximumEdition] : message.maximumEdition; return object; }; @@ -160262,7 +176931,8 @@ * @memberof google.protobuf.FeatureSetDefaults * @interface IFeatureSetEditionDefault * @property {google.protobuf.Edition|null} [edition] FeatureSetEditionDefault edition - * @property {google.protobuf.IFeatureSet|null} [features] FeatureSetEditionDefault features + * @property {google.protobuf.IFeatureSet|null} [overridableFeatures] FeatureSetEditionDefault overridableFeatures + * @property {google.protobuf.IFeatureSet|null} [fixedFeatures] FeatureSetEditionDefault fixedFeatures */ /** @@ -160276,7 +176946,7 @@ function FeatureSetEditionDefault(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -160289,12 +176959,20 @@ FeatureSetEditionDefault.prototype.edition = 0; /** - * FeatureSetEditionDefault features. - * @member {google.protobuf.IFeatureSet|null|undefined} features + * FeatureSetEditionDefault overridableFeatures. + * @member {google.protobuf.IFeatureSet|null|undefined} overridableFeatures + * @memberof google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault + * @instance + */ + FeatureSetEditionDefault.prototype.overridableFeatures = null; + + /** + * FeatureSetEditionDefault fixedFeatures. + * @member {google.protobuf.IFeatureSet|null|undefined} fixedFeatures * @memberof google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault * @instance */ - FeatureSetEditionDefault.prototype.features = null; + FeatureSetEditionDefault.prototype.fixedFeatures = null; /** * Creates a new FeatureSetEditionDefault instance using the specified properties. @@ -160317,13 +176995,19 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FeatureSetEditionDefault.encode = function encode(message, writer) { + FeatureSetEditionDefault.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); - if (message.features != null && Object.hasOwnProperty.call(message, "features")) - $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.edition != null && Object.hasOwnProperty.call(message, "edition")) writer.uint32(/* id 3, wireType 0 =*/24).int32(message.edition); + if (message.overridableFeatures != null && Object.hasOwnProperty.call(message, "overridableFeatures")) + $root.google.protobuf.FeatureSet.encode(message.overridableFeatures, writer.uint32(/* id 4, wireType 2 =*/34).fork(), q + 1).ldelim(); + if (message.fixedFeatures != null && Object.hasOwnProperty.call(message, "fixedFeatures")) + $root.google.protobuf.FeatureSet.encode(message.fixedFeatures, writer.uint32(/* id 5, wireType 2 =*/42).fork(), q + 1).ldelim(); return writer; }; @@ -160337,7 +177021,7 @@ * @returns {$protobuf.Writer} Writer */ FeatureSetEditionDefault.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -160351,9 +177035,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FeatureSetEditionDefault.decode = function decode(reader, length, error) { + FeatureSetEditionDefault.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault(); while (reader.pos < end) { var tag = reader.uint32(); @@ -160364,12 +177052,16 @@ message.edition = reader.int32(); break; } - case 2: { - message.features = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32()); + case 4: { + message.overridableFeatures = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32(), undefined, long + 1); + break; + } + case 5: { + message.fixedFeatures = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -160400,14 +177092,19 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FeatureSetEditionDefault.verify = function verify(message) { + FeatureSetEditionDefault.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.edition != null && message.hasOwnProperty("edition")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.edition != null && Object.hasOwnProperty.call(message, "edition")) switch (message.edition) { default: return "edition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -160420,10 +177117,15 @@ case 2147483647: break; } - if (message.features != null && message.hasOwnProperty("features")) { - var error = $root.google.protobuf.FeatureSet.verify(message.features); + if (message.overridableFeatures != null && Object.hasOwnProperty.call(message, "overridableFeatures")) { + var error = $root.google.protobuf.FeatureSet.verify(message.overridableFeatures, long + 1); if (error) - return "features." + error; + return "overridableFeatures." + error; + } + if (message.fixedFeatures != null && Object.hasOwnProperty.call(message, "fixedFeatures")) { + var error = $root.google.protobuf.FeatureSet.verify(message.fixedFeatures, long + 1); + if (error) + return "fixedFeatures." + error; } return null; }; @@ -160436,9 +177138,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault} FeatureSetEditionDefault */ - FeatureSetEditionDefault.fromObject = function fromObject(object) { + FeatureSetEditionDefault.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault(); switch (object.edition) { default: @@ -160451,6 +177159,10 @@ case 0: message.edition = 0; break; + case "EDITION_LEGACY": + case 900: + message.edition = 900; + break; case "EDITION_PROTO2": case 998: message.edition = 998; @@ -160492,10 +177204,15 @@ message.edition = 2147483647; break; } - if (object.features != null) { - if (typeof object.features !== "object") - throw TypeError(".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.features: object expected"); - message.features = $root.google.protobuf.FeatureSet.fromObject(object.features); + if (object.overridableFeatures != null) { + if (!$util.isObject(object.overridableFeatures)) + throw TypeError(".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.overridableFeatures: object expected"); + message.overridableFeatures = $root.google.protobuf.FeatureSet.fromObject(object.overridableFeatures, long + 1); + } + if (object.fixedFeatures != null) { + if (!$util.isObject(object.fixedFeatures)) + throw TypeError(".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.fixedFeatures: object expected"); + message.fixedFeatures = $root.google.protobuf.FeatureSet.fromObject(object.fixedFeatures, long + 1); } return message; }; @@ -160509,18 +177226,25 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FeatureSetEditionDefault.toObject = function toObject(message, options) { + FeatureSetEditionDefault.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { - object.features = null; object.edition = options.enums === String ? "EDITION_UNKNOWN" : 0; + object.overridableFeatures = null; + object.fixedFeatures = null; } - if (message.features != null && message.hasOwnProperty("features")) - object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options); - if (message.edition != null && message.hasOwnProperty("edition")) + if (message.edition != null && Object.hasOwnProperty.call(message, "edition")) object.edition = options.enums === String ? $root.google.protobuf.Edition[message.edition] === undefined ? message.edition : $root.google.protobuf.Edition[message.edition] : message.edition; + if (message.overridableFeatures != null && Object.hasOwnProperty.call(message, "overridableFeatures")) + object.overridableFeatures = $root.google.protobuf.FeatureSet.toObject(message.overridableFeatures, options, q + 1); + if (message.fixedFeatures != null && Object.hasOwnProperty.call(message, "fixedFeatures")) + object.fixedFeatures = $root.google.protobuf.FeatureSet.toObject(message.fixedFeatures, options, q + 1); return object; }; @@ -160577,7 +177301,7 @@ this.location = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -160610,12 +177334,16 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SourceCodeInfo.encode = function encode(message, writer) { + SourceCodeInfo.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.location != null && message.location.length) for (var i = 0; i < message.location.length; ++i) - $root.google.protobuf.SourceCodeInfo.Location.encode(message.location[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.SourceCodeInfo.Location.encode(message.location[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -160629,7 +177357,7 @@ * @returns {$protobuf.Writer} Writer */ SourceCodeInfo.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -160643,9 +177371,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SourceCodeInfo.decode = function decode(reader, length, error) { + SourceCodeInfo.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.SourceCodeInfo(); while (reader.pos < end) { var tag = reader.uint32(); @@ -160655,11 +177387,11 @@ case 1: { if (!(message.location && message.location.length)) message.location = []; - message.location.push($root.google.protobuf.SourceCodeInfo.Location.decode(reader, reader.uint32())); + message.location.push($root.google.protobuf.SourceCodeInfo.Location.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -160690,14 +177422,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SourceCodeInfo.verify = function verify(message) { + SourceCodeInfo.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.location != null && message.hasOwnProperty("location")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.location != null && Object.hasOwnProperty.call(message, "location")) { if (!Array.isArray(message.location)) return "location: array expected"; for (var i = 0; i < message.location.length; ++i) { - var error = $root.google.protobuf.SourceCodeInfo.Location.verify(message.location[i]); + var error = $root.google.protobuf.SourceCodeInfo.Location.verify(message.location[i], long + 1); if (error) return "location." + error; } @@ -160713,18 +177449,24 @@ * @param {Object.} object Plain object * @returns {google.protobuf.SourceCodeInfo} SourceCodeInfo */ - SourceCodeInfo.fromObject = function fromObject(object) { + SourceCodeInfo.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.SourceCodeInfo) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.SourceCodeInfo: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.SourceCodeInfo(); if (object.location) { if (!Array.isArray(object.location)) throw TypeError(".google.protobuf.SourceCodeInfo.location: array expected"); message.location = []; for (var i = 0; i < object.location.length; ++i) { - if (typeof object.location[i] !== "object") + if (!$util.isObject(object.location[i])) throw TypeError(".google.protobuf.SourceCodeInfo.location: object expected"); - message.location[i] = $root.google.protobuf.SourceCodeInfo.Location.fromObject(object.location[i]); + message.location[i] = $root.google.protobuf.SourceCodeInfo.Location.fromObject(object.location[i], long + 1); } } return message; @@ -160739,16 +177481,20 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SourceCodeInfo.toObject = function toObject(message, options) { + SourceCodeInfo.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.location = []; if (message.location && message.location.length) { object.location = []; for (var j = 0; j < message.location.length; ++j) - object.location[j] = $root.google.protobuf.SourceCodeInfo.Location.toObject(message.location[j], options); + object.location[j] = $root.google.protobuf.SourceCodeInfo.Location.toObject(message.location[j], options, q + 1); } return object; }; @@ -160806,7 +177552,7 @@ this.leadingDetachedComments = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -160871,9 +177617,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Location.encode = function encode(message, writer) { + Location.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.path != null && message.path.length) { writer.uint32(/* id 1, wireType 2 =*/10).fork(); for (var i = 0; i < message.path.length; ++i) @@ -160906,7 +177656,7 @@ * @returns {$protobuf.Writer} Writer */ Location.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -160920,9 +177670,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Location.decode = function decode(reader, length, error) { + Location.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.SourceCodeInfo.Location(); while (reader.pos < end) { var tag = reader.uint32(); @@ -160966,7 +177720,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -160997,30 +177751,34 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Location.verify = function verify(message) { + Location.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.path != null && message.hasOwnProperty("path")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.path != null && Object.hasOwnProperty.call(message, "path")) { if (!Array.isArray(message.path)) return "path: array expected"; for (var i = 0; i < message.path.length; ++i) if (!$util.isInteger(message.path[i])) return "path: integer[] expected"; } - if (message.span != null && message.hasOwnProperty("span")) { + if (message.span != null && Object.hasOwnProperty.call(message, "span")) { if (!Array.isArray(message.span)) return "span: array expected"; for (var i = 0; i < message.span.length; ++i) if (!$util.isInteger(message.span[i])) return "span: integer[] expected"; } - if (message.leadingComments != null && message.hasOwnProperty("leadingComments")) + if (message.leadingComments != null && Object.hasOwnProperty.call(message, "leadingComments")) if (!$util.isString(message.leadingComments)) return "leadingComments: string expected"; - if (message.trailingComments != null && message.hasOwnProperty("trailingComments")) + if (message.trailingComments != null && Object.hasOwnProperty.call(message, "trailingComments")) if (!$util.isString(message.trailingComments)) return "trailingComments: string expected"; - if (message.leadingDetachedComments != null && message.hasOwnProperty("leadingDetachedComments")) { + if (message.leadingDetachedComments != null && Object.hasOwnProperty.call(message, "leadingDetachedComments")) { if (!Array.isArray(message.leadingDetachedComments)) return "leadingDetachedComments: array expected"; for (var i = 0; i < message.leadingDetachedComments.length; ++i) @@ -161038,9 +177796,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.SourceCodeInfo.Location} Location */ - Location.fromObject = function fromObject(object) { + Location.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.SourceCodeInfo.Location) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.SourceCodeInfo.Location: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.SourceCodeInfo.Location(); if (object.path) { if (!Array.isArray(object.path)) @@ -161079,9 +177843,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Location.toObject = function toObject(message, options) { + Location.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) { object.path = []; @@ -161102,9 +177870,9 @@ for (var j = 0; j < message.span.length; ++j) object.span[j] = message.span[j]; } - if (message.leadingComments != null && message.hasOwnProperty("leadingComments")) + if (message.leadingComments != null && Object.hasOwnProperty.call(message, "leadingComments")) object.leadingComments = message.leadingComments; - if (message.trailingComments != null && message.hasOwnProperty("trailingComments")) + if (message.trailingComments != null && Object.hasOwnProperty.call(message, "trailingComments")) object.trailingComments = message.trailingComments; if (message.leadingDetachedComments && message.leadingDetachedComments.length) { object.leadingDetachedComments = []; @@ -161167,7 +177935,7 @@ this.annotation = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -161200,12 +177968,16 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GeneratedCodeInfo.encode = function encode(message, writer) { + GeneratedCodeInfo.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.annotation != null && message.annotation.length) for (var i = 0; i < message.annotation.length; ++i) - $root.google.protobuf.GeneratedCodeInfo.Annotation.encode(message.annotation[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.GeneratedCodeInfo.Annotation.encode(message.annotation[i], writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); return writer; }; @@ -161219,7 +177991,7 @@ * @returns {$protobuf.Writer} Writer */ GeneratedCodeInfo.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -161233,9 +178005,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GeneratedCodeInfo.decode = function decode(reader, length, error) { + GeneratedCodeInfo.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.GeneratedCodeInfo(); while (reader.pos < end) { var tag = reader.uint32(); @@ -161245,11 +178021,11 @@ case 1: { if (!(message.annotation && message.annotation.length)) message.annotation = []; - message.annotation.push($root.google.protobuf.GeneratedCodeInfo.Annotation.decode(reader, reader.uint32())); + message.annotation.push($root.google.protobuf.GeneratedCodeInfo.Annotation.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -161280,14 +178056,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GeneratedCodeInfo.verify = function verify(message) { + GeneratedCodeInfo.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.annotation != null && message.hasOwnProperty("annotation")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.annotation != null && Object.hasOwnProperty.call(message, "annotation")) { if (!Array.isArray(message.annotation)) return "annotation: array expected"; for (var i = 0; i < message.annotation.length; ++i) { - var error = $root.google.protobuf.GeneratedCodeInfo.Annotation.verify(message.annotation[i]); + var error = $root.google.protobuf.GeneratedCodeInfo.Annotation.verify(message.annotation[i], long + 1); if (error) return "annotation." + error; } @@ -161303,18 +178083,24 @@ * @param {Object.} object Plain object * @returns {google.protobuf.GeneratedCodeInfo} GeneratedCodeInfo */ - GeneratedCodeInfo.fromObject = function fromObject(object) { + GeneratedCodeInfo.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.GeneratedCodeInfo) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.GeneratedCodeInfo: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.GeneratedCodeInfo(); if (object.annotation) { if (!Array.isArray(object.annotation)) throw TypeError(".google.protobuf.GeneratedCodeInfo.annotation: array expected"); message.annotation = []; for (var i = 0; i < object.annotation.length; ++i) { - if (typeof object.annotation[i] !== "object") + if (!$util.isObject(object.annotation[i])) throw TypeError(".google.protobuf.GeneratedCodeInfo.annotation: object expected"); - message.annotation[i] = $root.google.protobuf.GeneratedCodeInfo.Annotation.fromObject(object.annotation[i]); + message.annotation[i] = $root.google.protobuf.GeneratedCodeInfo.Annotation.fromObject(object.annotation[i], long + 1); } } return message; @@ -161329,16 +178115,20 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GeneratedCodeInfo.toObject = function toObject(message, options) { + GeneratedCodeInfo.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.annotation = []; if (message.annotation && message.annotation.length) { object.annotation = []; for (var j = 0; j < message.annotation.length; ++j) - object.annotation[j] = $root.google.protobuf.GeneratedCodeInfo.Annotation.toObject(message.annotation[j], options); + object.annotation[j] = $root.google.protobuf.GeneratedCodeInfo.Annotation.toObject(message.annotation[j], options, q + 1); } return object; }; @@ -161394,7 +178184,7 @@ this.path = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -161459,9 +178249,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Annotation.encode = function encode(message, writer) { + Annotation.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.path != null && message.path.length) { writer.uint32(/* id 1, wireType 2 =*/10).fork(); for (var i = 0; i < message.path.length; ++i) @@ -161489,7 +178283,7 @@ * @returns {$protobuf.Writer} Writer */ Annotation.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -161503,9 +178297,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Annotation.decode = function decode(reader, length, error) { + Annotation.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.GeneratedCodeInfo.Annotation(); while (reader.pos < end) { var tag = reader.uint32(); @@ -161540,7 +178338,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -161571,26 +178369,30 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Annotation.verify = function verify(message) { + Annotation.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.path != null && message.hasOwnProperty("path")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.path != null && Object.hasOwnProperty.call(message, "path")) { if (!Array.isArray(message.path)) return "path: array expected"; for (var i = 0; i < message.path.length; ++i) if (!$util.isInteger(message.path[i])) return "path: integer[] expected"; } - if (message.sourceFile != null && message.hasOwnProperty("sourceFile")) + if (message.sourceFile != null && Object.hasOwnProperty.call(message, "sourceFile")) if (!$util.isString(message.sourceFile)) return "sourceFile: string expected"; - if (message.begin != null && message.hasOwnProperty("begin")) + if (message.begin != null && Object.hasOwnProperty.call(message, "begin")) if (!$util.isInteger(message.begin)) return "begin: integer expected"; - if (message.end != null && message.hasOwnProperty("end")) + if (message.end != null && Object.hasOwnProperty.call(message, "end")) if (!$util.isInteger(message.end)) return "end: integer expected"; - if (message.semantic != null && message.hasOwnProperty("semantic")) + if (message.semantic != null && Object.hasOwnProperty.call(message, "semantic")) switch (message.semantic) { default: return "semantic: enum value expected"; @@ -161610,9 +178412,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.GeneratedCodeInfo.Annotation} Annotation */ - Annotation.fromObject = function fromObject(object) { + Annotation.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.GeneratedCodeInfo.Annotation) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.GeneratedCodeInfo.Annotation: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.GeneratedCodeInfo.Annotation(); if (object.path) { if (!Array.isArray(object.path)) @@ -161659,9 +178467,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Annotation.toObject = function toObject(message, options) { + Annotation.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.path = []; @@ -161676,13 +178488,13 @@ for (var j = 0; j < message.path.length; ++j) object.path[j] = message.path[j]; } - if (message.sourceFile != null && message.hasOwnProperty("sourceFile")) + if (message.sourceFile != null && Object.hasOwnProperty.call(message, "sourceFile")) object.sourceFile = message.sourceFile; - if (message.begin != null && message.hasOwnProperty("begin")) + if (message.begin != null && Object.hasOwnProperty.call(message, "begin")) object.begin = message.begin; - if (message.end != null && message.hasOwnProperty("end")) + if (message.end != null && Object.hasOwnProperty.call(message, "end")) object.end = message.end; - if (message.semantic != null && message.hasOwnProperty("semantic")) + if (message.semantic != null && Object.hasOwnProperty.call(message, "semantic")) object.semantic = options.enums === String ? $root.google.protobuf.GeneratedCodeInfo.Annotation.Semantic[message.semantic] === undefined ? message.semantic : $root.google.protobuf.GeneratedCodeInfo.Annotation.Semantic[message.semantic] : message.semantic; return object; }; @@ -161735,6 +178547,22 @@ return GeneratedCodeInfo; })(); + /** + * SymbolVisibility enum. + * @name google.protobuf.SymbolVisibility + * @enum {number} + * @property {number} VISIBILITY_UNSET=0 VISIBILITY_UNSET value + * @property {number} VISIBILITY_LOCAL=1 VISIBILITY_LOCAL value + * @property {number} VISIBILITY_EXPORT=2 VISIBILITY_EXPORT value + */ + protobuf.SymbolVisibility = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "VISIBILITY_UNSET"] = 0; + values[valuesById[1] = "VISIBILITY_LOCAL"] = 1; + values[valuesById[2] = "VISIBILITY_EXPORT"] = 2; + return values; + })(); + protobuf.Duration = (function() { /** @@ -161756,7 +178584,7 @@ function Duration(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -161797,9 +178625,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Duration.encode = function encode(message, writer) { + Duration.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.seconds != null && Object.hasOwnProperty.call(message, "seconds")) writer.uint32(/* id 1, wireType 0 =*/8).int64(message.seconds); if (message.nanos != null && Object.hasOwnProperty.call(message, "nanos")) @@ -161817,7 +178649,7 @@ * @returns {$protobuf.Writer} Writer */ Duration.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -161831,9 +178663,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Duration.decode = function decode(reader, length, error) { + Duration.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Duration(); while (reader.pos < end) { var tag = reader.uint32(); @@ -161849,7 +178685,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -161880,13 +178716,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Duration.verify = function verify(message) { + Duration.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.seconds != null && message.hasOwnProperty("seconds")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.seconds != null && Object.hasOwnProperty.call(message, "seconds")) if (!$util.isInteger(message.seconds) && !(message.seconds && $util.isInteger(message.seconds.low) && $util.isInteger(message.seconds.high))) return "seconds: integer|Long expected"; - if (message.nanos != null && message.hasOwnProperty("nanos")) + if (message.nanos != null && Object.hasOwnProperty.call(message, "nanos")) if (!$util.isInteger(message.nanos)) return "nanos: integer expected"; return null; @@ -161900,13 +178740,19 @@ * @param {Object.} object Plain object * @returns {google.protobuf.Duration} Duration */ - Duration.fromObject = function fromObject(object) { + Duration.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.Duration) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.Duration: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.Duration(); if (object.seconds != null) if ($util.Long) - (message.seconds = $util.Long.fromValue(object.seconds)).unsigned = false; + message.seconds = $util.Long.fromValue(object.seconds, false); else if (typeof object.seconds === "string") message.seconds = parseInt(object.seconds, 10); else if (typeof object.seconds === "number") @@ -161927,24 +178773,30 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Duration.toObject = function toObject(message, options) { + Duration.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { if ($util.Long) { var long = new $util.Long(0, 0, false); - object.seconds = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.seconds = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.seconds = options.longs === String ? "0" : 0; + object.seconds = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.nanos = 0; } - if (message.seconds != null && message.hasOwnProperty("seconds")) - if (typeof message.seconds === "number") + if (message.seconds != null && Object.hasOwnProperty.call(message, "seconds")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.seconds = typeof message.seconds === "number" ? BigInt(message.seconds) : $util.Long.fromBits(message.seconds.low >>> 0, message.seconds.high >>> 0, false).toBigInt(); + else if (typeof message.seconds === "number") object.seconds = options.longs === String ? String(message.seconds) : message.seconds; else object.seconds = options.longs === String ? $util.Long.prototype.toString.call(message.seconds) : options.longs === Number ? new $util.LongBits(message.seconds.low >>> 0, message.seconds.high >>> 0).toNumber() : message.seconds; - if (message.nanos != null && message.hasOwnProperty("nanos")) + if (message.nanos != null && Object.hasOwnProperty.call(message, "nanos")) object.nanos = message.nanos; return object; }; @@ -161999,7 +178851,7 @@ function Timestamp(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -162040,9 +178892,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Timestamp.encode = function encode(message, writer) { + Timestamp.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.seconds != null && Object.hasOwnProperty.call(message, "seconds")) writer.uint32(/* id 1, wireType 0 =*/8).int64(message.seconds); if (message.nanos != null && Object.hasOwnProperty.call(message, "nanos")) @@ -162060,7 +178916,7 @@ * @returns {$protobuf.Writer} Writer */ Timestamp.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -162074,9 +178930,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Timestamp.decode = function decode(reader, length, error) { + Timestamp.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Timestamp(); while (reader.pos < end) { var tag = reader.uint32(); @@ -162092,7 +178952,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -162123,13 +178983,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Timestamp.verify = function verify(message) { + Timestamp.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.seconds != null && message.hasOwnProperty("seconds")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.seconds != null && Object.hasOwnProperty.call(message, "seconds")) if (!$util.isInteger(message.seconds) && !(message.seconds && $util.isInteger(message.seconds.low) && $util.isInteger(message.seconds.high))) return "seconds: integer|Long expected"; - if (message.nanos != null && message.hasOwnProperty("nanos")) + if (message.nanos != null && Object.hasOwnProperty.call(message, "nanos")) if (!$util.isInteger(message.nanos)) return "nanos: integer expected"; return null; @@ -162143,13 +179007,19 @@ * @param {Object.} object Plain object * @returns {google.protobuf.Timestamp} Timestamp */ - Timestamp.fromObject = function fromObject(object) { + Timestamp.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.Timestamp) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.Timestamp: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.Timestamp(); if (object.seconds != null) if ($util.Long) - (message.seconds = $util.Long.fromValue(object.seconds)).unsigned = false; + message.seconds = $util.Long.fromValue(object.seconds, false); else if (typeof object.seconds === "string") message.seconds = parseInt(object.seconds, 10); else if (typeof object.seconds === "number") @@ -162170,24 +179040,30 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Timestamp.toObject = function toObject(message, options) { + Timestamp.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { if ($util.Long) { var long = new $util.Long(0, 0, false); - object.seconds = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.seconds = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.seconds = options.longs === String ? "0" : 0; + object.seconds = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; object.nanos = 0; } - if (message.seconds != null && message.hasOwnProperty("seconds")) - if (typeof message.seconds === "number") + if (message.seconds != null && Object.hasOwnProperty.call(message, "seconds")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.seconds = typeof message.seconds === "number" ? BigInt(message.seconds) : $util.Long.fromBits(message.seconds.low >>> 0, message.seconds.high >>> 0, false).toBigInt(); + else if (typeof message.seconds === "number") object.seconds = options.longs === String ? String(message.seconds) : message.seconds; else object.seconds = options.longs === String ? $util.Long.prototype.toString.call(message.seconds) : options.longs === Number ? new $util.LongBits(message.seconds.low >>> 0, message.seconds.high >>> 0).toNumber() : message.seconds; - if (message.nanos != null && message.hasOwnProperty("nanos")) + if (message.nanos != null && Object.hasOwnProperty.call(message, "nanos")) object.nanos = message.nanos; return object; }; @@ -162241,7 +179117,7 @@ function DoubleValue(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -162274,9 +179150,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DoubleValue.encode = function encode(message, writer) { + DoubleValue.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.value != null && Object.hasOwnProperty.call(message, "value")) writer.uint32(/* id 1, wireType 1 =*/9).double(message.value); return writer; @@ -162292,7 +179172,7 @@ * @returns {$protobuf.Writer} Writer */ DoubleValue.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -162306,9 +179186,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DoubleValue.decode = function decode(reader, length, error) { + DoubleValue.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.DoubleValue(); while (reader.pos < end) { var tag = reader.uint32(); @@ -162320,7 +179204,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -162351,10 +179235,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DoubleValue.verify = function verify(message) { + DoubleValue.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (typeof message.value !== "number") return "value: number expected"; return null; @@ -162368,9 +179256,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.DoubleValue} DoubleValue */ - DoubleValue.fromObject = function fromObject(object) { + DoubleValue.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.DoubleValue) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.DoubleValue: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.DoubleValue(); if (object.value != null) message.value = Number(object.value); @@ -162386,13 +179280,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DoubleValue.toObject = function toObject(message, options) { + DoubleValue.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.value = 0; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = options.json && !isFinite(message.value) ? String(message.value) : message.value; return object; }; @@ -162446,7 +179344,7 @@ function FloatValue(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -162479,9 +179377,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FloatValue.encode = function encode(message, writer) { + FloatValue.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.value != null && Object.hasOwnProperty.call(message, "value")) writer.uint32(/* id 1, wireType 5 =*/13).float(message.value); return writer; @@ -162497,7 +179399,7 @@ * @returns {$protobuf.Writer} Writer */ FloatValue.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -162511,9 +179413,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FloatValue.decode = function decode(reader, length, error) { + FloatValue.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FloatValue(); while (reader.pos < end) { var tag = reader.uint32(); @@ -162525,7 +179431,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -162556,10 +179462,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FloatValue.verify = function verify(message) { + FloatValue.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (typeof message.value !== "number") return "value: number expected"; return null; @@ -162573,9 +179483,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.FloatValue} FloatValue */ - FloatValue.fromObject = function fromObject(object) { + FloatValue.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.FloatValue) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.FloatValue: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.FloatValue(); if (object.value != null) message.value = Number(object.value); @@ -162591,13 +179507,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FloatValue.toObject = function toObject(message, options) { + FloatValue.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.value = 0; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = options.json && !isFinite(message.value) ? String(message.value) : message.value; return object; }; @@ -162651,7 +179571,7 @@ function Int64Value(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -162684,9 +179604,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Int64Value.encode = function encode(message, writer) { + Int64Value.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.value != null && Object.hasOwnProperty.call(message, "value")) writer.uint32(/* id 1, wireType 0 =*/8).int64(message.value); return writer; @@ -162702,7 +179626,7 @@ * @returns {$protobuf.Writer} Writer */ Int64Value.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -162716,9 +179640,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Int64Value.decode = function decode(reader, length, error) { + Int64Value.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Int64Value(); while (reader.pos < end) { var tag = reader.uint32(); @@ -162730,7 +179658,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -162761,10 +179689,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Int64Value.verify = function verify(message) { + Int64Value.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!$util.isInteger(message.value) && !(message.value && $util.isInteger(message.value.low) && $util.isInteger(message.value.high))) return "value: integer|Long expected"; return null; @@ -162778,13 +179710,19 @@ * @param {Object.} object Plain object * @returns {google.protobuf.Int64Value} Int64Value */ - Int64Value.fromObject = function fromObject(object) { + Int64Value.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.Int64Value) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.Int64Value: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.Int64Value(); if (object.value != null) if ($util.Long) - (message.value = $util.Long.fromValue(object.value)).unsigned = false; + message.value = $util.Long.fromValue(object.value, false); else if (typeof object.value === "string") message.value = parseInt(object.value, 10); else if (typeof object.value === "number") @@ -162803,18 +179741,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Int64Value.toObject = function toObject(message, options) { + Int64Value.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) if ($util.Long) { var long = new $util.Long(0, 0, false); - object.value = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.value = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.value = options.longs === String ? "0" : 0; - if (message.value != null && message.hasOwnProperty("value")) - if (typeof message.value === "number") + object.value = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.value = typeof message.value === "number" ? BigInt(message.value) : $util.Long.fromBits(message.value.low >>> 0, message.value.high >>> 0, false).toBigInt(); + else if (typeof message.value === "number") object.value = options.longs === String ? String(message.value) : message.value; else object.value = options.longs === String ? $util.Long.prototype.toString.call(message.value) : options.longs === Number ? new $util.LongBits(message.value.low >>> 0, message.value.high >>> 0).toNumber() : message.value; @@ -162870,7 +179814,7 @@ function UInt64Value(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -162903,9 +179847,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UInt64Value.encode = function encode(message, writer) { + UInt64Value.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.value != null && Object.hasOwnProperty.call(message, "value")) writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.value); return writer; @@ -162921,7 +179869,7 @@ * @returns {$protobuf.Writer} Writer */ UInt64Value.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -162935,9 +179883,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UInt64Value.decode = function decode(reader, length, error) { + UInt64Value.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.UInt64Value(); while (reader.pos < end) { var tag = reader.uint32(); @@ -162949,7 +179901,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -162980,10 +179932,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UInt64Value.verify = function verify(message) { + UInt64Value.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!$util.isInteger(message.value) && !(message.value && $util.isInteger(message.value.low) && $util.isInteger(message.value.high))) return "value: integer|Long expected"; return null; @@ -162997,13 +179953,19 @@ * @param {Object.} object Plain object * @returns {google.protobuf.UInt64Value} UInt64Value */ - UInt64Value.fromObject = function fromObject(object) { + UInt64Value.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.UInt64Value) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.UInt64Value: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.UInt64Value(); if (object.value != null) if ($util.Long) - (message.value = $util.Long.fromValue(object.value)).unsigned = true; + message.value = $util.Long.fromValue(object.value, true); else if (typeof object.value === "string") message.value = parseInt(object.value, 10); else if (typeof object.value === "number") @@ -163022,18 +179984,24 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - UInt64Value.toObject = function toObject(message, options) { + UInt64Value.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) if ($util.Long) { var long = new $util.Long(0, 0, true); - object.value = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.value = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : typeof BigInt !== "undefined" && options.longs === BigInt ? long.toBigInt() : long; } else - object.value = options.longs === String ? "0" : 0; - if (message.value != null && message.hasOwnProperty("value")) - if (typeof message.value === "number") + object.value = options.longs === String ? "0" : typeof BigInt !== "undefined" && options.longs === BigInt ? BigInt("0") : 0; + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + if (typeof BigInt !== "undefined" && options.longs === BigInt) + object.value = typeof message.value === "number" ? BigInt(message.value) : $util.Long.fromBits(message.value.low >>> 0, message.value.high >>> 0, true).toBigInt(); + else if (typeof message.value === "number") object.value = options.longs === String ? String(message.value) : message.value; else object.value = options.longs === String ? $util.Long.prototype.toString.call(message.value) : options.longs === Number ? new $util.LongBits(message.value.low >>> 0, message.value.high >>> 0).toNumber(true) : message.value; @@ -163089,7 +180057,7 @@ function Int32Value(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -163122,9 +180090,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Int32Value.encode = function encode(message, writer) { + Int32Value.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.value != null && Object.hasOwnProperty.call(message, "value")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.value); return writer; @@ -163140,7 +180112,7 @@ * @returns {$protobuf.Writer} Writer */ Int32Value.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -163154,9 +180126,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Int32Value.decode = function decode(reader, length, error) { + Int32Value.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Int32Value(); while (reader.pos < end) { var tag = reader.uint32(); @@ -163168,7 +180144,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -163199,10 +180175,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Int32Value.verify = function verify(message) { + Int32Value.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!$util.isInteger(message.value)) return "value: integer expected"; return null; @@ -163216,9 +180196,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.Int32Value} Int32Value */ - Int32Value.fromObject = function fromObject(object) { + Int32Value.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.Int32Value) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.Int32Value: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.Int32Value(); if (object.value != null) message.value = object.value | 0; @@ -163234,13 +180220,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Int32Value.toObject = function toObject(message, options) { + Int32Value.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.value = 0; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = message.value; return object; }; @@ -163294,7 +180284,7 @@ function UInt32Value(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -163327,9 +180317,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UInt32Value.encode = function encode(message, writer) { + UInt32Value.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.value != null && Object.hasOwnProperty.call(message, "value")) writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.value); return writer; @@ -163345,7 +180339,7 @@ * @returns {$protobuf.Writer} Writer */ UInt32Value.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -163359,9 +180353,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UInt32Value.decode = function decode(reader, length, error) { + UInt32Value.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.UInt32Value(); while (reader.pos < end) { var tag = reader.uint32(); @@ -163373,7 +180371,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -163404,10 +180402,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UInt32Value.verify = function verify(message) { + UInt32Value.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!$util.isInteger(message.value)) return "value: integer expected"; return null; @@ -163421,9 +180423,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.UInt32Value} UInt32Value */ - UInt32Value.fromObject = function fromObject(object) { + UInt32Value.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.UInt32Value) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.UInt32Value: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.UInt32Value(); if (object.value != null) message.value = object.value >>> 0; @@ -163439,13 +180447,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - UInt32Value.toObject = function toObject(message, options) { + UInt32Value.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.value = 0; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = message.value; return object; }; @@ -163499,7 +180511,7 @@ function BoolValue(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -163532,9 +180544,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BoolValue.encode = function encode(message, writer) { + BoolValue.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.value != null && Object.hasOwnProperty.call(message, "value")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.value); return writer; @@ -163550,7 +180566,7 @@ * @returns {$protobuf.Writer} Writer */ BoolValue.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -163564,9 +180580,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BoolValue.decode = function decode(reader, length, error) { + BoolValue.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.BoolValue(); while (reader.pos < end) { var tag = reader.uint32(); @@ -163578,7 +180598,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -163609,10 +180629,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BoolValue.verify = function verify(message) { + BoolValue.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (typeof message.value !== "boolean") return "value: boolean expected"; return null; @@ -163626,9 +180650,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.BoolValue} BoolValue */ - BoolValue.fromObject = function fromObject(object) { + BoolValue.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.BoolValue) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.BoolValue: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.BoolValue(); if (object.value != null) message.value = Boolean(object.value); @@ -163644,13 +180674,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BoolValue.toObject = function toObject(message, options) { + BoolValue.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.value = false; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = message.value; return object; }; @@ -163704,7 +180738,7 @@ function StringValue(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -163737,9 +180771,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - StringValue.encode = function encode(message, writer) { + StringValue.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.value != null && Object.hasOwnProperty.call(message, "value")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.value); return writer; @@ -163755,7 +180793,7 @@ * @returns {$protobuf.Writer} Writer */ StringValue.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -163769,9 +180807,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - StringValue.decode = function decode(reader, length, error) { + StringValue.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.StringValue(); while (reader.pos < end) { var tag = reader.uint32(); @@ -163783,7 +180825,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -163814,10 +180856,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - StringValue.verify = function verify(message) { + StringValue.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!$util.isString(message.value)) return "value: string expected"; return null; @@ -163831,9 +180877,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.StringValue} StringValue */ - StringValue.fromObject = function fromObject(object) { + StringValue.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.StringValue) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.StringValue: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.StringValue(); if (object.value != null) message.value = String(object.value); @@ -163849,13 +180901,17 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - StringValue.toObject = function toObject(message, options) { + StringValue.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) object.value = ""; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = message.value; return object; }; @@ -163909,7 +180965,7 @@ function BytesValue(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -163942,9 +180998,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BytesValue.encode = function encode(message, writer) { + BytesValue.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.value != null && Object.hasOwnProperty.call(message, "value")) writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.value); return writer; @@ -163960,7 +181020,7 @@ * @returns {$protobuf.Writer} Writer */ BytesValue.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -163974,9 +181034,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BytesValue.decode = function decode(reader, length, error) { + BytesValue.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.BytesValue(); while (reader.pos < end) { var tag = reader.uint32(); @@ -163988,7 +181052,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -164019,10 +181083,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BytesValue.verify = function verify(message) { + BytesValue.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!(message.value && typeof message.value.length === "number" || $util.isString(message.value))) return "value: buffer expected"; return null; @@ -164036,9 +181104,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.BytesValue} BytesValue */ - BytesValue.fromObject = function fromObject(object) { + BytesValue.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.BytesValue) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.BytesValue: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.BytesValue(); if (object.value != null) if (typeof object.value === "string") @@ -164057,9 +181131,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BytesValue.toObject = function toObject(message, options) { + BytesValue.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) if (options.bytes === String) @@ -164069,7 +181147,7 @@ if (options.bytes !== Array) object.value = $util.newBuffer(object.value); } - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = options.bytes === String ? $util.base64.encode(message.value, 0, message.value.length) : options.bytes === Array ? Array.prototype.slice.call(message.value) : message.value; return object; }; @@ -164124,7 +181202,7 @@ function Any(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -164165,9 +181243,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Any.encode = function encode(message, writer) { + Any.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.type_url != null && Object.hasOwnProperty.call(message, "type_url")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.type_url); if (message.value != null && Object.hasOwnProperty.call(message, "value")) @@ -164185,7 +181267,7 @@ * @returns {$protobuf.Writer} Writer */ Any.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -164199,9 +181281,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Any.decode = function decode(reader, length, error) { + Any.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Any(); while (reader.pos < end) { var tag = reader.uint32(); @@ -164217,7 +181303,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -164248,13 +181334,17 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Any.verify = function verify(message) { + Any.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.type_url != null && message.hasOwnProperty("type_url")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.type_url != null && Object.hasOwnProperty.call(message, "type_url")) if (!$util.isString(message.type_url)) return "type_url: string expected"; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) if (!(message.value && typeof message.value.length === "number" || $util.isString(message.value))) return "value: buffer expected"; return null; @@ -164268,9 +181358,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.Any} Any */ - Any.fromObject = function fromObject(object) { + Any.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.Any) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.Any: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.Any(); if (object.type_url != null) message.type_url = String(object.type_url); @@ -164291,9 +181387,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Any.toObject = function toObject(message, options) { + Any.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.type_url = ""; @@ -164305,9 +181405,9 @@ object.value = $util.newBuffer(object.value); } } - if (message.type_url != null && message.hasOwnProperty("type_url")) + if (message.type_url != null && Object.hasOwnProperty.call(message, "type_url")) object.type_url = message.type_url; - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) object.value = options.bytes === String ? $util.base64.encode(message.value, 0, message.value.length) : options.bytes === Array ? Array.prototype.slice.call(message.value) : message.value; return object; }; @@ -164362,7 +181462,7 @@ this.paths = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -164395,9 +181495,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FieldMask.encode = function encode(message, writer) { + FieldMask.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.paths != null && message.paths.length) for (var i = 0; i < message.paths.length; ++i) writer.uint32(/* id 1, wireType 2 =*/10).string(message.paths[i]); @@ -164414,7 +181518,7 @@ * @returns {$protobuf.Writer} Writer */ FieldMask.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -164428,9 +181532,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FieldMask.decode = function decode(reader, length, error) { + FieldMask.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FieldMask(); while (reader.pos < end) { var tag = reader.uint32(); @@ -164444,7 +181552,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -164475,10 +181583,14 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FieldMask.verify = function verify(message) { + FieldMask.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.paths != null && message.hasOwnProperty("paths")) { + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.paths != null && Object.hasOwnProperty.call(message, "paths")) { if (!Array.isArray(message.paths)) return "paths: array expected"; for (var i = 0; i < message.paths.length; ++i) @@ -164496,9 +181608,15 @@ * @param {Object.} object Plain object * @returns {google.protobuf.FieldMask} FieldMask */ - FieldMask.fromObject = function fromObject(object) { + FieldMask.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.FieldMask) return object; + if (!$util.isObject(object)) + throw TypeError(".google.protobuf.FieldMask: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.protobuf.FieldMask(); if (object.paths) { if (!Array.isArray(object.paths)) @@ -164519,9 +181637,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FieldMask.toObject = function toObject(message, options) { + FieldMask.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.paths = []; @@ -164581,7 +181703,7 @@ function Empty(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -164606,9 +181728,13 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Empty.encode = function encode(message, writer) { + Empty.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); return writer; }; @@ -164622,7 +181748,7 @@ * @returns {$protobuf.Writer} Writer */ Empty.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -164636,9 +181762,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Empty.decode = function decode(reader, length, error) { + Empty.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Empty(); while (reader.pos < end) { var tag = reader.uint32(); @@ -164646,7 +181776,7 @@ break; switch (tag >>> 3) { default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -164677,9 +181807,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Empty.verify = function verify(message) { + Empty.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; return null; }; @@ -164691,7 +181825,7 @@ * @param {Object.} object Plain object * @returns {google.protobuf.Empty} Empty */ - Empty.fromObject = function fromObject(object) { + Empty.fromObject = function fromObject(object, long) { if (object instanceof $root.google.protobuf.Empty) return object; return new $root.google.protobuf.Empty(); @@ -164774,7 +181908,7 @@ this.details = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -164823,16 +181957,20 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Status.encode = function encode(message, writer) { + Status.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.code != null && Object.hasOwnProperty.call(message, "code")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.code); if (message.message != null && Object.hasOwnProperty.call(message, "message")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.message); if (message.details != null && message.details.length) for (var i = 0; i < message.details.length; ++i) - $root.google.protobuf.Any.encode(message.details[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.google.protobuf.Any.encode(message.details[i], writer.uint32(/* id 3, wireType 2 =*/26).fork(), q + 1).ldelim(); return writer; }; @@ -164846,7 +181984,7 @@ * @returns {$protobuf.Writer} Writer */ Status.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -164860,9 +181998,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Status.decode = function decode(reader, length, error) { + Status.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.rpc.Status(); while (reader.pos < end) { var tag = reader.uint32(); @@ -164880,11 +182022,11 @@ case 3: { if (!(message.details && message.details.length)) message.details = []; - message.details.push($root.google.protobuf.Any.decode(reader, reader.uint32())); + message.details.push($root.google.protobuf.Any.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -164915,20 +182057,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Status.verify = function verify(message) { + Status.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.code != null && message.hasOwnProperty("code")) + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.code != null && Object.hasOwnProperty.call(message, "code")) if (!$util.isInteger(message.code)) return "code: integer expected"; - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) if (!$util.isString(message.message)) return "message: string expected"; - if (message.details != null && message.hasOwnProperty("details")) { + if (message.details != null && Object.hasOwnProperty.call(message, "details")) { if (!Array.isArray(message.details)) return "details: array expected"; for (var i = 0; i < message.details.length; ++i) { - var error = $root.google.protobuf.Any.verify(message.details[i]); + var error = $root.google.protobuf.Any.verify(message.details[i], long + 1); if (error) return "details." + error; } @@ -164944,9 +182090,15 @@ * @param {Object.} object Plain object * @returns {google.rpc.Status} Status */ - Status.fromObject = function fromObject(object) { + Status.fromObject = function fromObject(object, long) { if (object instanceof $root.google.rpc.Status) return object; + if (!$util.isObject(object)) + throw TypeError(".google.rpc.Status: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.rpc.Status(); if (object.code != null) message.code = object.code | 0; @@ -164957,9 +182109,9 @@ throw TypeError(".google.rpc.Status.details: array expected"); message.details = []; for (var i = 0; i < object.details.length; ++i) { - if (typeof object.details[i] !== "object") + if (!$util.isObject(object.details[i])) throw TypeError(".google.rpc.Status.details: object expected"); - message.details[i] = $root.google.protobuf.Any.fromObject(object.details[i]); + message.details[i] = $root.google.protobuf.Any.fromObject(object.details[i], long + 1); } } return message; @@ -164974,9 +182126,13 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Status.toObject = function toObject(message, options) { + Status.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.arrays || options.defaults) object.details = []; @@ -164984,14 +182140,14 @@ object.code = 0; object.message = ""; } - if (message.code != null && message.hasOwnProperty("code")) + if (message.code != null && Object.hasOwnProperty.call(message, "code")) object.code = message.code; - if (message.message != null && message.hasOwnProperty("message")) + if (message.message != null && Object.hasOwnProperty.call(message, "message")) object.message = message.message; if (message.details && message.details.length) { object.details = []; for (var j = 0; j < message.details.length; ++j) - object.details[j] = $root.google.protobuf.Any.toObject(message.details[j], options); + object.details[j] = $root.google.protobuf.Any.toObject(message.details[j], options, q + 1); } return object; }; @@ -165058,7 +182214,7 @@ function Interval(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -165099,13 +182255,17 @@ * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Interval.encode = function encode(message, writer) { + Interval.encode = function encode(message, writer, q) { if (!writer) writer = $Writer.create(); + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) - $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 1, wireType 2 =*/10).fork(), q + 1).ldelim(); if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) - $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 2, wireType 2 =*/18).fork(), q + 1).ldelim(); return writer; }; @@ -165119,7 +182279,7 @@ * @returns {$protobuf.Writer} Writer */ Interval.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); + return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim(); }; /** @@ -165133,9 +182293,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Interval.decode = function decode(reader, length, error) { + Interval.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.type.Interval(); while (reader.pos < end) { var tag = reader.uint32(); @@ -165143,15 +182307,15 @@ break; switch (tag >>> 3) { case 1: { - message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -165182,16 +182346,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Interval.verify = function verify(message) { + Interval.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.startTime != null && message.hasOwnProperty("startTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.startTime); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.startTime, long + 1); if (error) return "startTime." + error; } - if (message.endTime != null && message.hasOwnProperty("endTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.endTime); + if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.endTime, long + 1); if (error) return "endTime." + error; } @@ -165206,19 +182374,25 @@ * @param {Object.} object Plain object * @returns {google.type.Interval} Interval */ - Interval.fromObject = function fromObject(object) { + Interval.fromObject = function fromObject(object, long) { if (object instanceof $root.google.type.Interval) return object; + if (!$util.isObject(object)) + throw TypeError(".google.type.Interval: object expected"); + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.type.Interval(); if (object.startTime != null) { - if (typeof object.startTime !== "object") + if (!$util.isObject(object.startTime)) throw TypeError(".google.type.Interval.startTime: object expected"); - message.startTime = $root.google.protobuf.Timestamp.fromObject(object.startTime); + message.startTime = $root.google.protobuf.Timestamp.fromObject(object.startTime, long + 1); } if (object.endTime != null) { - if (typeof object.endTime !== "object") + if (!$util.isObject(object.endTime)) throw TypeError(".google.type.Interval.endTime: object expected"); - message.endTime = $root.google.protobuf.Timestamp.fromObject(object.endTime); + message.endTime = $root.google.protobuf.Timestamp.fromObject(object.endTime, long + 1); } return message; }; @@ -165232,18 +182406,22 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Interval.toObject = function toObject(message, options) { + Interval.toObject = function toObject(message, options, q) { if (!options) options = {}; + if (q === undefined) + q = 0; + if (q > $util.recursionLimit) + throw Error("max depth exceeded"); var object = {}; if (options.defaults) { object.startTime = null; object.endTime = null; } - if (message.startTime != null && message.hasOwnProperty("startTime")) - object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options); - if (message.endTime != null && message.hasOwnProperty("endTime")) - object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options); + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) + object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options, q + 1); + if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) + object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options, q + 1); return object; }; diff --git a/packages/google-cloud-sql/protos/protos.json b/packages/google-cloud-sql/protos/protos.json index bc666cfd4e7..51d5b35f01a 100644 --- a/packages/google-cloud-sql/protos/protos.json +++ b/packages/google-cloud-sql/protos/protos.json @@ -1267,6 +1267,16 @@ "oneof": [ "pscEnabled" ] + }, + "_pscAutoDnsEnabled": { + "oneof": [ + "pscAutoDnsEnabled" + ] + }, + "_pscWriteEndpointDnsEnabled": { + "oneof": [ + "pscWriteEndpointDnsEnabled" + ] } }, "fields": { @@ -1299,6 +1309,22 @@ "options": { "(google.api.field_behavior)": "OPTIONAL" } + }, + "pscAutoDnsEnabled": { + "type": "bool", + "id": 5, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "pscWriteEndpointDnsEnabled": { + "type": "bool", + "id": 6, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } } } }, @@ -1727,7 +1753,8 @@ "MANAGE_BACKUP": 50, "ENHANCED_BACKUP": 51, "REPAIR_READ_POOL": 52, - "CREATE_READ_POOL": 53 + "CREATE_READ_POOL": 53, + "PRE_CHECK_MAJOR_VERSION_UPGRADE": 54 } }, "SqlOperationStatus": { @@ -2101,6 +2128,13 @@ "proto3_optional": true } }, + "acceleratedReplicaMode": { + "type": "google.protobuf.BoolValue", + "id": 49, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, "autoUpgradeEnabled": { "type": "bool", "id": 50, @@ -2667,6 +2701,7 @@ "POSTGRES_16": 272, "POSTGRES_17": 408, "POSTGRES_18": 557, + "POSTGRES_19": 684, "SQLSERVER_2019_STANDARD": 26, "SQLSERVER_2019_ENTERPRISE": 27, "SQLSERVER_2019_EXPRESS": 28, @@ -2674,7 +2709,10 @@ "SQLSERVER_2022_STANDARD": 199, "SQLSERVER_2022_ENTERPRISE": 200, "SQLSERVER_2022_EXPRESS": 201, - "SQLSERVER_2022_WEB": 202 + "SQLSERVER_2022_WEB": 202, + "SQLSERVER_2025_STANDARD": 549, + "SQLSERVER_2025_ENTERPRISE": 550, + "SQLSERVER_2025_EXPRESS": 551 } }, "SqlPricingPlan": { @@ -5191,6 +5229,11 @@ "oneof": [ "preferredSecondaryZone" ] + }, + "_region": { + "oneof": [ + "region" + ] } }, "fields": { @@ -5246,6 +5289,29 @@ "(google.api.field_behavior)": "OPTIONAL", "proto3_optional": true } + }, + "targetInstanceSettings": { + "type": "DatabaseInstance", + "id": 11, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "targetInstanceClearSettingsFieldNames": { + "rule": "repeated", + "type": "string", + "id": 12, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "region": { + "type": "string", + "id": 13, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } } } }, @@ -6608,7 +6674,8 @@ "BILLING_ISSUE": 2, "LEGAL_ISSUE": 3, "OPERATIONAL_ISSUE": 4, - "KMS_KEY_ISSUE": 5 + "KMS_KEY_ISSUE": 5, + "PROJECT_ABUSE": 8 } }, "SqlConnectService": { @@ -7989,8 +8056,8 @@ "java_multiple_files": true, "java_outer_classname": "CloudSqlUsersProto", "java_package": "com.google.cloud.sql.v1beta4", - "(google.api.resource_definition).type": "compute.googleapis.com/Network", - "(google.api.resource_definition).pattern": "projects/{project}/global/networks/{network}" + "(google.api.resource_definition).type": "cloudsql.googleapis.com/Instance", + "(google.api.resource_definition).pattern": "projects/{project}/instances/{instance}" }, "nested": { "SqlBackupRunsService": { @@ -9624,6 +9691,18 @@ } }, "SqlInstancesPatchRequest": { + "oneofs": { + "_reconcilePscNetworking": { + "oneof": [ + "reconcilePscNetworking" + ] + }, + "_reconcilePscNetworkingForce": { + "oneof": [ + "reconcilePscNetworkingForce" + ] + } + }, "fields": { "instance": { "type": "string", @@ -9633,6 +9712,22 @@ "type": "string", "id": 2 }, + "reconcilePscNetworking": { + "type": "bool", + "id": 4, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "reconcilePscNetworkingForce": { + "type": "bool", + "id": 5, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, "body": { "type": "DatabaseInstance", "id": 100 @@ -12976,6 +13071,11 @@ "oneof": [ "preferredSecondaryZone" ] + }, + "_region": { + "oneof": [ + "region" + ] } }, "fields": { @@ -13031,6 +13131,29 @@ "(google.api.field_behavior)": "OPTIONAL", "proto3_optional": true } + }, + "targetInstanceSettings": { + "type": "DatabaseInstance", + "id": 11, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "targetInstanceClearSettingsFieldNames": { + "rule": "repeated", + "type": "string", + "id": 12, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "region": { + "type": "string", + "id": 13, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } } } }, @@ -13352,6 +13475,21 @@ "oneof": [ "pscEnabled" ] + }, + "_pscAutoDnsEnabled": { + "oneof": [ + "pscAutoDnsEnabled" + ] + }, + "_pscWriteEndpointDnsEnabled": { + "oneof": [ + "pscWriteEndpointDnsEnabled" + ] + }, + "_pscAutoConnectionPolicyEnabled": { + "oneof": [ + "pscAutoConnectionPolicyEnabled" + ] } }, "fields": { @@ -13384,9 +13522,41 @@ "options": { "(google.api.field_behavior)": "OPTIONAL" } + }, + "pscAutoDnsEnabled": { + "type": "bool", + "id": 5, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "pscWriteEndpointDnsEnabled": { + "type": "bool", + "id": 6, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "pscAutoConnectionPolicyEnabled": { + "type": "bool", + "id": 7, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } } } }, + "AutoDnsStatus": { + "values": { + "AUTO_DNS_STATUS_UNSPECIFIED": 0, + "AUTO_DNS_OK": 1, + "AUTO_DNS_FAILED": 2, + "AUTO_DNS_UNKNOWN": 3 + } + }, "PscAutoConnectionConfig": { "oneofs": { "_ipAddress": { @@ -13403,6 +13573,26 @@ "oneof": [ "consumerNetworkStatus" ] + }, + "_serviceConnectionPolicy": { + "oneof": [ + "serviceConnectionPolicy" + ] + }, + "_serviceConnectionPolicyCreationResult": { + "oneof": [ + "serviceConnectionPolicyCreationResult" + ] + }, + "_instanceAutoDnsStatus": { + "oneof": [ + "instanceAutoDnsStatus" + ] + }, + "_writeEndpointAutoDnsStatus": { + "oneof": [ + "writeEndpointAutoDnsStatus" + ] } }, "fields": { @@ -13441,6 +13631,39 @@ "options": { "proto3_optional": true } + }, + "serviceConnectionPolicy": { + "type": "string", + "id": 6, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY", + "(google.api.resource_reference).type": "compute.googleapis.com/ServiceConnectionPolicy", + "proto3_optional": true + } + }, + "serviceConnectionPolicyCreationResult": { + "type": "string", + "id": 7, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY", + "proto3_optional": true + } + }, + "instanceAutoDnsStatus": { + "type": "AutoDnsStatus", + "id": 8, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY", + "proto3_optional": true + } + }, + "writeEndpointAutoDnsStatus": { + "type": "AutoDnsStatus", + "id": 9, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY", + "proto3_optional": true + } } } }, @@ -13888,7 +14111,10 @@ "MANAGE_BACKUP": 50, "ENHANCED_BACKUP": 51, "REPAIR_READ_POOL": 52, - "CREATE_READ_POOL": 53 + "CREATE_READ_POOL": 53, + "PRE_CHECK_MAJOR_VERSION_UPGRADE": 54, + "SETUP_MIGRATION": 58, + "AGENT_SEND_MESSAGE": 59 } }, "SqlOperationStatus": { @@ -14370,6 +14596,13 @@ "proto3_optional": true } }, + "acceleratedReplicaMode": { + "type": "google.protobuf.BoolValue", + "id": 49, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, "autoUpgradeEnabled": { "type": "bool", "id": 50, @@ -14418,7 +14651,8 @@ "values": { "EDITION_UNSPECIFIED": 0, "ENTERPRISE": 2, - "ENTERPRISE_PLUS": 3 + "ENTERPRISE_PLUS": 3, + "DEVELOPER": 5 } }, "ConnectorEnforcement": { @@ -14468,6 +14702,41 @@ "oneof": [ "transactionDurationThreshold" ] + }, + "_cpuUtilizationThresholdPercent": { + "oneof": [ + "cpuUtilizationThresholdPercent" + ] + }, + "_memoryUsageThresholdPercent": { + "oneof": [ + "memoryUsageThresholdPercent" + ] + }, + "_transactionLockWaitThresholdCount": { + "oneof": [ + "transactionLockWaitThresholdCount" + ] + }, + "_semaphoreWaitThresholdCount": { + "oneof": [ + "semaphoreWaitThresholdCount" + ] + }, + "_historyListLengthThresholdCount": { + "oneof": [ + "historyListLengthThresholdCount" + ] + }, + "_transactionKillThresholdSeconds": { + "oneof": [ + "transactionKillThresholdSeconds" + ] + }, + "_transactionKillType": { + "oneof": [ + "transactionKillType" + ] } }, "fields": { @@ -14518,6 +14787,79 @@ "(google.api.field_behavior)": "OPTIONAL", "proto3_optional": true } + }, + "cpuUtilizationThresholdPercent": { + "type": "int32", + "id": 9, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "memoryUsageThresholdPercent": { + "type": "int32", + "id": 10, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "transactionLockWaitThresholdCount": { + "type": "int32", + "id": 11, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "semaphoreWaitThresholdCount": { + "type": "int32", + "id": 12, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "historyListLengthThresholdCount": { + "type": "int32", + "id": 13, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "transactionKillThresholdSeconds": { + "type": "int32", + "id": 14, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "transactionKillExcludedUserHosts": { + "rule": "repeated", + "type": "string", + "id": 16, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "transactionKillType": { + "type": "TransactionKillType", + "id": 17, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + } + }, + "nested": { + "TransactionKillType": { + "values": { + "TRANSACTION_KILL_TYPE_UNSPECIFIED": 0, + "READ_ONLY_TRANSACTIONS": 1, + "ALL_TRANSACTIONS": 2 + } } } }, @@ -15077,6 +15419,8 @@ "POSTGRES_16": 272, "POSTGRES_17": 408, "POSTGRES_18": 557, + "POSTGRES_19": 684, + "POSTGRES_20": 781, "SQLSERVER_2019_STANDARD": 26, "SQLSERVER_2019_ENTERPRISE": 27, "SQLSERVER_2019_EXPRESS": 28, @@ -15084,7 +15428,10 @@ "SQLSERVER_2022_STANDARD": 199, "SQLSERVER_2022_ENTERPRISE": 200, "SQLSERVER_2022_EXPRESS": 201, - "SQLSERVER_2022_WEB": 202 + "SQLSERVER_2022_WEB": 202, + "SQLSERVER_2025_STANDARD": 549, + "SQLSERVER_2025_ENTERPRISE": 550, + "SQLSERVER_2025_EXPRESS": 551 } }, "SqlSuspensionReason": { @@ -15093,7 +15440,8 @@ "BILLING_ISSUE": 2, "LEGAL_ISSUE": 3, "OPERATIONAL_ISSUE": 4, - "KMS_KEY_ISSUE": 5 + "KMS_KEY_ISSUE": 5, + "PROJECT_ABUSE": 8 } }, "SqlPricingPlan": { @@ -15232,6 +15580,20 @@ } ] }, + "ResolveConnectSettings": { + "requestType": "ResolveConnectSettingsRequest", + "responseType": "ConnectSettings", + "options": { + "(google.api.http).get": "/sql/v1beta4/locations/{location}/dns/{dns_name}:resolveConnectSettings" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/sql/v1beta4/locations/{location}/dns/{dns_name}:resolveConnectSettings" + } + } + ] + }, "GenerateEphemeralCert": { "requestType": "GenerateEphemeralCertRequest", "responseType": "GenerateEphemeralCertResponse", @@ -15269,6 +15631,24 @@ } } }, + "ResolveConnectSettingsRequest": { + "fields": { + "dnsName": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + }, + "location": { + "type": "string", + "id": 2, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + } + } + }, "ConnectSettings": { "oneofs": { "_nodeCount": { @@ -15350,6 +15730,13 @@ "options": { "(google.api.field_behavior)": "OPTIONAL" } + }, + "connectionName": { + "type": "string", + "id": 40, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } } }, "nested": { @@ -15466,6 +15853,201 @@ } } }, + "SqlDataService": { + "options": { + "(google.api.default_host)": "sqladmin.googleapis.com", + "(google.api.oauth_scopes)": "https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/sqlservice.admin" + }, + "methods": { + "StreamSqlData": { + "requestType": "StreamSqlDataRequest", + "requestStream": true, + "responseType": "StreamSqlDataResponse", + "responseStream": true + } + } + }, + "StreamSqlDataRequest": { + "oneofs": { + "message": { + "oneof": [ + "startSession", + "continueSession", + "data", + "terminateSession" + ] + } + }, + "fields": { + "ack": { + "type": "Ack", + "id": 4, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "startSession": { + "type": "StartSession", + "id": 5 + }, + "continueSession": { + "type": "ContinueSession", + "id": 6 + }, + "data": { + "type": "DataPacket", + "id": 7 + }, + "terminateSession": { + "type": "TerminateSession", + "id": 8 + }, + "instanceId": { + "type": "string", + "id": 9, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "(google.api.resource_reference).type": "cloudsql.googleapis.com/Instance" + } + } + } + }, + "StartSession": { + "fields": { + "locationId": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + }, + "instanceId": { + "type": "string", + "id": 2, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "cloudsql.googleapis.com/Instance" + } + }, + "sessionId": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + } + }, + "ContinueSession": { + "fields": { + "locationId": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + }, + "instanceId": { + "type": "string", + "id": 2, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "cloudsql.googleapis.com/Instance" + } + }, + "sessionId": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + } + } + }, + "StreamSqlDataResponse": { + "oneofs": { + "message": { + "oneof": [ + "sessionMetadata", + "data", + "terminateSession" + ] + } + }, + "fields": { + "ack": { + "type": "Ack", + "id": 2 + }, + "sessionMetadata": { + "type": "SessionMetadata", + "id": 3 + }, + "data": { + "type": "DataPacket", + "id": 4 + }, + "terminateSession": { + "type": "TerminateSession", + "id": 5 + } + } + }, + "SessionMetadata": { + "fields": { + "supportedFeatures": { + "rule": "repeated", + "type": "SqlDataFeature", + "id": 1 + } + } + }, + "DataPacket": { + "fields": { + "firstByteOffset": { + "type": "int64", + "id": 1, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "data": { + "type": "bytes", + "id": 2, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + } + } + }, + "Ack": { + "fields": { + "receivedOffset": { + "type": "int64", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + } + } + }, + "TerminateSession": { + "fields": { + "status": { + "type": "google.rpc.Status", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + } + } + }, + "SqlDataFeature": { + "values": { + "SQL_DATA_FEATURE_UNSPECIFIED": 0, + "SQL_DATA_FEATURE_RECONNECT": 1 + } + }, "SqlIamPoliciesService": { "options": { "(google.api.default_host)": "sqladmin.googleapis.com" @@ -15886,6 +16468,7 @@ "CLOUD_IAM_GROUP": 3, "CLOUD_IAM_GROUP_USER": 4, "CLOUD_IAM_GROUP_SERVICE_ACCOUNT": 5, + "CLOUD_IAM_WORKFORCE_IDENTITY": 6, "ENTRAID_USER": 7 } }, @@ -15951,8 +16534,7 @@ "java_multiple_files": true, "java_outer_classname": "FieldInfoProto", "java_package": "com.google.api", - "objc_class_prefix": "GAPI", - "cc_enable_arenas": true + "objc_class_prefix": "GAPI" }, "nested": { "http": { @@ -16076,6 +16658,10 @@ "rule": "repeated", "type": "ClientLibraryDestination", "id": 2 + }, + "selectiveGapicGeneration": { + "type": "SelectiveGapicGeneration", + "id": 3 } } }, @@ -16216,6 +16802,28 @@ "common": { "type": "CommonLanguageSettings", "id": 1 + }, + "experimentalFeatures": { + "type": "ExperimentalFeatures", + "id": 2 + } + }, + "nested": { + "ExperimentalFeatures": { + "fields": { + "restAsyncIoEnabled": { + "type": "bool", + "id": 1 + }, + "protobufPythonicTypesEnabled": { + "type": "bool", + "id": 2 + }, + "unversionedPackageDisabled": { + "type": "bool", + "id": 3 + } + } } } }, @@ -16273,6 +16881,11 @@ "common": { "type": "CommonLanguageSettings", "id": 1 + }, + "renamedServices": { + "keyType": "string", + "type": "string", + "id": 2 } } }, @@ -16334,6 +16947,19 @@ "PACKAGE_MANAGER": 20 } }, + "SelectiveGapicGeneration": { + "fields": { + "methods": { + "rule": "repeated", + "type": "string", + "id": 1 + }, + "generateOmittedAsInternal": { + "type": "bool", + "id": 2 + } + } + }, "LaunchStage": { "values": { "LAUNCH_STAGE_UNSPECIFIED": 0, @@ -16455,6 +17081,11 @@ "format": { "type": "Format", "id": 1 + }, + "referencedTypes": { + "rule": "repeated", + "type": "TypeReference", + "id": 2 } }, "nested": { @@ -16468,6 +17099,14 @@ } } } + }, + "TypeReference": { + "fields": { + "typeName": { + "type": "string", + "id": 1 + } + } } } }, @@ -16490,12 +17129,19 @@ "type": "FileDescriptorProto", "id": 1 } - } + }, + "extensions": [ + [ + 536000000, + 536000000 + ] + ] }, "Edition": { "edition": "proto2", "values": { "EDITION_UNKNOWN": 0, + "EDITION_LEGACY": 900, "EDITION_PROTO2": 998, "EDITION_PROTO3": 999, "EDITION_2023": 1000, @@ -16534,6 +17180,11 @@ "type": "int32", "id": 11 }, + "optionDependency": { + "rule": "repeated", + "type": "string", + "id": 15 + }, "messageType": { "rule": "repeated", "type": "DescriptorProto", @@ -16622,6 +17273,10 @@ "rule": "repeated", "type": "string", "id": 10 + }, + "visibility": { + "type": "SymbolVisibility", + "id": 11 } }, "nested": { @@ -16847,6 +17502,10 @@ "rule": "repeated", "type": "string", "id": 5 + }, + "visibility": { + "type": "SymbolVisibility", + "id": 6 } }, "nested": { @@ -16897,7 +17556,14 @@ "type": "ServiceOptions", "id": 3 } - } + }, + "reserved": [ + [ + 4, + 4 + ], + "stream" + ] }, "MethodDescriptorProto": { "edition": "proto2", @@ -17061,6 +17727,7 @@ 42, 42 ], + "php_generic_services", [ 38, 38 @@ -17196,7 +17863,8 @@ "type": "bool", "id": 10, "options": { - "default": false + "default": false, + "deprecated": true } }, "debugRedact": { @@ -17224,6 +17892,10 @@ "type": "FeatureSet", "id": 21 }, + "featureSupport": { + "type": "FeatureSupport", + "id": 22 + }, "uninterpretedOption": { "rule": "repeated", "type": "UninterpretedOption", @@ -17293,6 +17965,26 @@ "id": 2 } } + }, + "FeatureSupport": { + "fields": { + "editionIntroduced": { + "type": "Edition", + "id": 1 + }, + "editionDeprecated": { + "type": "Edition", + "id": 2 + }, + "deprecationWarning": { + "type": "string", + "id": 3 + }, + "editionRemoved": { + "type": "Edition", + "id": 4 + } + } } } }, @@ -17381,6 +18073,10 @@ "default": false } }, + "featureSupport": { + "type": "FieldOptions.FeatureSupport", + "id": 4 + }, "uninterpretedOption": { "rule": "repeated", "type": "UninterpretedOption", @@ -17523,6 +18219,7 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2023", "edition_defaults.edition": "EDITION_2023", "edition_defaults.value": "EXPLICIT" } @@ -17533,6 +18230,7 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2023", "edition_defaults.edition": "EDITION_PROTO3", "edition_defaults.value": "OPEN" } @@ -17543,6 +18241,7 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2023", "edition_defaults.edition": "EDITION_PROTO3", "edition_defaults.value": "PACKED" } @@ -17553,6 +18252,7 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2023", "edition_defaults.edition": "EDITION_PROTO3", "edition_defaults.value": "VERIFY" } @@ -17563,7 +18263,8 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", - "edition_defaults.edition": "EDITION_PROTO2", + "feature_support.edition_introduced": "EDITION_2023", + "edition_defaults.edition": "EDITION_LEGACY", "edition_defaults.value": "LENGTH_PREFIXED" } }, @@ -17573,27 +18274,38 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2023", "edition_defaults.edition": "EDITION_PROTO3", "edition_defaults.value": "ALLOW" } + }, + "enforceNamingStyle": { + "type": "EnforceNamingStyle", + "id": 7, + "options": { + "retention": "RETENTION_SOURCE", + "targets": "TARGET_TYPE_METHOD", + "feature_support.edition_introduced": "EDITION_2024", + "edition_defaults.edition": "EDITION_2024", + "edition_defaults.value": "STYLE2024" + } + }, + "defaultSymbolVisibility": { + "type": "VisibilityFeature.DefaultSymbolVisibility", + "id": 8, + "options": { + "retention": "RETENTION_SOURCE", + "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2024", + "edition_defaults.edition": "EDITION_2024", + "edition_defaults.value": "EXPORT_TOP_LEVEL" + } } }, "extensions": [ [ 1000, - 1000 - ], - [ - 1001, - 1001 - ], - [ - 1002, - 1002 - ], - [ - 9990, - 9990 + 9994 ], [ 9995, @@ -17638,7 +18350,13 @@ "UTF8_VALIDATION_UNKNOWN": 0, "VERIFY": 2, "NONE": 3 - } + }, + "reserved": [ + [ + 1, + 1 + ] + ] }, "MessageEncoding": { "values": { @@ -17653,6 +18371,33 @@ "ALLOW": 1, "LEGACY_BEST_EFFORT": 2 } + }, + "EnforceNamingStyle": { + "values": { + "ENFORCE_NAMING_STYLE_UNKNOWN": 0, + "STYLE2024": 1, + "STYLE_LEGACY": 2 + } + }, + "VisibilityFeature": { + "fields": {}, + "reserved": [ + [ + 1, + 536870911 + ] + ], + "nested": { + "DefaultSymbolVisibility": { + "values": { + "DEFAULT_SYMBOL_VISIBILITY_UNKNOWN": 0, + "EXPORT_ALL": 1, + "EXPORT_TOP_LEVEL": 2, + "LOCAL_ALL": 3, + "STRICT": 4 + } + } + } } } }, @@ -17680,11 +18425,26 @@ "type": "Edition", "id": 3 }, - "features": { + "overridableFeatures": { "type": "FeatureSet", - "id": 2 + "id": 4 + }, + "fixedFeatures": { + "type": "FeatureSet", + "id": 5 } - } + }, + "reserved": [ + [ + 1, + 1 + ], + [ + 2, + 2 + ], + "features" + ] } } }, @@ -17697,6 +18457,12 @@ "id": 1 } }, + "extensions": [ + [ + 536000000, + 536000000 + ] + ], "nested": { "Location": { "fields": { @@ -17782,6 +18548,14 @@ } } }, + "SymbolVisibility": { + "edition": "proto2", + "values": { + "VISIBILITY_UNSET": 0, + "VISIBILITY_LOCAL": 1, + "VISIBILITY_EXPORT": 2 + } + }, "Duration": { "fields": { "seconds": { diff --git a/packages/google-cloud-sql/samples/generated/v1/sql_instances_service.clone.js b/packages/google-cloud-sql/samples/generated/v1/sql_instances_service.clone.js index 4f700337fe2..e8213ce4277 100644 --- a/packages/google-cloud-sql/samples/generated/v1/sql_instances_service.clone.js +++ b/packages/google-cloud-sql/samples/generated/v1/sql_instances_service.clone.js @@ -34,7 +34,7 @@ function main(instance, project, body) { */ // const instance = 'abc123' /** - * Required. Project ID of the source as well as the clone Cloud SQL instance. + * Required. Project ID of the source Cloud SQL instance. */ // const project = 'my-project' /** diff --git a/packages/google-cloud-sql/samples/generated/v1beta4/sql_connect_service.resolve_connect_settings.js b/packages/google-cloud-sql/samples/generated/v1beta4/sql_connect_service.resolve_connect_settings.js new file mode 100644 index 00000000000..a79e637e452 --- /dev/null +++ b/packages/google-cloud-sql/samples/generated/v1beta4/sql_connect_service.resolve_connect_settings.js @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(dnsName, location) { + // [START sqladmin_v1beta4_generated_SqlConnectService_ResolveConnectSettings_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Cloud SQL instance ID. This does not include the project ID. + */ + // const dnsName = 'abc123' + /** + * Required. The region of the instance. + */ + // const location = 'abc123' + + // Imports the Sql library + const {SqlConnectServiceClient} = require('@google-cloud/sql').v1beta4; + + // Instantiates a client + const sqlClient = new SqlConnectServiceClient(); + + async function callResolveConnectSettings() { + // Construct request + const request = { + dnsName, + location, + }; + + // Run request + const response = await sqlClient.resolveConnectSettings(request); + console.log(response); + } + + callResolveConnectSettings(); + // [END sqladmin_v1beta4_generated_SqlConnectService_ResolveConnectSettings_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-sql/samples/generated/v1beta4/sql_data_service.stream_sql_data.js b/packages/google-cloud-sql/samples/generated/v1beta4/sql_data_service.stream_sql_data.js new file mode 100644 index 00000000000..a4adfffb34f --- /dev/null +++ b/packages/google-cloud-sql/samples/generated/v1beta4/sql_data_service.stream_sql_data.js @@ -0,0 +1,82 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main() { + // [START sqladmin_v1beta4_generated_SqlDataService_StreamSqlData_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Optional. Acknowledges data received by the client. + */ + // const ack = {} + /** + * Starts a new session. When starting a new session, this is the first + * message the client sends. + */ + // const startSession = {} + /** + * Continues an existing session. When continuing an existing session, this + * is the first message the client sends. + */ + // const continueSession = {} + /** + * Database data. + */ + // const data = {} + /** + * Terminates the session. This closes the connection to the database. + */ + // const terminateSession = {} + + // Imports the Sql library + const {SqlDataServiceClient} = require('@google-cloud/sql').v1beta4; + + // Instantiates a client + const sqlClient = new SqlDataServiceClient(); + + async function callStreamSqlData() { + // Construct request + const request = { + }; + + // Run request + const stream = await sqlClient.streamSqlData(); + stream.on('data', (response) => { console.log(response) }); + stream.on('error', (err) => { throw(err) }); + stream.on('end', () => { /* API call completed */ }); + stream.write(request); + stream.end(); + } + + callStreamSqlData(); + // [END sqladmin_v1beta4_generated_SqlDataService_StreamSqlData_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-sql/samples/generated/v1beta4/sql_instances_service.clone.js b/packages/google-cloud-sql/samples/generated/v1beta4/sql_instances_service.clone.js index 2be0c22e236..752a3a5bd4a 100644 --- a/packages/google-cloud-sql/samples/generated/v1beta4/sql_instances_service.clone.js +++ b/packages/google-cloud-sql/samples/generated/v1beta4/sql_instances_service.clone.js @@ -34,7 +34,7 @@ function main() { */ // const instance = 'abc123' /** - * Project ID of the source as well as the clone Cloud SQL instance. + * Project ID of the source Cloud SQL instance. */ // const project = 'my-project' /** diff --git a/packages/google-cloud-sql/samples/generated/v1beta4/sql_instances_service.patch.js b/packages/google-cloud-sql/samples/generated/v1beta4/sql_instances_service.patch.js index 6fb24aff35d..f1279038b98 100644 --- a/packages/google-cloud-sql/samples/generated/v1beta4/sql_instances_service.patch.js +++ b/packages/google-cloud-sql/samples/generated/v1beta4/sql_instances_service.patch.js @@ -36,6 +36,16 @@ function main() { * Project ID of the project that contains the instance. */ // const project = 'my-project' + /** + * Optional. Set PSC config to the same value as the existing config to + * reconcile the PSC networking. + */ + // const reconcilePscNetworking = true + /** + * Optional. Set PSC config to the same value as the existing config and force + * reconcile the PSC networking. + */ + // const reconcilePscNetworkingForce = true /** */ // const body = {} diff --git a/packages/google-cloud-sql/src/index.ts b/packages/google-cloud-sql/src/index.ts index fc007be5684..a0b32c643f5 100644 --- a/packages/google-cloud-sql/src/index.ts +++ b/packages/google-cloud-sql/src/index.ts @@ -19,18 +19,32 @@ import * as v1 from './v1'; import * as v1beta4 from './v1beta4'; +const SqlAvailableDatabaseVersionsServiceClient = v1.SqlAvailableDatabaseVersionsServiceClient; +type SqlAvailableDatabaseVersionsServiceClient = v1.SqlAvailableDatabaseVersionsServiceClient; const SqlBackupRunsServiceClient = v1.SqlBackupRunsServiceClient; type SqlBackupRunsServiceClient = v1.SqlBackupRunsServiceClient; +const SqlBackupsServiceClient = v1.SqlBackupsServiceClient; +type SqlBackupsServiceClient = v1.SqlBackupsServiceClient; const SqlConnectServiceClient = v1.SqlConnectServiceClient; type SqlConnectServiceClient = v1.SqlConnectServiceClient; const SqlDatabasesServiceClient = v1.SqlDatabasesServiceClient; type SqlDatabasesServiceClient = v1.SqlDatabasesServiceClient; +const SqlEventsServiceClient = v1.SqlEventsServiceClient; +type SqlEventsServiceClient = v1.SqlEventsServiceClient; +const SqlFeatureEligibilityServiceClient = v1.SqlFeatureEligibilityServiceClient; +type SqlFeatureEligibilityServiceClient = v1.SqlFeatureEligibilityServiceClient; const SqlFlagsServiceClient = v1.SqlFlagsServiceClient; type SqlFlagsServiceClient = v1.SqlFlagsServiceClient; +const SqlIamPoliciesServiceClient = v1.SqlIamPoliciesServiceClient; +type SqlIamPoliciesServiceClient = v1.SqlIamPoliciesServiceClient; +const SqlInstanceNamesServiceClient = v1.SqlInstanceNamesServiceClient; +type SqlInstanceNamesServiceClient = v1.SqlInstanceNamesServiceClient; const SqlInstancesServiceClient = v1.SqlInstancesServiceClient; type SqlInstancesServiceClient = v1.SqlInstancesServiceClient; const SqlOperationsServiceClient = v1.SqlOperationsServiceClient; type SqlOperationsServiceClient = v1.SqlOperationsServiceClient; +const SqlRegionsServiceClient = v1.SqlRegionsServiceClient; +type SqlRegionsServiceClient = v1.SqlRegionsServiceClient; const SqlSslCertsServiceClient = v1.SqlSslCertsServiceClient; type SqlSslCertsServiceClient = v1.SqlSslCertsServiceClient; const SqlTiersServiceClient = v1.SqlTiersServiceClient; @@ -38,7 +52,7 @@ type SqlTiersServiceClient = v1.SqlTiersServiceClient; const SqlUsersServiceClient = v1.SqlUsersServiceClient; type SqlUsersServiceClient = v1.SqlUsersServiceClient; -export {v1, v1beta4, SqlBackupRunsServiceClient, SqlConnectServiceClient, SqlDatabasesServiceClient, SqlFlagsServiceClient, SqlInstancesServiceClient, SqlOperationsServiceClient, SqlSslCertsServiceClient, SqlTiersServiceClient, SqlUsersServiceClient}; -export default {v1, v1beta4, SqlBackupRunsServiceClient, SqlConnectServiceClient, SqlDatabasesServiceClient, SqlFlagsServiceClient, SqlInstancesServiceClient, SqlOperationsServiceClient, SqlSslCertsServiceClient, SqlTiersServiceClient, SqlUsersServiceClient}; +export {v1, v1beta4, SqlAvailableDatabaseVersionsServiceClient, SqlBackupRunsServiceClient, SqlBackupsServiceClient, SqlConnectServiceClient, SqlDatabasesServiceClient, SqlEventsServiceClient, SqlFeatureEligibilityServiceClient, SqlFlagsServiceClient, SqlIamPoliciesServiceClient, SqlInstanceNamesServiceClient, SqlInstancesServiceClient, SqlOperationsServiceClient, SqlRegionsServiceClient, SqlSslCertsServiceClient, SqlTiersServiceClient, SqlUsersServiceClient}; +export default {v1, v1beta4, SqlAvailableDatabaseVersionsServiceClient, SqlBackupRunsServiceClient, SqlBackupsServiceClient, SqlConnectServiceClient, SqlDatabasesServiceClient, SqlEventsServiceClient, SqlFeatureEligibilityServiceClient, SqlFlagsServiceClient, SqlIamPoliciesServiceClient, SqlInstanceNamesServiceClient, SqlInstancesServiceClient, SqlOperationsServiceClient, SqlRegionsServiceClient, SqlSslCertsServiceClient, SqlTiersServiceClient, SqlUsersServiceClient}; import * as protos from '../protos/protos'; export {protos}; diff --git a/packages/google-cloud-sql/src/v1/index.ts b/packages/google-cloud-sql/src/v1/index.ts index fa8a89f713a..3e843e17357 100644 --- a/packages/google-cloud-sql/src/v1/index.ts +++ b/packages/google-cloud-sql/src/v1/index.ts @@ -16,19 +16,19 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** - -export {SqlBackupRunsServiceClient} from './sql_backup_runs_service_client'; -export {SqlBackupsServiceClient} from './sql_backups_service_client'; -export {SqlConnectServiceClient} from './sql_connect_service_client'; -export {SqlDatabasesServiceClient} from './sql_databases_service_client'; - -export {SqlFeatureEligibilityServiceClient} from './sql_feature_eligibility_service_client'; -export {SqlFlagsServiceClient} from './sql_flags_service_client'; - - -export {SqlInstancesServiceClient} from './sql_instances_service_client'; -export {SqlOperationsServiceClient} from './sql_operations_service_client'; - -export {SqlSslCertsServiceClient} from './sql_ssl_certs_service_client'; -export {SqlTiersServiceClient} from './sql_tiers_service_client'; -export {SqlUsersServiceClient} from './sql_users_service_client'; +export { SqlAvailableDatabaseVersionsServiceClient } from './sql_available_database_versions_service_client'; +export { SqlBackupRunsServiceClient } from './sql_backup_runs_service_client'; +export { SqlBackupsServiceClient } from './sql_backups_service_client'; +export { SqlConnectServiceClient } from './sql_connect_service_client'; +export { SqlDatabasesServiceClient } from './sql_databases_service_client'; +export { SqlEventsServiceClient } from './sql_events_service_client'; +export { SqlFeatureEligibilityServiceClient } from './sql_feature_eligibility_service_client'; +export { SqlFlagsServiceClient } from './sql_flags_service_client'; +export { SqlIamPoliciesServiceClient } from './sql_iam_policies_service_client'; +export { SqlInstanceNamesServiceClient } from './sql_instance_names_service_client'; +export { SqlInstancesServiceClient } from './sql_instances_service_client'; +export { SqlOperationsServiceClient } from './sql_operations_service_client'; +export { SqlRegionsServiceClient } from './sql_regions_service_client'; +export { SqlSslCertsServiceClient } from './sql_ssl_certs_service_client'; +export { SqlTiersServiceClient } from './sql_tiers_service_client'; +export { SqlUsersServiceClient } from './sql_users_service_client'; diff --git a/packages/google-cloud-sql/src/v1/sql_backup_runs_service_client.ts b/packages/google-cloud-sql/src/v1/sql_backup_runs_service_client.ts index e6258c7ae72..582b1c1f4ae 100644 --- a/packages/google-cloud-sql/src/v1/sql_backup_runs_service_client.ts +++ b/packages/google-cloud-sql/src/v1/sql_backup_runs_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -44,7 +51,7 @@ export class SqlBackupRunsServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -57,10 +64,10 @@ export class SqlBackupRunsServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlBackupRunsServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlBackupRunsServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlBackupRunsServiceClient. @@ -101,21 +108,42 @@ export class SqlBackupRunsServiceClient { * const client = new SqlBackupRunsServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlBackupRunsServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -140,7 +168,7 @@ export class SqlBackupRunsServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -154,15 +182,11 @@ export class SqlBackupRunsServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -184,14 +208,17 @@ export class SqlBackupRunsServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1.SqlBackupRunsService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1.SqlBackupRunsService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -222,36 +249,40 @@ export class SqlBackupRunsServiceClient { // Put together the "service stub" for // google.cloud.sql.v1.SqlBackupRunsService. this.sqlBackupRunsServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1.SqlBackupRunsService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1.SqlBackupRunsService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1.SqlBackupRunsService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlBackupRunsServiceStubMethods = - ['delete', 'get', 'insert', 'list']; + const sqlBackupRunsServiceStubMethods = ['delete', 'get', 'insert', 'list']; for (const methodName of sqlBackupRunsServiceStubMethods) { const callPromise = this.sqlBackupRunsServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -266,8 +297,14 @@ export class SqlBackupRunsServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -278,8 +315,14 @@ export class SqlBackupRunsServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -312,7 +355,7 @@ export class SqlBackupRunsServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -322,8 +365,9 @@ export class SqlBackupRunsServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -334,413 +378,549 @@ export class SqlBackupRunsServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Deletes the backup taken by a backup run. - * - * @param {Object} request - * The request object that will be sent. - * @param {number} request.id - * The ID of the backup run to delete. To find a backup run ID, use the - * [list](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/backupRuns/list) - * method. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_backup_runs_service.delete.js - * region_tag:sqladmin_v1_generated_SqlBackupRunsService_Delete_async - */ + /** + * Deletes the backup taken by a backup run. + * + * @param {Object} request + * The request object that will be sent. + * @param {number} request.id + * The ID of the backup run to delete. To find a backup run ID, use the + * [list](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/backupRuns/list) + * method. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_backup_runs_service.delete.js + * region_tag:sqladmin_v1_generated_SqlBackupRunsService_Delete_async + */ delete( - request?: protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest | undefined, + {} | undefined, + ] + >; delete( - request: protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest | null | undefined, + {} | null | undefined + >, + ): void; delete( - request: protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest | null | undefined, + {} | null | undefined + >, + ): void; delete( - request?: protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'id': request.id?.toString() ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + id: request.id?.toString() ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('delete request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('delete response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.delete(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest|undefined, - {}|undefined - ]) => { - this._log.info('delete response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .delete(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlBackupRunsDeleteRequest | undefined, + {} | undefined, + ]) => { + this._log.info('delete response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Retrieves a resource containing information about a backup run. - * - * @param {Object} request - * The request object that will be sent. - * @param {number} request.id - * The ID of this backup run. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.BackupRun|BackupRun}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_backup_runs_service.get.js - * region_tag:sqladmin_v1_generated_SqlBackupRunsService_Get_async - */ + /** + * Retrieves a resource containing information about a backup run. + * + * @param {Object} request + * The request object that will be sent. + * @param {number} request.id + * The ID of this backup run. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.BackupRun|BackupRun}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_backup_runs_service.get.js + * region_tag:sqladmin_v1_generated_SqlBackupRunsService_Get_async + */ get( - request?: protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IBackupRun, - protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IBackupRun, + protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest | undefined, + {} | undefined, + ] + >; get( - request: protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IBackupRun, - protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IBackupRun, + protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest | null | undefined, + {} | null | undefined + >, + ): void; get( - request: protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest, - callback: Callback< - protos.google.cloud.sql.v1.IBackupRun, - protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest, + callback: Callback< + protos.google.cloud.sql.v1.IBackupRun, + protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest | null | undefined, + {} | null | undefined + >, + ): void; get( - request?: protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IBackupRun, - protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IBackupRun, - protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IBackupRun, - protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IBackupRun, + protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IBackupRun, + protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'id': request.id?.toString() ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + id: request.id?.toString() ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('get request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IBackupRun, - protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IBackupRun, + | protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('get response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.get(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IBackupRun, - protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest|undefined, - {}|undefined - ]) => { - this._log.info('get response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .get(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IBackupRun, + protos.google.cloud.sql.v1.ISqlBackupRunsGetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('get response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Creates a new backup run on demand. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1.BackupRun} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_backup_runs_service.insert.js - * region_tag:sqladmin_v1_generated_SqlBackupRunsService_Insert_async - */ + /** + * Creates a new backup run on demand. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1.BackupRun} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_backup_runs_service.insert.js + * region_tag:sqladmin_v1_generated_SqlBackupRunsService_Insert_async + */ insert( - request?: protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest | undefined, + {} | undefined, + ] + >; insert( - request: protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest | null | undefined, + {} | null | undefined + >, + ): void; insert( - request: protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest | null | undefined, + {} | null | undefined + >, + ): void; insert( - request?: protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('insert request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('insert response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.insert(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest|undefined, - {}|undefined - ]) => { - this._log.info('insert response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .insert(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlBackupRunsInsertRequest | undefined, + {} | undefined, + ]) => { + this._log.info('insert response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists all backup runs associated with the project or a given instance - * and configuration in the reverse chronological order of the backup - * initiation time. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID, or "-" for all instances. This does not include - * the project ID. - * @param {number} request.maxResults - * Maximum number of backup runs per response. - * @param {string} request.pageToken - * A previously-returned page token representing part of the larger set of - * results to view. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.BackupRunsListResponse|BackupRunsListResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_backup_runs_service.list.js - * region_tag:sqladmin_v1_generated_SqlBackupRunsService_List_async - */ + /** + * Lists all backup runs associated with the project or a given instance + * and configuration in the reverse chronological order of the backup + * initiation time. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID, or "-" for all instances. This does not include + * the project ID. + * @param {number} request.maxResults + * Maximum number of backup runs per response. + * @param {string} request.pageToken + * A previously-returned page token representing part of the larger set of + * results to view. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.BackupRunsListResponse|BackupRunsListResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_backup_runs_service.list.js + * region_tag:sqladmin_v1_generated_SqlBackupRunsService_List_async + */ list( - request?: protos.google.cloud.sql.v1.ISqlBackupRunsListRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IBackupRunsListResponse, - protos.google.cloud.sql.v1.ISqlBackupRunsListRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlBackupRunsListRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IBackupRunsListResponse, + protos.google.cloud.sql.v1.ISqlBackupRunsListRequest | undefined, + {} | undefined, + ] + >; list( - request: protos.google.cloud.sql.v1.ISqlBackupRunsListRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IBackupRunsListResponse, - protos.google.cloud.sql.v1.ISqlBackupRunsListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlBackupRunsListRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IBackupRunsListResponse, + protos.google.cloud.sql.v1.ISqlBackupRunsListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request: protos.google.cloud.sql.v1.ISqlBackupRunsListRequest, - callback: Callback< - protos.google.cloud.sql.v1.IBackupRunsListResponse, - protos.google.cloud.sql.v1.ISqlBackupRunsListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlBackupRunsListRequest, + callback: Callback< + protos.google.cloud.sql.v1.IBackupRunsListResponse, + protos.google.cloud.sql.v1.ISqlBackupRunsListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request?: protos.google.cloud.sql.v1.ISqlBackupRunsListRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IBackupRunsListResponse, - protos.google.cloud.sql.v1.ISqlBackupRunsListRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlBackupRunsListRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IBackupRunsListResponse, - protos.google.cloud.sql.v1.ISqlBackupRunsListRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IBackupRunsListResponse, - protos.google.cloud.sql.v1.ISqlBackupRunsListRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlBackupRunsListRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IBackupRunsListResponse, + protos.google.cloud.sql.v1.ISqlBackupRunsListRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IBackupRunsListResponse, + protos.google.cloud.sql.v1.ISqlBackupRunsListRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('list request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IBackupRunsListResponse, - protos.google.cloud.sql.v1.ISqlBackupRunsListRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IBackupRunsListResponse, + | protos.google.cloud.sql.v1.ISqlBackupRunsListRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('list response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.list(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IBackupRunsListResponse, - protos.google.cloud.sql.v1.ISqlBackupRunsListRequest|undefined, - {}|undefined - ]) => { - this._log.info('list response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .list(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IBackupRunsListResponse, + protos.google.cloud.sql.v1.ISqlBackupRunsListRequest | undefined, + {} | undefined, + ]) => { + this._log.info('list response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -775,12 +955,11 @@ export class SqlBackupRunsServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -813,7 +992,7 @@ export class SqlBackupRunsServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -829,7 +1008,7 @@ export class SqlBackupRunsServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -866,13 +1045,15 @@ export class SqlBackupRunsServiceClient { */ close(): Promise { if (this.sqlBackupRunsServiceStub && !this._terminated) { - return this.sqlBackupRunsServiceStub.then(stub => { + return this.sqlBackupRunsServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1/sql_backups_service_client.ts b/packages/google-cloud-sql/src/v1/sql_backups_service_client.ts index e564a09bad5..1931f7ec4f6 100644 --- a/packages/google-cloud-sql/src/v1/sql_backups_service_client.ts +++ b/packages/google-cloud-sql/src/v1/sql_backups_service_client.ts @@ -18,11 +18,20 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, PaginationCallback, GaxCall, LocationsClient, LocationProtos} from 'google-gax'; -import {Transform} from 'stream'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + PaginationCallback, + GaxCall, + LocationsClient, + LocationProtos, +} from 'google-gax'; +import { Transform } from 'stream'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -43,7 +52,7 @@ export class SqlBackupsServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -56,10 +65,10 @@ export class SqlBackupsServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlBackupsServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlBackupsServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlBackupsServiceClient. @@ -100,21 +109,42 @@ export class SqlBackupsServiceClient { * const client = new SqlBackupsServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlBackupsServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -139,7 +169,7 @@ export class SqlBackupsServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -153,15 +183,11 @@ export class SqlBackupsServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -183,10 +209,10 @@ export class SqlBackupsServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), projectPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}' + 'projects/{project}', ), }; @@ -194,14 +220,20 @@ export class SqlBackupsServiceClient { // (e.g. 50 results at a time, with tokens to get subsequent // pages). Denote the keys used for pagination and results. this.descriptors.page = { - listBackups: - new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'backups') + listBackups: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'backups', + ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1.SqlBackupsService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1.SqlBackupsService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -232,37 +264,46 @@ export class SqlBackupsServiceClient { // Put together the "service stub" for // google.cloud.sql.v1.SqlBackupsService. this.sqlBackupsServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1.SqlBackupsService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1.SqlBackupsService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1.SqlBackupsService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlBackupsServiceStubMethods = - ['createBackup', 'getBackup', 'listBackups', 'updateBackup', 'deleteBackup']; + const sqlBackupsServiceStubMethods = [ + 'createBackup', + 'getBackup', + 'listBackups', + 'updateBackup', + 'deleteBackup', + ]; for (const methodName of sqlBackupsServiceStubMethods) { const callPromise = this.sqlBackupsServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - this.descriptors.page[methodName] || - undefined; + const descriptor = this.descriptors.page[methodName] || undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -277,8 +318,14 @@ export class SqlBackupsServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -289,8 +336,14 @@ export class SqlBackupsServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -323,7 +376,7 @@ export class SqlBackupsServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -333,8 +386,9 @@ export class SqlBackupsServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -345,490 +399,625 @@ export class SqlBackupsServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Creates a backup for a Cloud SQL instance. This API can be used only to - * create on-demand backups. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent resource where this backup is created. - * Format: projects/{project} - * @param {google.cloud.sql.v1.Backup} request.backup - * Required. The Backup to create. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_backups_service.create_backup.js - * region_tag:sqladmin_v1_generated_SqlBackupsService_CreateBackup_async - */ + /** + * Creates a backup for a Cloud SQL instance. This API can be used only to + * create on-demand backups. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent resource where this backup is created. + * Format: projects/{project} + * @param {google.cloud.sql.v1.Backup} request.backup + * Required. The Backup to create. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_backups_service.create_backup.js + * region_tag:sqladmin_v1_generated_SqlBackupsService_CreateBackup_async + */ createBackup( - request?: protos.google.cloud.sql.v1.ICreateBackupRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ICreateBackupRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ICreateBackupRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ICreateBackupRequest | undefined, + {} | undefined, + ] + >; createBackup( - request: protos.google.cloud.sql.v1.ICreateBackupRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ICreateBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ICreateBackupRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ICreateBackupRequest | null | undefined, + {} | null | undefined + >, + ): void; createBackup( - request: protos.google.cloud.sql.v1.ICreateBackupRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ICreateBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ICreateBackupRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ICreateBackupRequest | null | undefined, + {} | null | undefined + >, + ): void; createBackup( - request?: protos.google.cloud.sql.v1.ICreateBackupRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ICreateBackupRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ICreateBackupRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ICreateBackupRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ICreateBackupRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.sql.v1.ICreateBackupRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ICreateBackupRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ICreateBackupRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'parent': request.parent ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('createBackup request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ICreateBackupRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ICreateBackupRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('createBackup response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.createBackup(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ICreateBackupRequest|undefined, - {}|undefined - ]) => { - this._log.info('createBackup response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .createBackup(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ICreateBackupRequest | undefined, + {} | undefined, + ]) => { + this._log.info('createBackup response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Retrieves a resource containing information about a backup. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the backup to retrieve. - * Format: projects/{project}/backups/{backup} - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Backup|Backup}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_backups_service.get_backup.js - * region_tag:sqladmin_v1_generated_SqlBackupsService_GetBackup_async - */ + /** + * Retrieves a resource containing information about a backup. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the backup to retrieve. + * Format: projects/{project}/backups/{backup} + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Backup|Backup}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_backups_service.get_backup.js + * region_tag:sqladmin_v1_generated_SqlBackupsService_GetBackup_async + */ getBackup( - request?: protos.google.cloud.sql.v1.IGetBackupRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IBackup, - protos.google.cloud.sql.v1.IGetBackupRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.IGetBackupRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IBackup, + protos.google.cloud.sql.v1.IGetBackupRequest | undefined, + {} | undefined, + ] + >; getBackup( - request: protos.google.cloud.sql.v1.IGetBackupRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IBackup, - protos.google.cloud.sql.v1.IGetBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.IGetBackupRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IBackup, + protos.google.cloud.sql.v1.IGetBackupRequest | null | undefined, + {} | null | undefined + >, + ): void; getBackup( - request: protos.google.cloud.sql.v1.IGetBackupRequest, - callback: Callback< - protos.google.cloud.sql.v1.IBackup, - protos.google.cloud.sql.v1.IGetBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.IGetBackupRequest, + callback: Callback< + protos.google.cloud.sql.v1.IBackup, + protos.google.cloud.sql.v1.IGetBackupRequest | null | undefined, + {} | null | undefined + >, + ): void; getBackup( - request?: protos.google.cloud.sql.v1.IGetBackupRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IBackup, - protos.google.cloud.sql.v1.IGetBackupRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.IGetBackupRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IBackup, - protos.google.cloud.sql.v1.IGetBackupRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IBackup, - protos.google.cloud.sql.v1.IGetBackupRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.sql.v1.IGetBackupRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IBackup, + protos.google.cloud.sql.v1.IGetBackupRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IBackup, + protos.google.cloud.sql.v1.IGetBackupRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'name': request.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('getBackup request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IBackup, - protos.google.cloud.sql.v1.IGetBackupRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IBackup, + protos.google.cloud.sql.v1.IGetBackupRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getBackup response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getBackup(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IBackup, - protos.google.cloud.sql.v1.IGetBackupRequest|undefined, - {}|undefined - ]) => { - this._log.info('getBackup response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getBackup(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IBackup, + protos.google.cloud.sql.v1.IGetBackupRequest | undefined, + {} | undefined, + ]) => { + this._log.info('getBackup response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Updates the retention period and description of the backup. You can use - * this API to update final backups only. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.cloud.sql.v1.Backup} request.backup - * Required. The backup to update. - * The backup’s `name` field is used to identify the backup to update. - * Format: projects/{project}/backups/{backup} - * @param {google.protobuf.FieldMask} request.updateMask - * The list of fields that you can update. You can update only the description - * and retention period of the final backup. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_backups_service.update_backup.js - * region_tag:sqladmin_v1_generated_SqlBackupsService_UpdateBackup_async - */ + /** + * Updates the retention period and description of the backup. You can use + * this API to update final backups only. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.sql.v1.Backup} request.backup + * Required. The backup to update. + * The backup’s `name` field is used to identify the backup to update. + * Format: projects/{project}/backups/{backup} + * @param {google.protobuf.FieldMask} request.updateMask + * The list of fields that you can update. You can update only the description + * and retention period of the final backup. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_backups_service.update_backup.js + * region_tag:sqladmin_v1_generated_SqlBackupsService_UpdateBackup_async + */ updateBackup( - request?: protos.google.cloud.sql.v1.IUpdateBackupRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.IUpdateBackupRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.IUpdateBackupRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.IUpdateBackupRequest | undefined, + {} | undefined, + ] + >; updateBackup( - request: protos.google.cloud.sql.v1.IUpdateBackupRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.IUpdateBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.IUpdateBackupRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.IUpdateBackupRequest | null | undefined, + {} | null | undefined + >, + ): void; updateBackup( - request: protos.google.cloud.sql.v1.IUpdateBackupRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.IUpdateBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.IUpdateBackupRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.IUpdateBackupRequest | null | undefined, + {} | null | undefined + >, + ): void; updateBackup( - request?: protos.google.cloud.sql.v1.IUpdateBackupRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.IUpdateBackupRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.IUpdateBackupRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.IUpdateBackupRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.IUpdateBackupRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.sql.v1.IUpdateBackupRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.IUpdateBackupRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.IUpdateBackupRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'backup.name': request.backup!.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + 'backup.name': request.backup!.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('updateBackup request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.IUpdateBackupRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.IUpdateBackupRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('updateBackup response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.updateBackup(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.IUpdateBackupRequest|undefined, - {}|undefined - ]) => { - this._log.info('updateBackup response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .updateBackup(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.IUpdateBackupRequest | undefined, + {} | undefined, + ]) => { + this._log.info('updateBackup response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Deletes the backup. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the backup to delete. - * Format: projects/{project}/backups/{backup} - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_backups_service.delete_backup.js - * region_tag:sqladmin_v1_generated_SqlBackupsService_DeleteBackup_async - */ + /** + * Deletes the backup. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the backup to delete. + * Format: projects/{project}/backups/{backup} + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_backups_service.delete_backup.js + * region_tag:sqladmin_v1_generated_SqlBackupsService_DeleteBackup_async + */ deleteBackup( - request?: protos.google.cloud.sql.v1.IDeleteBackupRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.IDeleteBackupRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.IDeleteBackupRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.IDeleteBackupRequest | undefined, + {} | undefined, + ] + >; deleteBackup( - request: protos.google.cloud.sql.v1.IDeleteBackupRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.IDeleteBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.IDeleteBackupRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.IDeleteBackupRequest | null | undefined, + {} | null | undefined + >, + ): void; deleteBackup( - request: protos.google.cloud.sql.v1.IDeleteBackupRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.IDeleteBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.IDeleteBackupRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.IDeleteBackupRequest | null | undefined, + {} | null | undefined + >, + ): void; deleteBackup( - request?: protos.google.cloud.sql.v1.IDeleteBackupRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.IDeleteBackupRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.IDeleteBackupRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.IDeleteBackupRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.IDeleteBackupRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.sql.v1.IDeleteBackupRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.IDeleteBackupRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.IDeleteBackupRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'name': request.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('deleteBackup request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.IDeleteBackupRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.IDeleteBackupRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('deleteBackup response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.deleteBackup(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.IDeleteBackupRequest|undefined, - {}|undefined - ]) => { - this._log.info('deleteBackup response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .deleteBackup(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.IDeleteBackupRequest | undefined, + {} | undefined, + ]) => { + this._log.info('deleteBackup response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } - /** - * Lists all backups associated with the project. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent that owns this collection of backups. - * Format: projects/{project} - * @param {number} request.pageSize - * The maximum number of backups to return per response. The service might - * return fewer backups than this value. If a value for this parameter isn't - * specified, then, at most, 500 backups are returned. The maximum value is - * 2,000. Any values that you set, which are greater than 2,000, are changed - * to 2,000. - * @param {string} request.pageToken - * A page token, received from a previous `ListBackups` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListBackups` must match - * the call that provided the page token. - * @param {string} request.filter - * Multiple filter queries are separated by spaces. For example, - * 'instance:abc AND type:FINAL, 'location:us', - * 'backupInterval.startTime>=1950-01-01T01:01:25.771Z'. You can filter by - * type, instance, backupInterval.startTime (creation time), or location. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is Array of {@link protos.google.cloud.sql.v1.Backup|Backup}. - * The client library will perform auto-pagination by default: it will call the API as many - * times as needed and will merge results from all the pages into this array. - * Note that it can affect your quota. - * We recommend using `listBackupsAsync()` - * method described below for async iteration which you can stop as needed. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } - * for more details and examples. - */ + /** + * Lists all backups associated with the project. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent that owns this collection of backups. + * Format: projects/{project} + * @param {number} request.pageSize + * The maximum number of backups to return per response. The service might + * return fewer backups than this value. If a value for this parameter isn't + * specified, then, at most, 500 backups are returned. The maximum value is + * 2,000. Any values that you set, which are greater than 2,000, are changed + * to 2,000. + * @param {string} request.pageToken + * A page token, received from a previous `ListBackups` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListBackups` must match + * the call that provided the page token. + * @param {string} request.filter + * Multiple filter queries are separated by spaces. For example, + * 'instance:abc AND type:FINAL, 'location:us', + * 'backupInterval.startTime>=1950-01-01T01:01:25.771Z'. You can filter by + * type, instance, backupInterval.startTime (creation time), or location. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is Array of {@link protos.google.cloud.sql.v1.Backup|Backup}. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed and will merge results from all the pages into this array. + * Note that it can affect your quota. + * We recommend using `listBackupsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + */ listBackups( - request?: protos.google.cloud.sql.v1.IListBackupsRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IBackup[], - protos.google.cloud.sql.v1.IListBackupsRequest|null, - protos.google.cloud.sql.v1.IListBackupsResponse - ]>; + request?: protos.google.cloud.sql.v1.IListBackupsRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IBackup[], + protos.google.cloud.sql.v1.IListBackupsRequest | null, + protos.google.cloud.sql.v1.IListBackupsResponse, + ] + >; listBackups( - request: protos.google.cloud.sql.v1.IListBackupsRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.sql.v1.IListBackupsRequest, - protos.google.cloud.sql.v1.IListBackupsResponse|null|undefined, - protos.google.cloud.sql.v1.IBackup>): void; + request: protos.google.cloud.sql.v1.IListBackupsRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.sql.v1.IListBackupsRequest, + protos.google.cloud.sql.v1.IListBackupsResponse | null | undefined, + protos.google.cloud.sql.v1.IBackup + >, + ): void; listBackups( - request: protos.google.cloud.sql.v1.IListBackupsRequest, - callback: PaginationCallback< - protos.google.cloud.sql.v1.IListBackupsRequest, - protos.google.cloud.sql.v1.IListBackupsResponse|null|undefined, - protos.google.cloud.sql.v1.IBackup>): void; + request: protos.google.cloud.sql.v1.IListBackupsRequest, + callback: PaginationCallback< + protos.google.cloud.sql.v1.IListBackupsRequest, + protos.google.cloud.sql.v1.IListBackupsResponse | null | undefined, + protos.google.cloud.sql.v1.IBackup + >, + ): void; listBackups( - request?: protos.google.cloud.sql.v1.IListBackupsRequest, - optionsOrCallback?: CallOptions|PaginationCallback< - protos.google.cloud.sql.v1.IListBackupsRequest, - protos.google.cloud.sql.v1.IListBackupsResponse|null|undefined, - protos.google.cloud.sql.v1.IBackup>, - callback?: PaginationCallback< + request?: protos.google.cloud.sql.v1.IListBackupsRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< protos.google.cloud.sql.v1.IListBackupsRequest, - protos.google.cloud.sql.v1.IListBackupsResponse|null|undefined, - protos.google.cloud.sql.v1.IBackup>): - Promise<[ - protos.google.cloud.sql.v1.IBackup[], - protos.google.cloud.sql.v1.IListBackupsRequest|null, - protos.google.cloud.sql.v1.IListBackupsResponse - ]>|void { + protos.google.cloud.sql.v1.IListBackupsResponse | null | undefined, + protos.google.cloud.sql.v1.IBackup + >, + callback?: PaginationCallback< + protos.google.cloud.sql.v1.IListBackupsRequest, + protos.google.cloud.sql.v1.IListBackupsResponse | null | undefined, + protos.google.cloud.sql.v1.IBackup + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IBackup[], + protos.google.cloud.sql.v1.IListBackupsRequest | null, + protos.google.cloud.sql.v1.IListBackupsResponse, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'parent': request.parent ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); - const wrappedCallback: PaginationCallback< - protos.google.cloud.sql.v1.IListBackupsRequest, - protos.google.cloud.sql.v1.IListBackupsResponse|null|undefined, - protos.google.cloud.sql.v1.IBackup>|undefined = callback + const wrappedCallback: + | PaginationCallback< + protos.google.cloud.sql.v1.IListBackupsRequest, + protos.google.cloud.sql.v1.IListBackupsResponse | null | undefined, + protos.google.cloud.sql.v1.IBackup + > + | undefined = callback ? (error, values, nextPageRequest, rawResponse) => { this._log.info('listBackups values %j', values); callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. @@ -837,137 +1026,142 @@ export class SqlBackupsServiceClient { this._log.info('listBackups request %j', request); return this.innerApiCalls .listBackups(request, options, wrappedCallback) - ?.then(([response, input, output]: [ - protos.google.cloud.sql.v1.IBackup[], - protos.google.cloud.sql.v1.IListBackupsRequest|null, - protos.google.cloud.sql.v1.IListBackupsResponse - ]) => { - this._log.info('listBackups values %j', response); - return [response, input, output]; - }); + ?.then( + ([response, input, output]: [ + protos.google.cloud.sql.v1.IBackup[], + protos.google.cloud.sql.v1.IListBackupsRequest | null, + protos.google.cloud.sql.v1.IListBackupsResponse, + ]) => { + this._log.info('listBackups values %j', response); + return [response, input, output]; + }, + ); } -/** - * Equivalent to `listBackups`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent that owns this collection of backups. - * Format: projects/{project} - * @param {number} request.pageSize - * The maximum number of backups to return per response. The service might - * return fewer backups than this value. If a value for this parameter isn't - * specified, then, at most, 500 backups are returned. The maximum value is - * 2,000. Any values that you set, which are greater than 2,000, are changed - * to 2,000. - * @param {string} request.pageToken - * A page token, received from a previous `ListBackups` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListBackups` must match - * the call that provided the page token. - * @param {string} request.filter - * Multiple filter queries are separated by spaces. For example, - * 'instance:abc AND type:FINAL, 'location:us', - * 'backupInterval.startTime>=1950-01-01T01:01:25.771Z'. You can filter by - * type, instance, backupInterval.startTime (creation time), or location. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Stream} - * An object stream which emits an object representing {@link protos.google.cloud.sql.v1.Backup|Backup} on 'data' event. - * The client library will perform auto-pagination by default: it will call the API as many - * times as needed. Note that it can affect your quota. - * We recommend using `listBackupsAsync()` - * method described below for async iteration which you can stop as needed. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } - * for more details and examples. - */ + /** + * Equivalent to `listBackups`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent that owns this collection of backups. + * Format: projects/{project} + * @param {number} request.pageSize + * The maximum number of backups to return per response. The service might + * return fewer backups than this value. If a value for this parameter isn't + * specified, then, at most, 500 backups are returned. The maximum value is + * 2,000. Any values that you set, which are greater than 2,000, are changed + * to 2,000. + * @param {string} request.pageToken + * A page token, received from a previous `ListBackups` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListBackups` must match + * the call that provided the page token. + * @param {string} request.filter + * Multiple filter queries are separated by spaces. For example, + * 'instance:abc AND type:FINAL, 'location:us', + * 'backupInterval.startTime>=1950-01-01T01:01:25.771Z'. You can filter by + * type, instance, backupInterval.startTime (creation time), or location. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Stream} + * An object stream which emits an object representing {@link protos.google.cloud.sql.v1.Backup|Backup} on 'data' event. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed. Note that it can affect your quota. + * We recommend using `listBackupsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + */ listBackupsStream( - request?: protos.google.cloud.sql.v1.IListBackupsRequest, - options?: CallOptions): - Transform{ + request?: protos.google.cloud.sql.v1.IListBackupsRequest, + options?: CallOptions, + ): Transform { request = request || {}; options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'parent': request.parent ?? '', - }); + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); const defaultCallSettings = this._defaults['listBackups']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listBackups stream %j', request); return this.descriptors.page.listBackups.createStream( this.innerApiCalls.listBackups as GaxCall, request, - callSettings + callSettings, ); } -/** - * Equivalent to `listBackups`, but returns an iterable object. - * - * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent that owns this collection of backups. - * Format: projects/{project} - * @param {number} request.pageSize - * The maximum number of backups to return per response. The service might - * return fewer backups than this value. If a value for this parameter isn't - * specified, then, at most, 500 backups are returned. The maximum value is - * 2,000. Any values that you set, which are greater than 2,000, are changed - * to 2,000. - * @param {string} request.pageToken - * A page token, received from a previous `ListBackups` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListBackups` must match - * the call that provided the page token. - * @param {string} request.filter - * Multiple filter queries are separated by spaces. For example, - * 'instance:abc AND type:FINAL, 'location:us', - * 'backupInterval.startTime>=1950-01-01T01:01:25.771Z'. You can filter by - * type, instance, backupInterval.startTime (creation time), or location. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Object} - * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. - * When you iterate the returned iterable, each element will be an object representing - * {@link protos.google.cloud.sql.v1.Backup|Backup}. The API will be called under the hood as needed, once per the page, - * so you can stop the iteration when you don't need more results. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_backups_service.list_backups.js - * region_tag:sqladmin_v1_generated_SqlBackupsService_ListBackups_async - */ + /** + * Equivalent to `listBackups`, but returns an iterable object. + * + * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent that owns this collection of backups. + * Format: projects/{project} + * @param {number} request.pageSize + * The maximum number of backups to return per response. The service might + * return fewer backups than this value. If a value for this parameter isn't + * specified, then, at most, 500 backups are returned. The maximum value is + * 2,000. Any values that you set, which are greater than 2,000, are changed + * to 2,000. + * @param {string} request.pageToken + * A page token, received from a previous `ListBackups` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListBackups` must match + * the call that provided the page token. + * @param {string} request.filter + * Multiple filter queries are separated by spaces. For example, + * 'instance:abc AND type:FINAL, 'location:us', + * 'backupInterval.startTime>=1950-01-01T01:01:25.771Z'. You can filter by + * type, instance, backupInterval.startTime (creation time), or location. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Object} + * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. + * When you iterate the returned iterable, each element will be an object representing + * {@link protos.google.cloud.sql.v1.Backup|Backup}. The API will be called under the hood as needed, once per the page, + * so you can stop the iteration when you don't need more results. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_backups_service.list_backups.js + * region_tag:sqladmin_v1_generated_SqlBackupsService_ListBackups_async + */ listBackupsAsync( - request?: protos.google.cloud.sql.v1.IListBackupsRequest, - options?: CallOptions): - AsyncIterable{ + request?: protos.google.cloud.sql.v1.IListBackupsRequest, + options?: CallOptions, + ): AsyncIterable { request = request || {}; options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'parent': request.parent ?? '', - }); + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); const defaultCallSettings = this._defaults['listBackups']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listBackups iterate %j', request); return this.descriptors.page.listBackups.asyncIterate( this.innerApiCalls['listBackups'] as GaxCall, request as {}, - callSettings + callSettings, ) as AsyncIterable; } -/** + + /** * Gets information about a location. * * @param {Object} request @@ -1002,12 +1196,11 @@ export class SqlBackupsServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -1040,7 +1233,7 @@ export class SqlBackupsServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -1056,7 +1249,7 @@ export class SqlBackupsServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -1091,7 +1284,7 @@ export class SqlBackupsServiceClient { * @param {string} project * @returns {string} Resource name string. */ - projectPath(project:string) { + projectPath(project: string) { return this.pathTemplates.projectPathTemplate.render({ project: project, }); @@ -1116,13 +1309,15 @@ export class SqlBackupsServiceClient { */ close(): Promise { if (this.sqlBackupsServiceStub && !this._terminated) { - return this.sqlBackupsServiceStub.then(stub => { + return this.sqlBackupsServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1/sql_connect_service_client.ts b/packages/google-cloud-sql/src/v1/sql_connect_service_client.ts index 6c84fc9a128..55bcc54b96a 100644 --- a/packages/google-cloud-sql/src/v1/sql_connect_service_client.ts +++ b/packages/google-cloud-sql/src/v1/sql_connect_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -44,7 +51,7 @@ export class SqlConnectServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -57,10 +64,10 @@ export class SqlConnectServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlConnectServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlConnectServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlConnectServiceClient. @@ -101,21 +108,42 @@ export class SqlConnectServiceClient { * const client = new SqlConnectServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlConnectServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -140,7 +168,7 @@ export class SqlConnectServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -154,15 +182,11 @@ export class SqlConnectServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -184,14 +208,17 @@ export class SqlConnectServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1.SqlConnectService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1.SqlConnectService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -222,36 +249,43 @@ export class SqlConnectServiceClient { // Put together the "service stub" for // google.cloud.sql.v1.SqlConnectService. this.sqlConnectServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1.SqlConnectService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1.SqlConnectService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1.SqlConnectService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlConnectServiceStubMethods = - ['getConnectSettings', 'generateEphemeralCert']; + const sqlConnectServiceStubMethods = [ + 'getConnectSettings', + 'generateEphemeralCert', + ]; for (const methodName of sqlConnectServiceStubMethods) { const callPromise = this.sqlConnectServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -266,8 +300,14 @@ export class SqlConnectServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -278,8 +318,14 @@ export class SqlConnectServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -312,7 +358,7 @@ export class SqlConnectServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -322,8 +368,9 @@ export class SqlConnectServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -334,217 +381,291 @@ export class SqlConnectServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Retrieves connect settings about a Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.protobuf.Timestamp} [request.readTime] - * Optional. Optional snapshot read timestamp to trade freshness for - * performance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.ConnectSettings|ConnectSettings}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_connect_service.get_connect_settings.js - * region_tag:sqladmin_v1_generated_SqlConnectService_GetConnectSettings_async - */ + /** + * Retrieves connect settings about a Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.protobuf.Timestamp} [request.readTime] + * Optional. Optional snapshot read timestamp to trade freshness for + * performance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.ConnectSettings|ConnectSettings}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_connect_service.get_connect_settings.js + * region_tag:sqladmin_v1_generated_SqlConnectService_GetConnectSettings_async + */ getConnectSettings( - request?: protos.google.cloud.sql.v1.IGetConnectSettingsRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IConnectSettings, - protos.google.cloud.sql.v1.IGetConnectSettingsRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.IGetConnectSettingsRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IConnectSettings, + protos.google.cloud.sql.v1.IGetConnectSettingsRequest | undefined, + {} | undefined, + ] + >; getConnectSettings( - request: protos.google.cloud.sql.v1.IGetConnectSettingsRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IConnectSettings, - protos.google.cloud.sql.v1.IGetConnectSettingsRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.IGetConnectSettingsRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IConnectSettings, + protos.google.cloud.sql.v1.IGetConnectSettingsRequest | null | undefined, + {} | null | undefined + >, + ): void; getConnectSettings( - request: protos.google.cloud.sql.v1.IGetConnectSettingsRequest, - callback: Callback< - protos.google.cloud.sql.v1.IConnectSettings, - protos.google.cloud.sql.v1.IGetConnectSettingsRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.IGetConnectSettingsRequest, + callback: Callback< + protos.google.cloud.sql.v1.IConnectSettings, + protos.google.cloud.sql.v1.IGetConnectSettingsRequest | null | undefined, + {} | null | undefined + >, + ): void; getConnectSettings( - request?: protos.google.cloud.sql.v1.IGetConnectSettingsRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IConnectSettings, - protos.google.cloud.sql.v1.IGetConnectSettingsRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.IGetConnectSettingsRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IConnectSettings, - protos.google.cloud.sql.v1.IGetConnectSettingsRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IConnectSettings, - protos.google.cloud.sql.v1.IGetConnectSettingsRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.IGetConnectSettingsRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IConnectSettings, + protos.google.cloud.sql.v1.IGetConnectSettingsRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IConnectSettings, + protos.google.cloud.sql.v1.IGetConnectSettingsRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('getConnectSettings request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IConnectSettings, - protos.google.cloud.sql.v1.IGetConnectSettingsRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IConnectSettings, + | protos.google.cloud.sql.v1.IGetConnectSettingsRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getConnectSettings response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getConnectSettings(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IConnectSettings, - protos.google.cloud.sql.v1.IGetConnectSettingsRequest|undefined, - {}|undefined - ]) => { - this._log.info('getConnectSettings response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getConnectSettings(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IConnectSettings, + protos.google.cloud.sql.v1.IGetConnectSettingsRequest | undefined, + {} | undefined, + ]) => { + this._log.info('getConnectSettings response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Generates a short-lived X509 certificate containing the provided public key - * and signed by a private key specific to the target instance. Users may use - * the certificate to authenticate as themselves when connecting to the - * database. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {string} request.publicKey - * PEM encoded public key to include in the signed certificate. - * @param {string} [request.accessToken] - * Optional. Access token to include in the signed certificate. - * @param {google.protobuf.Timestamp} [request.readTime] - * Optional. Optional snapshot read timestamp to trade freshness for - * performance. - * @param {google.protobuf.Duration} [request.validDuration] - * Optional. If set, it will contain the cert valid duration. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.GenerateEphemeralCertResponse|GenerateEphemeralCertResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_connect_service.generate_ephemeral_cert.js - * region_tag:sqladmin_v1_generated_SqlConnectService_GenerateEphemeralCert_async - */ + /** + * Generates a short-lived X509 certificate containing the provided public key + * and signed by a private key specific to the target instance. Users may use + * the certificate to authenticate as themselves when connecting to the + * database. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {string} request.publicKey + * PEM encoded public key to include in the signed certificate. + * @param {string} [request.accessToken] + * Optional. Access token to include in the signed certificate. + * @param {google.protobuf.Timestamp} [request.readTime] + * Optional. Optional snapshot read timestamp to trade freshness for + * performance. + * @param {google.protobuf.Duration} [request.validDuration] + * Optional. If set, it will contain the cert valid duration. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.GenerateEphemeralCertResponse|GenerateEphemeralCertResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_connect_service.generate_ephemeral_cert.js + * region_tag:sqladmin_v1_generated_SqlConnectService_GenerateEphemeralCert_async + */ generateEphemeralCert( - request?: protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IGenerateEphemeralCertResponse, - protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IGenerateEphemeralCertResponse, + protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest | undefined, + {} | undefined, + ] + >; generateEphemeralCert( - request: protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IGenerateEphemeralCertResponse, - protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IGenerateEphemeralCertResponse, + | protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + >, + ): void; generateEphemeralCert( - request: protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest, - callback: Callback< - protos.google.cloud.sql.v1.IGenerateEphemeralCertResponse, - protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest, + callback: Callback< + protos.google.cloud.sql.v1.IGenerateEphemeralCertResponse, + | protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + >, + ): void; generateEphemeralCert( - request?: protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IGenerateEphemeralCertResponse, - protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IGenerateEphemeralCertResponse, - protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IGenerateEphemeralCertResponse, - protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IGenerateEphemeralCertResponse, + | protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IGenerateEphemeralCertResponse, + protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('generateEphemeralCert request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IGenerateEphemeralCertResponse, - protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IGenerateEphemeralCertResponse, + | protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('generateEphemeralCert response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.generateEphemeralCert(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IGenerateEphemeralCertResponse, - protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest|undefined, - {}|undefined - ]) => { - this._log.info('generateEphemeralCert response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .generateEphemeralCert(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IGenerateEphemeralCertResponse, + protos.google.cloud.sql.v1.IGenerateEphemeralCertRequest | undefined, + {} | undefined, + ]) => { + this._log.info('generateEphemeralCert response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -579,12 +700,11 @@ export class SqlConnectServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -617,7 +737,7 @@ export class SqlConnectServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -633,7 +753,7 @@ export class SqlConnectServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -670,13 +790,15 @@ export class SqlConnectServiceClient { */ close(): Promise { if (this.sqlConnectServiceStub && !this._terminated) { - return this.sqlConnectServiceStub.then(stub => { + return this.sqlConnectServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1/sql_databases_service_client.ts b/packages/google-cloud-sql/src/v1/sql_databases_service_client.ts index 999cef663be..6b679b46644 100644 --- a/packages/google-cloud-sql/src/v1/sql_databases_service_client.ts +++ b/packages/google-cloud-sql/src/v1/sql_databases_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -44,7 +51,7 @@ export class SqlDatabasesServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -57,10 +64,10 @@ export class SqlDatabasesServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlDatabasesServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlDatabasesServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlDatabasesServiceClient. @@ -101,21 +108,42 @@ export class SqlDatabasesServiceClient { * const client = new SqlDatabasesServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlDatabasesServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -140,7 +168,7 @@ export class SqlDatabasesServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -154,15 +182,11 @@ export class SqlDatabasesServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -184,14 +208,17 @@ export class SqlDatabasesServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1.SqlDatabasesService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1.SqlDatabasesService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -222,36 +249,47 @@ export class SqlDatabasesServiceClient { // Put together the "service stub" for // google.cloud.sql.v1.SqlDatabasesService. this.sqlDatabasesServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1.SqlDatabasesService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1.SqlDatabasesService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1.SqlDatabasesService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlDatabasesServiceStubMethods = - ['delete', 'get', 'insert', 'list', 'patch', 'update']; + const sqlDatabasesServiceStubMethods = [ + 'delete', + 'get', + 'insert', + 'list', + 'patch', + 'update', + ]; for (const methodName of sqlDatabasesServiceStubMethods) { const callPromise = this.sqlDatabasesServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -266,8 +304,14 @@ export class SqlDatabasesServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -278,8 +322,14 @@ export class SqlDatabasesServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -312,7 +362,7 @@ export class SqlDatabasesServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -322,8 +372,9 @@ export class SqlDatabasesServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -334,611 +385,811 @@ export class SqlDatabasesServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Deletes a database from a Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.database - * Name of the database to be deleted in the instance. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_databases_service.delete.js - * region_tag:sqladmin_v1_generated_SqlDatabasesService_Delete_async - */ + /** + * Deletes a database from a Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.database + * Name of the database to be deleted in the instance. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_databases_service.delete.js + * region_tag:sqladmin_v1_generated_SqlDatabasesService_Delete_async + */ delete( - request?: protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest | undefined, + {} | undefined, + ] + >; delete( - request: protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest | null | undefined, + {} | null | undefined + >, + ): void; delete( - request: protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest | null | undefined, + {} | null | undefined + >, + ): void; delete( - request?: protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'database': request.database ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + database: request.database ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('delete request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('delete response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.delete(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest|undefined, - {}|undefined - ]) => { - this._log.info('delete response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .delete(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesDeleteRequest | undefined, + {} | undefined, + ]) => { + this._log.info('delete response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Retrieves a resource containing information about a database inside a Cloud - * SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.database - * Name of the database in the instance. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Database|Database}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_databases_service.get.js - * region_tag:sqladmin_v1_generated_SqlDatabasesService_Get_async - */ + /** + * Retrieves a resource containing information about a database inside a Cloud + * SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.database + * Name of the database in the instance. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Database|Database}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_databases_service.get.js + * region_tag:sqladmin_v1_generated_SqlDatabasesService_Get_async + */ get( - request?: protos.google.cloud.sql.v1.ISqlDatabasesGetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IDatabase, - protos.google.cloud.sql.v1.ISqlDatabasesGetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlDatabasesGetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IDatabase, + protos.google.cloud.sql.v1.ISqlDatabasesGetRequest | undefined, + {} | undefined, + ] + >; get( - request: protos.google.cloud.sql.v1.ISqlDatabasesGetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IDatabase, - protos.google.cloud.sql.v1.ISqlDatabasesGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlDatabasesGetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IDatabase, + protos.google.cloud.sql.v1.ISqlDatabasesGetRequest | null | undefined, + {} | null | undefined + >, + ): void; get( - request: protos.google.cloud.sql.v1.ISqlDatabasesGetRequest, - callback: Callback< - protos.google.cloud.sql.v1.IDatabase, - protos.google.cloud.sql.v1.ISqlDatabasesGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlDatabasesGetRequest, + callback: Callback< + protos.google.cloud.sql.v1.IDatabase, + protos.google.cloud.sql.v1.ISqlDatabasesGetRequest | null | undefined, + {} | null | undefined + >, + ): void; get( - request?: protos.google.cloud.sql.v1.ISqlDatabasesGetRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IDatabase, - protos.google.cloud.sql.v1.ISqlDatabasesGetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlDatabasesGetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IDatabase, - protos.google.cloud.sql.v1.ISqlDatabasesGetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IDatabase, - protos.google.cloud.sql.v1.ISqlDatabasesGetRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.sql.v1.ISqlDatabasesGetRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IDatabase, + protos.google.cloud.sql.v1.ISqlDatabasesGetRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IDatabase, + protos.google.cloud.sql.v1.ISqlDatabasesGetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'database': request.database ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + database: request.database ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('get request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IDatabase, - protos.google.cloud.sql.v1.ISqlDatabasesGetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IDatabase, + protos.google.cloud.sql.v1.ISqlDatabasesGetRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('get response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.get(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IDatabase, - protos.google.cloud.sql.v1.ISqlDatabasesGetRequest|undefined, - {}|undefined - ]) => { - this._log.info('get response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .get(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IDatabase, + protos.google.cloud.sql.v1.ISqlDatabasesGetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('get response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Inserts a resource containing information about a database inside a Cloud - * SQL instance. - * - * **Note:** You can't modify the default character set and collation. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1.Database} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_databases_service.insert.js - * region_tag:sqladmin_v1_generated_SqlDatabasesService_Insert_async - */ + /** + * Inserts a resource containing information about a database inside a Cloud + * SQL instance. + * + * **Note:** You can't modify the default character set and collation. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1.Database} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_databases_service.insert.js + * region_tag:sqladmin_v1_generated_SqlDatabasesService_Insert_async + */ insert( - request?: protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest | undefined, + {} | undefined, + ] + >; insert( - request: protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest | null | undefined, + {} | null | undefined + >, + ): void; insert( - request: protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest | null | undefined, + {} | null | undefined + >, + ): void; insert( - request?: protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('insert request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('insert response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.insert(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest|undefined, - {}|undefined - ]) => { - this._log.info('insert response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .insert(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesInsertRequest | undefined, + {} | undefined, + ]) => { + this._log.info('insert response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists databases in the specified Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.DatabasesListResponse|DatabasesListResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_databases_service.list.js - * region_tag:sqladmin_v1_generated_SqlDatabasesService_List_async - */ + /** + * Lists databases in the specified Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.DatabasesListResponse|DatabasesListResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_databases_service.list.js + * region_tag:sqladmin_v1_generated_SqlDatabasesService_List_async + */ list( - request?: protos.google.cloud.sql.v1.ISqlDatabasesListRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IDatabasesListResponse, - protos.google.cloud.sql.v1.ISqlDatabasesListRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlDatabasesListRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IDatabasesListResponse, + protos.google.cloud.sql.v1.ISqlDatabasesListRequest | undefined, + {} | undefined, + ] + >; list( - request: protos.google.cloud.sql.v1.ISqlDatabasesListRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IDatabasesListResponse, - protos.google.cloud.sql.v1.ISqlDatabasesListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlDatabasesListRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IDatabasesListResponse, + protos.google.cloud.sql.v1.ISqlDatabasesListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request: protos.google.cloud.sql.v1.ISqlDatabasesListRequest, - callback: Callback< - protos.google.cloud.sql.v1.IDatabasesListResponse, - protos.google.cloud.sql.v1.ISqlDatabasesListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlDatabasesListRequest, + callback: Callback< + protos.google.cloud.sql.v1.IDatabasesListResponse, + protos.google.cloud.sql.v1.ISqlDatabasesListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request?: protos.google.cloud.sql.v1.ISqlDatabasesListRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IDatabasesListResponse, - protos.google.cloud.sql.v1.ISqlDatabasesListRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlDatabasesListRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IDatabasesListResponse, - protos.google.cloud.sql.v1.ISqlDatabasesListRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IDatabasesListResponse, - protos.google.cloud.sql.v1.ISqlDatabasesListRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlDatabasesListRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IDatabasesListResponse, + protos.google.cloud.sql.v1.ISqlDatabasesListRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IDatabasesListResponse, + protos.google.cloud.sql.v1.ISqlDatabasesListRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('list request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IDatabasesListResponse, - protos.google.cloud.sql.v1.ISqlDatabasesListRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IDatabasesListResponse, + | protos.google.cloud.sql.v1.ISqlDatabasesListRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('list response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.list(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IDatabasesListResponse, - protos.google.cloud.sql.v1.ISqlDatabasesListRequest|undefined, - {}|undefined - ]) => { - this._log.info('list response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .list(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IDatabasesListResponse, + protos.google.cloud.sql.v1.ISqlDatabasesListRequest | undefined, + {} | undefined, + ]) => { + this._log.info('list response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Partially updates a resource containing information about a database inside - * a Cloud SQL instance. This method supports patch semantics. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.database - * Name of the database to be updated in the instance. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1.Database} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_databases_service.patch.js - * region_tag:sqladmin_v1_generated_SqlDatabasesService_Patch_async - */ + /** + * Partially updates a resource containing information about a database inside + * a Cloud SQL instance. This method supports patch semantics. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.database + * Name of the database to be updated in the instance. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1.Database} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_databases_service.patch.js + * region_tag:sqladmin_v1_generated_SqlDatabasesService_Patch_async + */ patch( - request?: protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest | undefined, + {} | undefined, + ] + >; patch( - request: protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest | null | undefined, + {} | null | undefined + >, + ): void; patch( - request: protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest | null | undefined, + {} | null | undefined + >, + ): void; patch( - request?: protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'database': request.database ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + database: request.database ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('patch request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('patch response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.patch(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest|undefined, - {}|undefined - ]) => { - this._log.info('patch response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .patch(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest | undefined, + {} | undefined, + ]) => { + this._log.info('patch response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Updates a resource containing information about a database inside a Cloud - * SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.database - * Name of the database to be updated in the instance. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1.Database} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_databases_service.update.js - * region_tag:sqladmin_v1_generated_SqlDatabasesService_Update_async - */ + /** + * Updates a resource containing information about a database inside a Cloud + * SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.database + * Name of the database to be updated in the instance. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1.Database} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_databases_service.update.js + * region_tag:sqladmin_v1_generated_SqlDatabasesService_Update_async + */ update( - request?: protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest | undefined, + {} | undefined, + ] + >; update( - request: protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest | null | undefined, + {} | null | undefined + >, + ): void; update( - request: protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest | null | undefined, + {} | null | undefined + >, + ): void; update( - request?: protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'database': request.database ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + database: request.database ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('update request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('update response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.update(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest|undefined, - {}|undefined - ]) => { - this._log.info('update response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .update(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlDatabasesUpdateRequest | undefined, + {} | undefined, + ]) => { + this._log.info('update response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -973,12 +1224,11 @@ export class SqlDatabasesServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -1011,7 +1261,7 @@ export class SqlDatabasesServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -1027,7 +1277,7 @@ export class SqlDatabasesServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -1064,13 +1314,15 @@ export class SqlDatabasesServiceClient { */ close(): Promise { if (this.sqlDatabasesServiceStub && !this._terminated) { - return this.sqlDatabasesServiceStub.then(stub => { + return this.sqlDatabasesServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1/sql_feature_eligibility_service_client.ts b/packages/google-cloud-sql/src/v1/sql_feature_eligibility_service_client.ts index 15082a1ebb7..55b053d0a12 100644 --- a/packages/google-cloud-sql/src/v1/sql_feature_eligibility_service_client.ts +++ b/packages/google-cloud-sql/src/v1/sql_feature_eligibility_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -44,7 +51,7 @@ export class SqlFeatureEligibilityServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -57,10 +64,10 @@ export class SqlFeatureEligibilityServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlFeatureEligibilityServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlFeatureEligibilityServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlFeatureEligibilityServiceClient. @@ -101,21 +108,43 @@ export class SqlFeatureEligibilityServiceClient { * const client = new SqlFeatureEligibilityServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. - const staticMembers = this.constructor as typeof SqlFeatureEligibilityServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + const staticMembers = this + .constructor as typeof SqlFeatureEligibilityServiceClient; + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -140,7 +169,7 @@ export class SqlFeatureEligibilityServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -154,15 +183,11 @@ export class SqlFeatureEligibilityServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -184,14 +209,17 @@ export class SqlFeatureEligibilityServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1.SqlFeatureEligibilityService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1.SqlFeatureEligibilityService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -222,11 +250,16 @@ export class SqlFeatureEligibilityServiceClient { // Put together the "service stub" for // google.cloud.sql.v1.SqlFeatureEligibilityService. this.sqlFeatureEligibilityServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1.SqlFeatureEligibilityService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (this._protos as any).google.cloud.sql.v1.SqlFeatureEligibilityService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1.SqlFeatureEligibilityService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any + (this._protos as any).google.cloud.sql.v1 + .SqlFeatureEligibilityService, + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; return this.sqlFeatureEligibilityServiceStub; } @@ -237,8 +270,14 @@ export class SqlFeatureEligibilityServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -249,8 +288,14 @@ export class SqlFeatureEligibilityServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -290,8 +335,9 @@ export class SqlFeatureEligibilityServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -303,7 +349,7 @@ export class SqlFeatureEligibilityServiceClient { // -- Service calls -- // ------------------- -/** + /** * Gets information about a location. * * @param {Object} request @@ -338,12 +384,11 @@ export class SqlFeatureEligibilityServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -376,7 +421,7 @@ export class SqlFeatureEligibilityServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -392,7 +437,7 @@ export class SqlFeatureEligibilityServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -429,13 +474,15 @@ export class SqlFeatureEligibilityServiceClient { */ close(): Promise { if (this.sqlFeatureEligibilityServiceStub && !this._terminated) { - return this.sqlFeatureEligibilityServiceStub.then(stub => { + return this.sqlFeatureEligibilityServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1/sql_flags_service_client.ts b/packages/google-cloud-sql/src/v1/sql_flags_service_client.ts index deeadf3118b..b30f40542af 100644 --- a/packages/google-cloud-sql/src/v1/sql_flags_service_client.ts +++ b/packages/google-cloud-sql/src/v1/sql_flags_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -44,7 +51,7 @@ export class SqlFlagsServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -57,10 +64,10 @@ export class SqlFlagsServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlFlagsServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlFlagsServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlFlagsServiceClient. @@ -101,21 +108,42 @@ export class SqlFlagsServiceClient { * const client = new SqlFlagsServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlFlagsServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -140,7 +168,7 @@ export class SqlFlagsServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -154,15 +182,11 @@ export class SqlFlagsServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -184,14 +208,17 @@ export class SqlFlagsServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1.SqlFlagsService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1.SqlFlagsService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -222,36 +249,40 @@ export class SqlFlagsServiceClient { // Put together the "service stub" for // google.cloud.sql.v1.SqlFlagsService. this.sqlFlagsServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1.SqlFlagsService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1.SqlFlagsService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1.SqlFlagsService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlFlagsServiceStubMethods = - ['list']; + const sqlFlagsServiceStubMethods = ['list']; for (const methodName of sqlFlagsServiceStubMethods) { const callPromise = this.sqlFlagsServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -266,8 +297,14 @@ export class SqlFlagsServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -278,8 +315,14 @@ export class SqlFlagsServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -312,7 +355,7 @@ export class SqlFlagsServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -322,8 +365,9 @@ export class SqlFlagsServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -334,101 +378,132 @@ export class SqlFlagsServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Lists all available database flags for Cloud SQL instances. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.databaseVersion - * Database type and version you want to retrieve flags for. By default, this - * method returns flags for all database types and versions. - * @param {google.cloud.sql.v1.SqlFlagScope} [request.flagScope] - * Optional. Specify the scope of flags to be returned by SqlFlagsListService. - * Return list of database flags if unspecified. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.FlagsListResponse|FlagsListResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_flags_service.list.js - * region_tag:sqladmin_v1_generated_SqlFlagsService_List_async - */ + /** + * Lists all available database flags for Cloud SQL instances. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.databaseVersion + * Database type and version you want to retrieve flags for. By default, this + * method returns flags for all database types and versions. + * @param {google.cloud.sql.v1.SqlFlagScope} [request.flagScope] + * Optional. Specify the scope of flags to be returned by SqlFlagsListService. + * Return list of database flags if unspecified. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.FlagsListResponse|FlagsListResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_flags_service.list.js + * region_tag:sqladmin_v1_generated_SqlFlagsService_List_async + */ list( - request?: protos.google.cloud.sql.v1.ISqlFlagsListRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IFlagsListResponse, - protos.google.cloud.sql.v1.ISqlFlagsListRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlFlagsListRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IFlagsListResponse, + protos.google.cloud.sql.v1.ISqlFlagsListRequest | undefined, + {} | undefined, + ] + >; list( - request: protos.google.cloud.sql.v1.ISqlFlagsListRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IFlagsListResponse, - protos.google.cloud.sql.v1.ISqlFlagsListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlFlagsListRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IFlagsListResponse, + protos.google.cloud.sql.v1.ISqlFlagsListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request: protos.google.cloud.sql.v1.ISqlFlagsListRequest, - callback: Callback< - protos.google.cloud.sql.v1.IFlagsListResponse, - protos.google.cloud.sql.v1.ISqlFlagsListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlFlagsListRequest, + callback: Callback< + protos.google.cloud.sql.v1.IFlagsListResponse, + protos.google.cloud.sql.v1.ISqlFlagsListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request?: protos.google.cloud.sql.v1.ISqlFlagsListRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IFlagsListResponse, - protos.google.cloud.sql.v1.ISqlFlagsListRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlFlagsListRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IFlagsListResponse, - protos.google.cloud.sql.v1.ISqlFlagsListRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IFlagsListResponse, - protos.google.cloud.sql.v1.ISqlFlagsListRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.sql.v1.ISqlFlagsListRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IFlagsListResponse, + protos.google.cloud.sql.v1.ISqlFlagsListRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IFlagsListResponse, + protos.google.cloud.sql.v1.ISqlFlagsListRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('list request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IFlagsListResponse, - protos.google.cloud.sql.v1.ISqlFlagsListRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IFlagsListResponse, + protos.google.cloud.sql.v1.ISqlFlagsListRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('list response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.list(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IFlagsListResponse, - protos.google.cloud.sql.v1.ISqlFlagsListRequest|undefined, - {}|undefined - ]) => { - this._log.info('list response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .list(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IFlagsListResponse, + protos.google.cloud.sql.v1.ISqlFlagsListRequest | undefined, + {} | undefined, + ]) => { + this._log.info('list response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -463,12 +538,11 @@ export class SqlFlagsServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -501,7 +575,7 @@ export class SqlFlagsServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -517,7 +591,7 @@ export class SqlFlagsServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -554,13 +628,15 @@ export class SqlFlagsServiceClient { */ close(): Promise { if (this.sqlFlagsServiceStub && !this._terminated) { - return this.sqlFlagsServiceStub.then(stub => { + return this.sqlFlagsServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1/sql_instances_service_client.ts b/packages/google-cloud-sql/src/v1/sql_instances_service_client.ts index 754b0a26a55..e4e372e22cc 100644 --- a/packages/google-cloud-sql/src/v1/sql_instances_service_client.ts +++ b/packages/google-cloud-sql/src/v1/sql_instances_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -43,7 +50,7 @@ export class SqlInstancesServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -56,10 +63,10 @@ export class SqlInstancesServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlInstancesServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlInstancesServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlInstancesServiceClient. @@ -100,21 +107,42 @@ export class SqlInstancesServiceClient { * const client = new SqlInstancesServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlInstancesServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -139,7 +167,7 @@ export class SqlInstancesServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -153,15 +181,11 @@ export class SqlInstancesServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -183,17 +207,20 @@ export class SqlInstancesServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/backupVaults/{backupvault}/dataSources/{datasource}/backups/{backup}' + 'projects/{project}/locations/{location}/backupVaults/{backupvault}/dataSources/{datasource}/backups/{backup}', ), networkPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/global/networks/{network}' + 'projects/{project}/global/networks/{network}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1.SqlInstancesService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1.SqlInstancesService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -224,36 +251,84 @@ export class SqlInstancesServiceClient { // Put together the "service stub" for // google.cloud.sql.v1.SqlInstancesService. this.sqlInstancesServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1.SqlInstancesService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1.SqlInstancesService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1.SqlInstancesService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlInstancesServiceStubMethods = - ['addServerCa', 'addServerCertificate', 'addEntraIdCertificate', 'clone', 'delete', 'demoteMaster', 'demote', 'export', 'failover', 'reencrypt', 'get', 'import', 'insert', 'list', 'listServerCas', 'listServerCertificates', 'listEntraIdCertificates', 'patch', 'promoteReplica', 'switchover', 'resetSslConfig', 'restart', 'restoreBackup', 'rotateServerCa', 'rotateServerCertificate', 'rotateEntraIdCertificate', 'startReplica', 'stopReplica', 'truncateLog', 'update', 'createEphemeral', 'rescheduleMaintenance', 'verifyExternalSyncSettings', 'startExternalSync', 'performDiskShrink', 'getDiskShrinkConfig', 'resetReplicaSize', 'getLatestRecoveryTime', 'executeSql', 'acquireSsrsLease', 'releaseSsrsLease', 'preCheckMajorVersionUpgrade', 'pointInTimeRestore']; + const sqlInstancesServiceStubMethods = [ + 'addServerCa', + 'addServerCertificate', + 'addEntraIdCertificate', + 'clone', + 'delete', + 'demoteMaster', + 'demote', + 'export', + 'failover', + 'reencrypt', + 'get', + 'import', + 'insert', + 'list', + 'listServerCas', + 'listServerCertificates', + 'listEntraIdCertificates', + 'patch', + 'promoteReplica', + 'switchover', + 'resetSslConfig', + 'restart', + 'restoreBackup', + 'rotateServerCa', + 'rotateServerCertificate', + 'rotateEntraIdCertificate', + 'startReplica', + 'stopReplica', + 'truncateLog', + 'update', + 'createEphemeral', + 'rescheduleMaintenance', + 'verifyExternalSyncSettings', + 'startExternalSync', + 'performDiskShrink', + 'getDiskShrinkConfig', + 'resetReplicaSize', + 'getLatestRecoveryTime', + 'executeSql', + 'acquireSsrsLease', + 'releaseSsrsLease', + 'preCheckMajorVersionUpgrade', + 'pointInTimeRestore', + ]; for (const methodName of sqlInstancesServiceStubMethods) { const callPromise = this.sqlInstancesServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -268,8 +343,14 @@ export class SqlInstancesServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -280,8 +361,14 @@ export class SqlInstancesServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -314,7 +401,7 @@ export class SqlInstancesServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -324,8 +411,9 @@ export class SqlInstancesServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -336,4348 +424,6190 @@ export class SqlInstancesServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Adds a new trusted Certificate Authority (CA) version for the specified - * instance. Required to prepare for a certificate rotation. If a CA version - * was previously added but never used in a certificate rotation, this - * operation replaces that version. There cannot be more than one CA version - * waiting to be rotated in. For instances that have enabled Certificate - * Authority Service (CAS) based server CA, use AddServerCertificate to add a - * new server certificate. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.add_server_ca.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_AddServerCa_async - */ + /** + * Adds a new trusted Certificate Authority (CA) version for the specified + * instance. Required to prepare for a certificate rotation. If a CA version + * was previously added but never used in a certificate rotation, this + * operation replaces that version. There cannot be more than one CA version + * waiting to be rotated in. For instances that have enabled Certificate + * Authority Service (CAS) based server CA, use AddServerCertificate to add a + * new server certificate. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.add_server_ca.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_AddServerCa_async + */ addServerCa( - request?: protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest | undefined, + {} | undefined, + ] + >; addServerCa( - request: protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; addServerCa( - request: protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; addServerCa( - request?: protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('addServerCa request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('addServerCa response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.addServerCa(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest|undefined, - {}|undefined - ]) => { - this._log.info('addServerCa response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .addServerCa(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesAddServerCaRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('addServerCa response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Add a new trusted server certificate version for the specified instance - * using Certificate Authority Service (CAS) server CA. Required to prepare - * for a certificate rotation. If a server certificate version was previously - * added but never used in a certificate rotation, this operation replaces - * that version. There cannot be more than one certificate version waiting to - * be rotated in. For instances not using CAS server CA, use AddServerCa - * instead. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.add_server_certificate.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_AddServerCertificate_async - */ + /** + * Add a new trusted server certificate version for the specified instance + * using Certificate Authority Service (CAS) server CA. Required to prepare + * for a certificate rotation. If a server certificate version was previously + * added but never used in a certificate rotation, this operation replaces + * that version. There cannot be more than one certificate version waiting to + * be rotated in. For instances not using CAS server CA, use AddServerCa + * instead. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.add_server_certificate.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_AddServerCertificate_async + */ addServerCertificate( - request?: protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest + | undefined + ), + {} | undefined, + ] + >; addServerCertificate( - request: protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; addServerCertificate( - request: protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; addServerCertificate( - request?: protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('addServerCertificate request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('addServerCertificate response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.addServerCertificate(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest|undefined, - {}|undefined - ]) => { - this._log.info('addServerCertificate response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .addServerCertificate(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesAddServerCertificateRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('addServerCertificate response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Adds a new Entra ID certificate for the specified instance. If an Entra ID - * certificate was previously added but never used in a certificate rotation, - * this operation replaces that version. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Required. Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.add_entra_id_certificate.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_AddEntraIdCertificate_async - */ + /** + * Adds a new Entra ID certificate for the specified instance. If an Entra ID + * certificate was previously added but never used in a certificate rotation, + * this operation replaces that version. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Required. Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.add_entra_id_certificate.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_AddEntraIdCertificate_async + */ addEntraIdCertificate( - request?: protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest + | undefined + ), + {} | undefined, + ] + >; addEntraIdCertificate( - request: protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; addEntraIdCertificate( - request: protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; addEntraIdCertificate( - request?: protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('addEntraIdCertificate request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('addEntraIdCertificate response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.addEntraIdCertificate(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest|undefined, - {}|undefined - ]) => { - this._log.info('addEntraIdCertificate response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .addEntraIdCertificate(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesAddEntraIdCertificateRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('addEntraIdCertificate response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Creates a Cloud SQL instance as a clone of the source instance. Using this - * operation might cause your instance to restart. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. The ID of the Cloud SQL instance to be cloned (source). This does - * not include the project ID. - * @param {string} request.project - * Required. Project ID of the source as well as the clone Cloud SQL instance. - * @param {google.cloud.sql.v1.InstancesCloneRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.clone.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_Clone_async - */ + /** + * Creates a Cloud SQL instance as a clone of the source instance. Using this + * operation might cause your instance to restart. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. The ID of the Cloud SQL instance to be cloned (source). This does + * not include the project ID. + * @param {string} request.project + * Required. Project ID of the source Cloud SQL instance. + * @param {google.cloud.sql.v1.InstancesCloneRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.clone.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_Clone_async + */ clone( - request?: protos.google.cloud.sql.v1.ISqlInstancesCloneRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesCloneRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesCloneRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesCloneRequest | undefined, + {} | undefined, + ] + >; clone( - request: protos.google.cloud.sql.v1.ISqlInstancesCloneRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesCloneRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesCloneRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesCloneRequest | null | undefined, + {} | null | undefined + >, + ): void; clone( - request: protos.google.cloud.sql.v1.ISqlInstancesCloneRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesCloneRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesCloneRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesCloneRequest | null | undefined, + {} | null | undefined + >, + ): void; clone( - request?: protos.google.cloud.sql.v1.ISqlInstancesCloneRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesCloneRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesCloneRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesCloneRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesCloneRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesCloneRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesCloneRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesCloneRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('clone request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesCloneRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesCloneRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('clone response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.clone(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesCloneRequest|undefined, - {}|undefined - ]) => { - this._log.info('clone response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .clone(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesCloneRequest | undefined, + {} | undefined, + ]) => { + this._log.info('clone response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Deletes a Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance to be deleted. - * @param {boolean} request.enableFinalBackup - * Flag to opt-in for final backup. By default, it is turned off. - * @param {number} [request.finalBackupTtlDays] - * Optional. Retention period of the final backup. - * @param {google.protobuf.Timestamp} [request.finalBackupExpiryTime] - * Optional. Final Backup expiration time. - * Timestamp in UTC of when this resource is considered expired. - * @param {string} [request.finalBackupDescription] - * Optional. The description of the final backup. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.delete.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_Delete_async - */ + /** + * Deletes a Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance to be deleted. + * @param {boolean} request.enableFinalBackup + * Flag to opt-in for final backup. By default, it is turned off. + * @param {number} [request.finalBackupTtlDays] + * Optional. Retention period of the final backup. + * @param {google.protobuf.Timestamp} [request.finalBackupExpiryTime] + * Optional. Final Backup expiration time. + * Timestamp in UTC of when this resource is considered expired. + * @param {string} [request.finalBackupDescription] + * Optional. The description of the final backup. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.delete.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_Delete_async + */ delete( - request?: protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest | undefined, + {} | undefined, + ] + >; delete( - request: protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest | null | undefined, + {} | null | undefined + >, + ): void; delete( - request: protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest | null | undefined, + {} | null | undefined + >, + ): void; delete( - request?: protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('delete request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('delete response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.delete(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest|undefined, - {}|undefined - ]) => { - this._log.info('delete response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .delete(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesDeleteRequest | undefined, + {} | undefined, + ]) => { + this._log.info('delete response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Demotes the stand-alone instance to be a Cloud SQL read replica for an - * external database server. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance name. - * @param {string} request.project - * ID of the project that contains the instance. - * @param {google.cloud.sql.v1.InstancesDemoteMasterRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.demote_master.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_DemoteMaster_async - */ + /** + * Demotes the stand-alone instance to be a Cloud SQL read replica for an + * external database server. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance name. + * @param {string} request.project + * ID of the project that contains the instance. + * @param {google.cloud.sql.v1.InstancesDemoteMasterRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.demote_master.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_DemoteMaster_async + */ demoteMaster( - request?: protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest | undefined, + {} | undefined, + ] + >; demoteMaster( - request: protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest + | null + | undefined, + {} | null | undefined + >, + ): void; demoteMaster( - request: protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest + | null + | undefined, + {} | null | undefined + >, + ): void; demoteMaster( - request?: protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('demoteMaster request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('demoteMaster response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.demoteMaster(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest|undefined, - {}|undefined - ]) => { - this._log.info('demoteMaster response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .demoteMaster(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesDemoteMasterRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('demoteMaster response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Demotes an existing standalone instance to be a Cloud SQL read replica - * for an external database server. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Cloud SQL instance name. - * @param {string} request.project - * Required. ID of the project that contains the instance. - * @param {google.cloud.sql.v1.InstancesDemoteRequest} request.body - * Required. The request body. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.demote.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_Demote_async - */ - demote( - request?: protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest|undefined, {}|undefined - ]>; - demote( - request: protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest|null|undefined, - {}|null|undefined>): void; - demote( - request: protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest|null|undefined, - {}|null|undefined>): void; + /** + * Demotes an existing standalone instance to be a Cloud SQL read replica + * for an external database server. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Cloud SQL instance name. + * @param {string} request.project + * Required. ID of the project that contains the instance. + * @param {google.cloud.sql.v1.InstancesDemoteRequest} request.body + * Required. The request body. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.demote.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_Demote_async + */ demote( - request?: protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest | undefined, + {} | undefined, + ] + >; + demote( + request: protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest | null | undefined, + {} | null | undefined + >, + ): void; + demote( + request: protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest | null | undefined, + {} | null | undefined + >, + ): void; + demote( + request?: protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('demote request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('demote response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.demote(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest|undefined, - {}|undefined - ]) => { - this._log.info('demote response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .demote(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesDemoteRequest | undefined, + {} | undefined, + ]) => { + this._log.info('demote response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Exports data from a Cloud SQL instance to a Cloud Storage bucket as a SQL - * dump or CSV file. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance to be exported. - * @param {google.cloud.sql.v1.InstancesExportRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.export.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_Export_async - */ + /** + * Exports data from a Cloud SQL instance to a Cloud Storage bucket as a SQL + * dump or CSV file. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance to be exported. + * @param {google.cloud.sql.v1.InstancesExportRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.export.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_Export_async + */ export( - request?: protos.google.cloud.sql.v1.ISqlInstancesExportRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesExportRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesExportRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesExportRequest | undefined, + {} | undefined, + ] + >; export( - request: protos.google.cloud.sql.v1.ISqlInstancesExportRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesExportRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesExportRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesExportRequest | null | undefined, + {} | null | undefined + >, + ): void; export( - request: protos.google.cloud.sql.v1.ISqlInstancesExportRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesExportRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesExportRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesExportRequest | null | undefined, + {} | null | undefined + >, + ): void; export( - request?: protos.google.cloud.sql.v1.ISqlInstancesExportRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesExportRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesExportRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesExportRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesExportRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesExportRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesExportRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesExportRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('export request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesExportRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesExportRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('export response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.export(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesExportRequest|undefined, - {}|undefined - ]) => { - this._log.info('export response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .export(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesExportRequest | undefined, + {} | undefined, + ]) => { + this._log.info('export response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Initiates a manual failover of a high availability (HA) primary instance - * to a standby instance, which becomes the primary instance. Users are - * then rerouted to the new primary. For more information, see the - * [Overview of high - * availability](https://cloud.google.com/sql/docs/mysql/high-availability) - * page in the Cloud SQL documentation. - * If using Legacy HA (MySQL only), this causes the instance to failover to - * its failover replica instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * ID of the project that contains the read replica. - * @param {google.cloud.sql.v1.InstancesFailoverRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.failover.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_Failover_async - */ + /** + * Initiates a manual failover of a high availability (HA) primary instance + * to a standby instance, which becomes the primary instance. Users are + * then rerouted to the new primary. For more information, see the + * [Overview of high + * availability](https://cloud.google.com/sql/docs/mysql/high-availability) + * page in the Cloud SQL documentation. + * If using Legacy HA (MySQL only), this causes the instance to failover to + * its failover replica instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * ID of the project that contains the read replica. + * @param {google.cloud.sql.v1.InstancesFailoverRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.failover.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_Failover_async + */ failover( - request?: protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest | undefined, + {} | undefined, + ] + >; failover( - request: protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest + | null + | undefined, + {} | null | undefined + >, + ): void; failover( - request: protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest + | null + | undefined, + {} | null | undefined + >, + ): void; failover( - request?: protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('failover request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('failover response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.failover(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest|undefined, - {}|undefined - ]) => { - this._log.info('failover response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .failover(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesFailoverRequest | undefined, + {} | undefined, + ]) => { + this._log.info('failover response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Reencrypt CMEK instance with latest key version. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * ID of the project that contains the instance. - * @param {google.cloud.sql.v1.InstancesReencryptRequest} request.body - * Reencrypt body that users request - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.reencrypt.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_Reencrypt_async - */ + /** + * Reencrypt CMEK instance with latest key version. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * ID of the project that contains the instance. + * @param {google.cloud.sql.v1.InstancesReencryptRequest} request.body + * Reencrypt body that users request + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.reencrypt.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_Reencrypt_async + */ reencrypt( - request?: protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest | undefined, + {} | undefined, + ] + >; reencrypt( - request: protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest + | null + | undefined, + {} | null | undefined + >, + ): void; reencrypt( - request: protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest + | null + | undefined, + {} | null | undefined + >, + ): void; reencrypt( - request?: protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('reencrypt request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('reencrypt response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.reencrypt(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest|undefined, - {}|undefined - ]) => { - this._log.info('reencrypt response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .reencrypt(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesReencryptRequest | undefined, + {} | undefined, + ]) => { + this._log.info('reencrypt response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Retrieves a resource containing information about a Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Database instance ID. This does not include the project ID. - * @param {string} request.project - * Required. Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.DatabaseInstance|DatabaseInstance}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.get.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_Get_async - */ + /** + * Retrieves a resource containing information about a Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Database instance ID. This does not include the project ID. + * @param {string} request.project + * Required. Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.DatabaseInstance|DatabaseInstance}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.get.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_Get_async + */ get( - request?: protos.google.cloud.sql.v1.ISqlInstancesGetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IDatabaseInstance, - protos.google.cloud.sql.v1.ISqlInstancesGetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesGetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IDatabaseInstance, + protos.google.cloud.sql.v1.ISqlInstancesGetRequest | undefined, + {} | undefined, + ] + >; get( - request: protos.google.cloud.sql.v1.ISqlInstancesGetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IDatabaseInstance, - protos.google.cloud.sql.v1.ISqlInstancesGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesGetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IDatabaseInstance, + protos.google.cloud.sql.v1.ISqlInstancesGetRequest | null | undefined, + {} | null | undefined + >, + ): void; get( - request: protos.google.cloud.sql.v1.ISqlInstancesGetRequest, - callback: Callback< - protos.google.cloud.sql.v1.IDatabaseInstance, - protos.google.cloud.sql.v1.ISqlInstancesGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesGetRequest, + callback: Callback< + protos.google.cloud.sql.v1.IDatabaseInstance, + protos.google.cloud.sql.v1.ISqlInstancesGetRequest | null | undefined, + {} | null | undefined + >, + ): void; get( - request?: protos.google.cloud.sql.v1.ISqlInstancesGetRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IDatabaseInstance, - protos.google.cloud.sql.v1.ISqlInstancesGetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesGetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IDatabaseInstance, - protos.google.cloud.sql.v1.ISqlInstancesGetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IDatabaseInstance, - protos.google.cloud.sql.v1.ISqlInstancesGetRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.sql.v1.ISqlInstancesGetRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IDatabaseInstance, + protos.google.cloud.sql.v1.ISqlInstancesGetRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IDatabaseInstance, + protos.google.cloud.sql.v1.ISqlInstancesGetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('get request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IDatabaseInstance, - protos.google.cloud.sql.v1.ISqlInstancesGetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IDatabaseInstance, + protos.google.cloud.sql.v1.ISqlInstancesGetRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('get response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.get(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IDatabaseInstance, - protos.google.cloud.sql.v1.ISqlInstancesGetRequest|undefined, - {}|undefined - ]) => { - this._log.info('get response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .get(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IDatabaseInstance, + protos.google.cloud.sql.v1.ISqlInstancesGetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('get response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Imports data into a Cloud SQL instance from a SQL dump or CSV file in - * Cloud Storage. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1.InstancesImportRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.import.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_Import_async - */ + /** + * Imports data into a Cloud SQL instance from a SQL dump or CSV file in + * Cloud Storage. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1.InstancesImportRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.import.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_Import_async + */ import( - request?: protos.google.cloud.sql.v1.ISqlInstancesImportRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesImportRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesImportRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesImportRequest | undefined, + {} | undefined, + ] + >; import( - request: protos.google.cloud.sql.v1.ISqlInstancesImportRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesImportRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesImportRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesImportRequest | null | undefined, + {} | null | undefined + >, + ): void; import( - request: protos.google.cloud.sql.v1.ISqlInstancesImportRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesImportRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesImportRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesImportRequest | null | undefined, + {} | null | undefined + >, + ): void; import( - request?: protos.google.cloud.sql.v1.ISqlInstancesImportRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesImportRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesImportRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesImportRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesImportRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesImportRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesImportRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesImportRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('import request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesImportRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesImportRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('import response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.import(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesImportRequest|undefined, - {}|undefined - ]) => { - this._log.info('import response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .import(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesImportRequest | undefined, + {} | undefined, + ]) => { + this._log.info('import response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Creates a new Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.project - * Project ID of the project to which the newly created Cloud SQL instances - * should belong. - * @param {google.cloud.sql.v1.DatabaseInstance} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.insert.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_Insert_async - */ + /** + * Creates a new Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.project + * Project ID of the project to which the newly created Cloud SQL instances + * should belong. + * @param {google.cloud.sql.v1.DatabaseInstance} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.insert.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_Insert_async + */ insert( - request?: protos.google.cloud.sql.v1.ISqlInstancesInsertRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesInsertRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesInsertRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesInsertRequest | undefined, + {} | undefined, + ] + >; insert( - request: protos.google.cloud.sql.v1.ISqlInstancesInsertRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesInsertRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesInsertRequest | null | undefined, + {} | null | undefined + >, + ): void; insert( - request: protos.google.cloud.sql.v1.ISqlInstancesInsertRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesInsertRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesInsertRequest | null | undefined, + {} | null | undefined + >, + ): void; insert( - request?: protos.google.cloud.sql.v1.ISqlInstancesInsertRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesInsertRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesInsertRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesInsertRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesInsertRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesInsertRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesInsertRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesInsertRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('insert request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesInsertRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesInsertRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('insert response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.insert(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesInsertRequest|undefined, - {}|undefined - ]) => { - this._log.info('insert response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .insert(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesInsertRequest | undefined, + {} | undefined, + ]) => { + this._log.info('insert response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists instances under a given project. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.filter - * A filter expression that filters resources listed in the response. - * The expression is in the form of field:value. For example, - * 'instanceType:CLOUD_SQL_INSTANCE'. Fields can be nested as needed as per - * their JSON representation, such as 'settings.userLabels.auto_start:true'. - * - * Multiple filter queries are space-separated. For example. - * 'state:RUNNABLE instanceType:CLOUD_SQL_INSTANCE'. By default, each - * expression is an AND expression. However, you can include AND and OR - * expressions explicitly. - * @param {number} request.maxResults - * The maximum number of instances to return. The service may return fewer - * than this value. - * If unspecified, at most 500 instances are returned. - * The maximum value is 1000; values above 1000 are coerced to 1000. - * @param {string} request.pageToken - * A previously-returned page token representing part of the larger set of - * results to view. - * @param {string} request.project - * Project ID of the project for which to list Cloud SQL instances. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.InstancesListResponse|InstancesListResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.list.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_List_async - */ - list( - request?: protos.google.cloud.sql.v1.ISqlInstancesListRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IInstancesListResponse, - protos.google.cloud.sql.v1.ISqlInstancesListRequest|undefined, {}|undefined - ]>; - list( - request: protos.google.cloud.sql.v1.ISqlInstancesListRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IInstancesListResponse, - protos.google.cloud.sql.v1.ISqlInstancesListRequest|null|undefined, - {}|null|undefined>): void; + /** + * Lists instances under a given project. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.filter + * A filter expression that filters resources listed in the response. + * The expression is in the form of field:value. For example, + * 'instanceType:CLOUD_SQL_INSTANCE'. Fields can be nested as needed as per + * their JSON representation, such as 'settings.userLabels.auto_start:true'. + * + * Multiple filter queries are space-separated. For example. + * 'state:RUNNABLE instanceType:CLOUD_SQL_INSTANCE'. By default, each + * expression is an AND expression. However, you can include AND and OR + * expressions explicitly. + * @param {number} request.maxResults + * The maximum number of instances to return. The service may return fewer + * than this value. + * If unspecified, at most 500 instances are returned. + * The maximum value is 1000; values above 1000 are coerced to 1000. + * @param {string} request.pageToken + * A previously-returned page token representing part of the larger set of + * results to view. + * @param {string} request.project + * Project ID of the project for which to list Cloud SQL instances. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.InstancesListResponse|InstancesListResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.list.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_List_async + */ list( - request: protos.google.cloud.sql.v1.ISqlInstancesListRequest, - callback: Callback< - protos.google.cloud.sql.v1.IInstancesListResponse, - protos.google.cloud.sql.v1.ISqlInstancesListRequest|null|undefined, - {}|null|undefined>): void; + request?: protos.google.cloud.sql.v1.ISqlInstancesListRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IInstancesListResponse, + protos.google.cloud.sql.v1.ISqlInstancesListRequest | undefined, + {} | undefined, + ] + >; list( - request?: protos.google.cloud.sql.v1.ISqlInstancesListRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IInstancesListResponse, - protos.google.cloud.sql.v1.ISqlInstancesListRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request: protos.google.cloud.sql.v1.ISqlInstancesListRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IInstancesListResponse, + protos.google.cloud.sql.v1.ISqlInstancesListRequest | null | undefined, + {} | null | undefined + >, + ): void; + list( + request: protos.google.cloud.sql.v1.ISqlInstancesListRequest, + callback: Callback< + protos.google.cloud.sql.v1.IInstancesListResponse, + protos.google.cloud.sql.v1.ISqlInstancesListRequest | null | undefined, + {} | null | undefined + >, + ): void; + list( + request?: protos.google.cloud.sql.v1.ISqlInstancesListRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IInstancesListResponse, - protos.google.cloud.sql.v1.ISqlInstancesListRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IInstancesListResponse, - protos.google.cloud.sql.v1.ISqlInstancesListRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesListRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IInstancesListResponse, + protos.google.cloud.sql.v1.ISqlInstancesListRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IInstancesListResponse, + protos.google.cloud.sql.v1.ISqlInstancesListRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('list request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IInstancesListResponse, - protos.google.cloud.sql.v1.ISqlInstancesListRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IInstancesListResponse, + | protos.google.cloud.sql.v1.ISqlInstancesListRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('list response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.list(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IInstancesListResponse, - protos.google.cloud.sql.v1.ISqlInstancesListRequest|undefined, - {}|undefined - ]) => { - this._log.info('list response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .list(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IInstancesListResponse, + protos.google.cloud.sql.v1.ISqlInstancesListRequest | undefined, + {} | undefined, + ]) => { + this._log.info('list response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists all of the trusted Certificate Authorities (CAs) for the specified - * instance. There can be up to three CAs listed: the CA that was used to sign - * the certificate that is currently in use, a CA that has been added but not - * yet used to sign a certificate, and a CA used to sign a certificate that - * has previously rotated out. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.InstancesListServerCasResponse|InstancesListServerCasResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.list_server_cas.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_ListServerCas_async - */ + /** + * Lists all of the trusted Certificate Authorities (CAs) for the specified + * instance. There can be up to three CAs listed: the CA that was used to sign + * the certificate that is currently in use, a CA that has been added but not + * yet used to sign a certificate, and a CA used to sign a certificate that + * has previously rotated out. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.InstancesListServerCasResponse|InstancesListServerCasResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.list_server_cas.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_ListServerCas_async + */ listServerCas( - request?: protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IInstancesListServerCasResponse, - protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IInstancesListServerCasResponse, + protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest | undefined, + {} | undefined, + ] + >; listServerCas( - request: protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IInstancesListServerCasResponse, - protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IInstancesListServerCasResponse, + | protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest + | null + | undefined, + {} | null | undefined + >, + ): void; listServerCas( - request: protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest, - callback: Callback< - protos.google.cloud.sql.v1.IInstancesListServerCasResponse, - protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest, + callback: Callback< + protos.google.cloud.sql.v1.IInstancesListServerCasResponse, + | protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest + | null + | undefined, + {} | null | undefined + >, + ): void; listServerCas( - request?: protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IInstancesListServerCasResponse, - protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IInstancesListServerCasResponse, - protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IInstancesListServerCasResponse, - protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IInstancesListServerCasResponse, + | protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IInstancesListServerCasResponse, + protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('listServerCas request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IInstancesListServerCasResponse, - protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IInstancesListServerCasResponse, + | protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('listServerCas response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.listServerCas(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IInstancesListServerCasResponse, - protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest|undefined, - {}|undefined - ]) => { - this._log.info('listServerCas response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .listServerCas(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IInstancesListServerCasResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesListServerCasRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('listServerCas response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists all versions of server certificates and certificate authorities (CAs) - * for the specified instance. There can be up to three sets of certs listed: - * the certificate that is currently in use, a future that has been added but - * not yet used to sign a certificate, and a certificate that has been rotated - * out. For instances not using Certificate Authority Service (CAS) server CA, - * use ListServerCas instead. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Required. Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.InstancesListServerCertificatesResponse|InstancesListServerCertificatesResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.list_server_certificates.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_ListServerCertificates_async - */ + /** + * Lists all versions of server certificates and certificate authorities (CAs) + * for the specified instance. There can be up to three sets of certs listed: + * the certificate that is currently in use, a future that has been added but + * not yet used to sign a certificate, and a certificate that has been rotated + * out. For instances not using Certificate Authority Service (CAS) server CA, + * use ListServerCas instead. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Required. Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.InstancesListServerCertificatesResponse|InstancesListServerCertificatesResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.list_server_certificates.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_ListServerCertificates_async + */ listServerCertificates( - request?: protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IInstancesListServerCertificatesResponse, - protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IInstancesListServerCertificatesResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest + | undefined + ), + {} | undefined, + ] + >; listServerCertificates( - request: protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IInstancesListServerCertificatesResponse, - protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IInstancesListServerCertificatesResponse, + | protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest + | null + | undefined, + {} | null | undefined + >, + ): void; listServerCertificates( - request: protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest, - callback: Callback< - protos.google.cloud.sql.v1.IInstancesListServerCertificatesResponse, - protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest, + callback: Callback< + protos.google.cloud.sql.v1.IInstancesListServerCertificatesResponse, + | protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest + | null + | undefined, + {} | null | undefined + >, + ): void; listServerCertificates( - request?: protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IInstancesListServerCertificatesResponse, - protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IInstancesListServerCertificatesResponse, - protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IInstancesListServerCertificatesResponse, - protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IInstancesListServerCertificatesResponse, + | protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IInstancesListServerCertificatesResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('listServerCertificates request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IInstancesListServerCertificatesResponse, - protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IInstancesListServerCertificatesResponse, + | protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('listServerCertificates response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.listServerCertificates(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IInstancesListServerCertificatesResponse, - protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest|undefined, - {}|undefined - ]) => { - this._log.info('listServerCertificates response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .listServerCertificates(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IInstancesListServerCertificatesResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesListServerCertificatesRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('listServerCertificates response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists all versions of EntraID certificates for the specified instance. - * There can be up to three sets of certificates listed: the certificate that - * is currently in use, a future that has been added but not yet used to sign - * a certificate, and a certificate that has been rotated out. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Required. Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.InstancesListEntraIdCertificatesResponse|InstancesListEntraIdCertificatesResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.list_entra_id_certificates.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_ListEntraIdCertificates_async - */ + /** + * Lists all versions of EntraID certificates for the specified instance. + * There can be up to three sets of certificates listed: the certificate that + * is currently in use, a future that has been added but not yet used to sign + * a certificate, and a certificate that has been rotated out. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Required. Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.InstancesListEntraIdCertificatesResponse|InstancesListEntraIdCertificatesResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.list_entra_id_certificates.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_ListEntraIdCertificates_async + */ listEntraIdCertificates( - request?: protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IInstancesListEntraIdCertificatesResponse, - protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IInstancesListEntraIdCertificatesResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest + | undefined + ), + {} | undefined, + ] + >; listEntraIdCertificates( - request: protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IInstancesListEntraIdCertificatesResponse, - protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IInstancesListEntraIdCertificatesResponse, + | protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest + | null + | undefined, + {} | null | undefined + >, + ): void; listEntraIdCertificates( - request: protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest, - callback: Callback< - protos.google.cloud.sql.v1.IInstancesListEntraIdCertificatesResponse, - protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest, + callback: Callback< + protos.google.cloud.sql.v1.IInstancesListEntraIdCertificatesResponse, + | protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest + | null + | undefined, + {} | null | undefined + >, + ): void; listEntraIdCertificates( - request?: protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IInstancesListEntraIdCertificatesResponse, - protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IInstancesListEntraIdCertificatesResponse, - protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IInstancesListEntraIdCertificatesResponse, - protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IInstancesListEntraIdCertificatesResponse, + | protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IInstancesListEntraIdCertificatesResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('listEntraIdCertificates request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IInstancesListEntraIdCertificatesResponse, - protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IInstancesListEntraIdCertificatesResponse, + | protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('listEntraIdCertificates response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.listEntraIdCertificates(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IInstancesListEntraIdCertificatesResponse, - protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest|undefined, - {}|undefined - ]) => { - this._log.info('listEntraIdCertificates response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .listEntraIdCertificates(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IInstancesListEntraIdCertificatesResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesListEntraIdCertificatesRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('listEntraIdCertificates response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Partially updates settings of a Cloud SQL instance by merging the request - * with the current configuration. This method supports patch semantics. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1.DatabaseInstance} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.patch.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_Patch_async - */ + /** + * Partially updates settings of a Cloud SQL instance by merging the request + * with the current configuration. This method supports patch semantics. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1.DatabaseInstance} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.patch.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_Patch_async + */ patch( - request?: protos.google.cloud.sql.v1.ISqlInstancesPatchRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPatchRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesPatchRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesPatchRequest | undefined, + {} | undefined, + ] + >; patch( - request: protos.google.cloud.sql.v1.ISqlInstancesPatchRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPatchRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesPatchRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesPatchRequest | null | undefined, + {} | null | undefined + >, + ): void; patch( - request: protos.google.cloud.sql.v1.ISqlInstancesPatchRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPatchRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesPatchRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesPatchRequest | null | undefined, + {} | null | undefined + >, + ): void; patch( - request?: protos.google.cloud.sql.v1.ISqlInstancesPatchRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPatchRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesPatchRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPatchRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPatchRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesPatchRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesPatchRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesPatchRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('patch request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPatchRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesPatchRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('patch response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.patch(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPatchRequest|undefined, - {}|undefined - ]) => { - this._log.info('patch response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .patch(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesPatchRequest | undefined, + {} | undefined, + ]) => { + this._log.info('patch response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Promotes the read replica instance to be an independent Cloud SQL - * primary instance. - * Using this operation might cause your instance to restart. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL read replica instance name. - * @param {string} request.project - * ID of the project that contains the read replica. - * @param {boolean} request.failover - * Set to true to invoke a replica failover to the DR - * replica. As part of replica failover, the promote operation attempts - * to add the original primary instance as a replica of the promoted - * DR replica when the original primary instance comes back online. - * If set to false or not specified, then the original primary - * instance becomes an independent Cloud SQL primary instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.promote_replica.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_PromoteReplica_async - */ + /** + * Promotes the read replica instance to be an independent Cloud SQL + * primary instance. + * Using this operation might cause your instance to restart. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL read replica instance name. + * @param {string} request.project + * ID of the project that contains the read replica. + * @param {boolean} request.failover + * Set to true to invoke a replica failover to the DR + * replica. As part of replica failover, the promote operation attempts + * to add the original primary instance as a replica of the promoted + * DR replica when the original primary instance comes back online. + * If set to false or not specified, then the original primary + * instance becomes an independent Cloud SQL primary instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.promote_replica.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_PromoteReplica_async + */ promoteReplica( - request?: protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest | undefined, + {} | undefined, + ] + >; promoteReplica( - request: protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; promoteReplica( - request: protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; promoteReplica( - request?: protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('promoteReplica request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('promoteReplica response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.promoteReplica(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest|undefined, - {}|undefined - ]) => { - this._log.info('promoteReplica response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .promoteReplica(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesPromoteReplicaRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('promoteReplica response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Switches over from the primary instance to the DR replica - * instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL read replica instance name. - * @param {string} request.project - * ID of the project that contains the replica. - * @param {google.protobuf.Duration} [request.dbTimeout] - * Optional. (MySQL and PostgreSQL only) Cloud SQL instance operations - * timeout, which is a sum of all database operations. Default value is 10 - * minutes and can be modified to a maximum value of 24 hours. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.switchover.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_Switchover_async - */ + /** + * Switches over from the primary instance to the DR replica + * instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL read replica instance name. + * @param {string} request.project + * ID of the project that contains the replica. + * @param {google.protobuf.Duration} [request.dbTimeout] + * Optional. (MySQL and PostgreSQL only) Cloud SQL instance operations + * timeout, which is a sum of all database operations. Default value is 10 + * minutes and can be modified to a maximum value of 24 hours. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.switchover.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_Switchover_async + */ switchover( - request?: protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest | undefined, + {} | undefined, + ] + >; switchover( - request: protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest + | null + | undefined, + {} | null | undefined + >, + ): void; switchover( - request: protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest + | null + | undefined, + {} | null | undefined + >, + ): void; switchover( - request?: protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('switchover request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('switchover response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.switchover(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest|undefined, - {}|undefined - ]) => { - this._log.info('switchover response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .switchover(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesSwitchoverRequest | undefined, + {} | undefined, + ]) => { + this._log.info('switchover response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Deletes all client certificates and generates a new server SSL certificate - * for the instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1.SqlInstancesResetSslConfigRequest.ResetSslMode} [request.mode] - * Optional. Reset SSL mode to use. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.reset_ssl_config.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_ResetSslConfig_async - */ + /** + * Deletes all client certificates and generates a new server SSL certificate + * for the instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1.SqlInstancesResetSslConfigRequest.ResetSslMode} [request.mode] + * Optional. Reset SSL mode to use. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.reset_ssl_config.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_ResetSslConfig_async + */ resetSslConfig( - request?: protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest | undefined, + {} | undefined, + ] + >; resetSslConfig( - request: protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; resetSslConfig( - request: protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; resetSslConfig( - request?: protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('resetSslConfig request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('resetSslConfig response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.resetSslConfig(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest|undefined, - {}|undefined - ]) => { - this._log.info('resetSslConfig response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .resetSslConfig(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesResetSslConfigRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('resetSslConfig response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Restarts a Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance to be restarted. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.restart.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_Restart_async - */ + /** + * Restarts a Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance to be restarted. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.restart.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_Restart_async + */ restart( - request?: protos.google.cloud.sql.v1.ISqlInstancesRestartRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRestartRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesRestartRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesRestartRequest | undefined, + {} | undefined, + ] + >; restart( - request: protos.google.cloud.sql.v1.ISqlInstancesRestartRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRestartRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesRestartRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesRestartRequest | null | undefined, + {} | null | undefined + >, + ): void; restart( - request: protos.google.cloud.sql.v1.ISqlInstancesRestartRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRestartRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesRestartRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesRestartRequest | null | undefined, + {} | null | undefined + >, + ): void; restart( - request?: protos.google.cloud.sql.v1.ISqlInstancesRestartRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRestartRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesRestartRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRestartRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRestartRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesRestartRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesRestartRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesRestartRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('restart request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRestartRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRestartRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('restart response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.restart(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRestartRequest|undefined, - {}|undefined - ]) => { - this._log.info('restart response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .restart(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesRestartRequest | undefined, + {} | undefined, + ]) => { + this._log.info('restart response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Restores a backup of a Cloud SQL instance. Using this operation might cause - * your instance to restart. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1.InstancesRestoreBackupRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.restore_backup.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_RestoreBackup_async - */ + /** + * Restores a backup of a Cloud SQL instance. Using this operation might cause + * your instance to restart. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1.InstancesRestoreBackupRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.restore_backup.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_RestoreBackup_async + */ restoreBackup( - request?: protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest | undefined, + {} | undefined, + ] + >; restoreBackup( - request: protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest + | null + | undefined, + {} | null | undefined + >, + ): void; restoreBackup( - request: protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest + | null + | undefined, + {} | null | undefined + >, + ): void; restoreBackup( - request?: protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('restoreBackup request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('restoreBackup response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.restoreBackup(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest|undefined, - {}|undefined - ]) => { - this._log.info('restoreBackup response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .restoreBackup(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesRestoreBackupRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('restoreBackup response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Rotates the server certificate to one signed by the Certificate Authority - * (CA) version previously added with the addServerCA method. For instances - * that have enabled Certificate Authority Service (CAS) based server CA, - * use RotateServerCertificate to rotate the server certificate. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1.InstancesRotateServerCaRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.rotate_server_ca.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_RotateServerCa_async - */ + /** + * Rotates the server certificate to one signed by the Certificate Authority + * (CA) version previously added with the addServerCA method. For instances + * that have enabled Certificate Authority Service (CAS) based server CA, + * use RotateServerCertificate to rotate the server certificate. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1.InstancesRotateServerCaRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.rotate_server_ca.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_RotateServerCa_async + */ rotateServerCa( - request?: protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest | undefined, + {} | undefined, + ] + >; rotateServerCa( - request: protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; rotateServerCa( - request: protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; rotateServerCa( - request?: protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('rotateServerCa request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('rotateServerCa response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.rotateServerCa(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest|undefined, - {}|undefined - ]) => { - this._log.info('rotateServerCa response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .rotateServerCa(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesRotateServerCaRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('rotateServerCa response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Rotates the server certificate version to one previously added with the - * addServerCertificate method. For instances not using Certificate Authority - * Service (CAS) server CA, use RotateServerCa instead. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Required. Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1.InstancesRotateServerCertificateRequest} [request.body] - * Optional. Rotate server certificate request body. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.rotate_server_certificate.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_RotateServerCertificate_async - */ + /** + * Rotates the server certificate version to one previously added with the + * addServerCertificate method. For instances not using Certificate Authority + * Service (CAS) server CA, use RotateServerCa instead. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Required. Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1.InstancesRotateServerCertificateRequest} [request.body] + * Optional. Rotate server certificate request body. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.rotate_server_certificate.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_RotateServerCertificate_async + */ rotateServerCertificate( - request?: protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest + | undefined + ), + {} | undefined, + ] + >; rotateServerCertificate( - request: protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; rotateServerCertificate( - request: protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; rotateServerCertificate( - request?: protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('rotateServerCertificate request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('rotateServerCertificate response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.rotateServerCertificate(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest|undefined, - {}|undefined - ]) => { - this._log.info('rotateServerCertificate response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .rotateServerCertificate(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesRotateServerCertificateRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('rotateServerCertificate response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Rotates the server certificate version to one previously added with the - * addEntraIdCertificate method. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Required. Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest} [request.body] - * Optional. Rotate Entra ID certificate request body. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.rotate_entra_id_certificate.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_RotateEntraIdCertificate_async - */ + /** + * Rotates the server certificate version to one previously added with the + * addEntraIdCertificate method. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Required. Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest} [request.body] + * Optional. Rotate Entra ID certificate request body. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.rotate_entra_id_certificate.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_RotateEntraIdCertificate_async + */ rotateEntraIdCertificate( - request?: protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest + | undefined + ), + {} | undefined, + ] + >; rotateEntraIdCertificate( - request: protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; rotateEntraIdCertificate( - request: protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; rotateEntraIdCertificate( - request?: protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('rotateEntraIdCertificate request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('rotateEntraIdCertificate response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.rotateEntraIdCertificate(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest|undefined, - {}|undefined - ]) => { - this._log.info('rotateEntraIdCertificate response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .rotateEntraIdCertificate(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesRotateEntraIdCertificateRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('rotateEntraIdCertificate response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Starts the replication in the read replica instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL read replica instance name. - * @param {string} request.project - * ID of the project that contains the read replica. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.start_replica.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_StartReplica_async - */ + /** + * Starts the replication in the read replica instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL read replica instance name. + * @param {string} request.project + * ID of the project that contains the read replica. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.start_replica.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_StartReplica_async + */ startReplica( - request?: protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest | undefined, + {} | undefined, + ] + >; startReplica( - request: protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; startReplica( - request: protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; startReplica( - request?: protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('startReplica request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('startReplica response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.startReplica(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest|undefined, - {}|undefined - ]) => { - this._log.info('startReplica response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .startReplica(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesStartReplicaRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('startReplica response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Stops the replication in the read replica instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL read replica instance name. - * @param {string} request.project - * ID of the project that contains the read replica. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.stop_replica.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_StopReplica_async - */ + /** + * Stops the replication in the read replica instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL read replica instance name. + * @param {string} request.project + * ID of the project that contains the read replica. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.stop_replica.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_StopReplica_async + */ stopReplica( - request?: protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest | undefined, + {} | undefined, + ] + >; stopReplica( - request: protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; stopReplica( - request: protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; stopReplica( - request?: protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('stopReplica request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('stopReplica response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.stopReplica(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest|undefined, - {}|undefined - ]) => { - this._log.info('stopReplica response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .stopReplica(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesStopReplicaRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('stopReplica response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Truncate MySQL general and slow query log tables - * MySQL only. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the Cloud SQL project. - * @param {google.cloud.sql.v1.InstancesTruncateLogRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.truncate_log.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_TruncateLog_async - */ + /** + * Truncate MySQL general and slow query log tables + * MySQL only. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the Cloud SQL project. + * @param {google.cloud.sql.v1.InstancesTruncateLogRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.truncate_log.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_TruncateLog_async + */ truncateLog( - request?: protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest | undefined, + {} | undefined, + ] + >; truncateLog( - request: protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest + | null + | undefined, + {} | null | undefined + >, + ): void; truncateLog( - request: protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest + | null + | undefined, + {} | null | undefined + >, + ): void; truncateLog( - request?: protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('truncateLog request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('truncateLog response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.truncateLog(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest|undefined, - {}|undefined - ]) => { - this._log.info('truncateLog response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .truncateLog(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesTruncateLogRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('truncateLog response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Updates settings of a Cloud SQL instance. Using this operation might cause - * your instance to restart. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1.DatabaseInstance} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.update.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_Update_async - */ + /** + * Updates settings of a Cloud SQL instance. Using this operation might cause + * your instance to restart. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1.DatabaseInstance} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.update.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_Update_async + */ update( - request?: protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest | undefined, + {} | undefined, + ] + >; update( - request: protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest | null | undefined, + {} | null | undefined + >, + ): void; update( - request: protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest | null | undefined, + {} | null | undefined + >, + ): void; update( - request?: protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('update request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('update response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.update(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest|undefined, - {}|undefined - ]) => { - this._log.info('update response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .update(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlInstancesUpdateRequest | undefined, + {} | undefined, + ]) => { + this._log.info('update response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Generates a short-lived X509 certificate containing the provided public key - * and signed by a private key specific to the target instance. Users may use - * the certificate to authenticate as themselves when connecting to the - * database. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the Cloud SQL project. - * @param {google.cloud.sql.v1.SslCertsCreateEphemeralRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SslCert|SslCert}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.create_ephemeral.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_CreateEphemeral_async - */ + /** + * Generates a short-lived X509 certificate containing the provided public key + * and signed by a private key specific to the target instance. Users may use + * the certificate to authenticate as themselves when connecting to the + * database. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the Cloud SQL project. + * @param {google.cloud.sql.v1.SslCertsCreateEphemeralRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SslCert|SslCert}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.create_ephemeral.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_CreateEphemeral_async + */ createEphemeral( - request?: protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.ISslCert, - protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.ISslCert, + ( + | protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest + | undefined + ), + {} | undefined, + ] + >; createEphemeral( - request: protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.ISslCert, - protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.ISslCert, + | protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + >, + ): void; createEphemeral( - request: protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest, - callback: Callback< - protos.google.cloud.sql.v1.ISslCert, - protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest, + callback: Callback< + protos.google.cloud.sql.v1.ISslCert, + | protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + >, + ): void; createEphemeral( - request?: protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.ISslCert, - protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.ISslCert, - protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.ISslCert, - protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.ISslCert, + | protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.ISslCert, + ( + | protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('createEphemeral request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.ISslCert, - protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.ISslCert, + | protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('createEphemeral response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.createEphemeral(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.ISslCert, - protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest|undefined, - {}|undefined - ]) => { - this._log.info('createEphemeral response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .createEphemeral(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.ISslCert, + ( + | protos.google.cloud.sql.v1.ISqlInstancesCreateEphemeralCertRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('createEphemeral response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Reschedules the maintenance on the given instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * ID of the project that contains the instance. - * @param {google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.reschedule_maintenance.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_RescheduleMaintenance_async - */ + /** + * Reschedules the maintenance on the given instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * ID of the project that contains the instance. + * @param {google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.reschedule_maintenance.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_RescheduleMaintenance_async + */ rescheduleMaintenance( - request?: protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest + | undefined + ), + {} | undefined, + ] + >; rescheduleMaintenance( - request: protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest + | null + | undefined, + {} | null | undefined + >, + ): void; rescheduleMaintenance( - request: protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest + | null + | undefined, + {} | null | undefined + >, + ): void; rescheduleMaintenance( - request?: protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('rescheduleMaintenance request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('rescheduleMaintenance response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.rescheduleMaintenance(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest|undefined, - {}|undefined - ]) => { - this._log.info('rescheduleMaintenance response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .rescheduleMaintenance(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesRescheduleMaintenanceRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('rescheduleMaintenance response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Verify External primary instance external sync settings. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {boolean} request.verifyConnectionOnly - * Flag to enable verifying connection only - * @param {google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode} request.syncMode - * External sync mode - * @param {boolean} [request.verifyReplicationOnly] - * Optional. Flag to verify settings required by replication setup only - * @param {google.cloud.sql.v1.MySqlSyncConfig} [request.mysqlSyncConfig] - * Optional. MySQL-specific settings for start external sync. - * @param {google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType} [request.migrationType] - * Optional. MigrationType configures the migration to use physical files or - * logical dump files. If not set, then the logical dump file configuration is - * used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL. - * @param {google.cloud.sql.v1.ExternalSyncParallelLevel} [request.syncParallelLevel] - * Optional. Parallel level for initial data sync. Only applicable for - * PostgreSQL. - * @param {number[]} [request.selectedObjects] - * Optional. Migrate only the specified objects from the source instance. If - * this field is empty, then migrate all objects. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse|SqlInstancesVerifyExternalSyncSettingsResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.verify_external_sync_settings.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_VerifyExternalSyncSettings_async - */ + /** + * Verify External primary instance external sync settings. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {boolean} request.verifyConnectionOnly + * Flag to enable verifying connection only + * @param {google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode} request.syncMode + * External sync mode + * @param {boolean} [request.verifyReplicationOnly] + * Optional. Flag to verify settings required by replication setup only + * @param {google.cloud.sql.v1.MySqlSyncConfig} [request.mysqlSyncConfig] + * Optional. MySQL-specific settings for start external sync. + * @param {google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType} [request.migrationType] + * Optional. MigrationType configures the migration to use physical files or + * logical dump files. If not set, then the logical dump file configuration is + * used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL. + * @param {google.cloud.sql.v1.ExternalSyncParallelLevel} [request.syncParallelLevel] + * Optional. Parallel level for initial data sync. Only applicable for + * PostgreSQL. + * @param {number[]} [request.selectedObjects] + * Optional. Migrate only the specified objects from the source instance. If + * this field is empty, then migrate all objects. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse|SqlInstancesVerifyExternalSyncSettingsResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.verify_external_sync_settings.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_VerifyExternalSyncSettings_async + */ verifyExternalSyncSettings( - request?: protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsResponse, - protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest + | undefined + ), + {} | undefined, + ] + >; verifyExternalSyncSettings( - request: protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsResponse, - protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsResponse, + | protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest + | null + | undefined, + {} | null | undefined + >, + ): void; verifyExternalSyncSettings( - request: protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest, - callback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsResponse, - protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest, + callback: Callback< + protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsResponse, + | protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest + | null + | undefined, + {} | null | undefined + >, + ): void; verifyExternalSyncSettings( - request?: protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsResponse, - protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsResponse, - protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsResponse, - protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsResponse, + | protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('verifyExternalSyncSettings request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsResponse, - protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsResponse, + | protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('verifyExternalSyncSettings response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.verifyExternalSyncSettings(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsResponse, - protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest|undefined, - {}|undefined - ]) => { - this._log.info('verifyExternalSyncSettings response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .verifyExternalSyncSettings(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('verifyExternalSyncSettings response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Start External primary instance migration. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * ID of the project that contains the instance. - * @param {google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode} request.syncMode - * External sync mode. - * @param {boolean} request.skipVerification - * Whether to skip the verification step (VESS). - * @param {google.cloud.sql.v1.MySqlSyncConfig} request.mysqlSyncConfig - * MySQL-specific settings for start external sync. - * @param {google.cloud.sql.v1.ExternalSyncParallelLevel} [request.syncParallelLevel] - * Optional. Parallel level for initial data sync. Currently only applicable - * for MySQL. - * @param {google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType} [request.migrationType] - * Optional. MigrationType configures the migration to use physical files or - * logical dump files. If not set, then the logical dump file configuration is - * used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL. - * @param {boolean} [request.replicaOverwriteEnabled] - * Optional. MySQL only. True if end-user has confirmed that this SES call - * will wipe replica databases overlapping with the proposed selected_objects. - * If this field is not set and there are both overlapping and additional - * databases proposed, an error will be returned. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.start_external_sync.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_StartExternalSync_async - */ + /** + * Start External primary instance migration. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * ID of the project that contains the instance. + * @param {google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode} request.syncMode + * External sync mode. + * @param {boolean} request.skipVerification + * Whether to skip the verification step (VESS). + * @param {google.cloud.sql.v1.MySqlSyncConfig} request.mysqlSyncConfig + * MySQL-specific settings for start external sync. + * @param {google.cloud.sql.v1.ExternalSyncParallelLevel} [request.syncParallelLevel] + * Optional. Parallel level for initial data sync. Currently only applicable + * for MySQL. + * @param {google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType} [request.migrationType] + * Optional. MigrationType configures the migration to use physical files or + * logical dump files. If not set, then the logical dump file configuration is + * used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL. + * @param {boolean} [request.replicaOverwriteEnabled] + * Optional. MySQL only. True if end-user has confirmed that this SES call + * will wipe replica databases overlapping with the proposed selected_objects. + * If this field is not set and there are both overlapping and additional + * databases proposed, an error will be returned. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.start_external_sync.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_StartExternalSync_async + */ startExternalSync( - request?: protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest + | undefined + ), + {} | undefined, + ] + >; startExternalSync( - request: protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest + | null + | undefined, + {} | null | undefined + >, + ): void; startExternalSync( - request: protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest + | null + | undefined, + {} | null | undefined + >, + ): void; startExternalSync( - request?: protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('startExternalSync request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('startExternalSync response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.startExternalSync(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest|undefined, - {}|undefined - ]) => { - this._log.info('startExternalSync response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .startExternalSync(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesStartExternalSyncRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('startExternalSync response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Perform Disk Shrink on primary instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1.PerformDiskShrinkContext} request.body - * Perform disk shrink context. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.perform_disk_shrink.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_PerformDiskShrink_async - */ + /** + * Perform Disk Shrink on primary instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1.PerformDiskShrinkContext} request.body + * Perform disk shrink context. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.perform_disk_shrink.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_PerformDiskShrink_async + */ performDiskShrink( - request?: protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest + | undefined + ), + {} | undefined, + ] + >; performDiskShrink( - request: protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest + | null + | undefined, + {} | null | undefined + >, + ): void; performDiskShrink( - request: protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest + | null + | undefined, + {} | null | undefined + >, + ): void; performDiskShrink( - request?: protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('performDiskShrink request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('performDiskShrink response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.performDiskShrink(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest|undefined, - {}|undefined - ]) => { - this._log.info('performDiskShrink response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .performDiskShrink(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesPerformDiskShrinkRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('performDiskShrink response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Get Disk Shrink Config for a given instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigResponse|SqlInstancesGetDiskShrinkConfigResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.get_disk_shrink_config.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_GetDiskShrinkConfig_async - */ + /** + * Get Disk Shrink Config for a given instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigResponse|SqlInstancesGetDiskShrinkConfigResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.get_disk_shrink_config.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_GetDiskShrinkConfig_async + */ getDiskShrinkConfig( - request?: protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigResponse, - protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest + | undefined + ), + {} | undefined, + ] + >; getDiskShrinkConfig( - request: protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigResponse, - protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigResponse, + | protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getDiskShrinkConfig( - request: protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest, - callback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigResponse, - protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest, + callback: Callback< + protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigResponse, + | protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getDiskShrinkConfig( - request?: protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigResponse, - protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigResponse, - protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigResponse, - protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigResponse, + | protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('getDiskShrinkConfig request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigResponse, - protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigResponse, + | protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getDiskShrinkConfig response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getDiskShrinkConfig(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigResponse, - protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest|undefined, - {}|undefined - ]) => { - this._log.info('getDiskShrinkConfig response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getDiskShrinkConfig(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('getDiskShrinkConfig response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Reset Replica Size to primary instance disk size. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL read replica instance name. - * @param {string} request.project - * ID of the project that contains the read replica. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.reset_replica_size.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_ResetReplicaSize_async - */ + /** + * Reset Replica Size to primary instance disk size. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL read replica instance name. + * @param {string} request.project + * ID of the project that contains the read replica. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.reset_replica_size.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_ResetReplicaSize_async + */ resetReplicaSize( - request?: protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest + | undefined + ), + {} | undefined, + ] + >; resetReplicaSize( - request: protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest + | null + | undefined, + {} | null | undefined + >, + ): void; resetReplicaSize( - request: protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest + | null + | undefined, + {} | null | undefined + >, + ): void; resetReplicaSize( - request?: protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('resetReplicaSize request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('resetReplicaSize response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.resetReplicaSize(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest|undefined, - {}|undefined - ]) => { - this._log.info('resetReplicaSize response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .resetReplicaSize(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesResetReplicaSizeRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('resetReplicaSize response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Get Latest Recovery Time for a given instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.protobuf.Timestamp} request.sourceInstanceDeletionTime - * The timestamp used to identify the time when the source instance is - * deleted. If this instance is deleted, then you must set the timestamp. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeResponse|SqlInstancesGetLatestRecoveryTimeResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.get_latest_recovery_time.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_GetLatestRecoveryTime_async - */ + /** + * Get Latest Recovery Time for a given instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.protobuf.Timestamp} request.sourceInstanceDeletionTime + * The timestamp used to identify the time when the source instance is + * deleted. If this instance is deleted, then you must set the timestamp. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeResponse|SqlInstancesGetLatestRecoveryTimeResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.get_latest_recovery_time.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_GetLatestRecoveryTime_async + */ getLatestRecoveryTime( - request?: protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeResponse, - protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest + | undefined + ), + {} | undefined, + ] + >; getLatestRecoveryTime( - request: protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeResponse, - protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeResponse, + | protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getLatestRecoveryTime( - request: protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest, - callback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeResponse, - protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest, + callback: Callback< + protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeResponse, + | protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getLatestRecoveryTime( - request?: protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeResponse, - protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeResponse, - protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeResponse, - protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeResponse, + | protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('getLatestRecoveryTime request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeResponse, - protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeResponse, + | protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getLatestRecoveryTime response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getLatestRecoveryTime(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeResponse, - protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest|undefined, - {}|undefined - ]) => { - this._log.info('getLatestRecoveryTime response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getLatestRecoveryTime(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('getLatestRecoveryTime response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Execute SQL statements. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Database instance ID. This does not include the project ID. - * @param {string} request.project - * Required. Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1.ExecuteSqlPayload} request.body - * The request body. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse|SqlInstancesExecuteSqlResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.execute_sql.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_ExecuteSql_async - */ + /** + * Execute SQL statements. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Database instance ID. This does not include the project ID. + * @param {string} request.project + * Required. Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1.ExecuteSqlPayload} request.body + * The request body. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse|SqlInstancesExecuteSqlResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.execute_sql.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_ExecuteSql_async + */ executeSql( - request?: protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlResponse, - protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlResponse, + protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest | undefined, + {} | undefined, + ] + >; executeSql( - request: protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlResponse, - protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlResponse, + | protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest + | null + | undefined, + {} | null | undefined + >, + ): void; executeSql( - request: protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest, - callback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlResponse, - protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest, + callback: Callback< + protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlResponse, + | protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest + | null + | undefined, + {} | null | undefined + >, + ): void; executeSql( - request?: protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlResponse, - protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlResponse, - protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlResponse, - protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlResponse, + | protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlResponse, + protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('executeSql request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlResponse, - protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlResponse, + | protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('executeSql response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.executeSql(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlResponse, - protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest|undefined, - {}|undefined - ]) => { - this._log.info('executeSql response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .executeSql(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlResponse, + protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlRequest | undefined, + {} | undefined, + ]) => { + this._log.info('executeSql response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Acquire a lease for the setup of SQL Server Reporting Services (SSRS). - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Cloud SQL instance ID. This doesn't include the project ID. It's - * composed of lowercase letters, numbers, and hyphens, and it must start with - * a letter. The total length must be 98 characters or less (Example: - * instance-id). - * @param {string} request.project - * Required. Project ID of the project that contains the instance (Example: - * project-id). - * @param {google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest} request.body - * Required. The request body. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseResponse|SqlInstancesAcquireSsrsLeaseResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.acquire_ssrs_lease.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_AcquireSsrsLease_async - */ + /** + * Acquire a lease for the setup of SQL Server Reporting Services (SSRS). + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Cloud SQL instance ID. This doesn't include the project ID. It's + * composed of lowercase letters, numbers, and hyphens, and it must start with + * a letter. The total length must be 98 characters or less (Example: + * instance-id). + * @param {string} request.project + * Required. Project ID of the project that contains the instance (Example: + * project-id). + * @param {google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest} request.body + * Required. The request body. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseResponse|SqlInstancesAcquireSsrsLeaseResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.acquire_ssrs_lease.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_AcquireSsrsLease_async + */ acquireSsrsLease( - request?: protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseResponse, - protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest + | undefined + ), + {} | undefined, + ] + >; acquireSsrsLease( - request: protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseResponse, - protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseResponse, + | protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + >, + ): void; acquireSsrsLease( - request: protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest, - callback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseResponse, - protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest, + callback: Callback< + protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseResponse, + | protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + >, + ): void; acquireSsrsLease( - request?: protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseResponse, - protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseResponse, - protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseResponse, - protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseResponse, + | protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('acquireSsrsLease request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseResponse, - protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseResponse, + | protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('acquireSsrsLease response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.acquireSsrsLease(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseResponse, - protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest|undefined, - {}|undefined - ]) => { - this._log.info('acquireSsrsLease response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .acquireSsrsLease(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('acquireSsrsLease response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Release a lease for the setup of SQL Server Reporting Services (SSRS). - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. The Cloud SQL instance ID. This doesn't include the project ID. - * The instance ID contains lowercase letters, numbers, and hyphens, and it - * must start with a letter. This ID can have a maximum length of 98 - * characters. - * @param {string} request.project - * Required. The project ID that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseResponse|SqlInstancesReleaseSsrsLeaseResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.release_ssrs_lease.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_ReleaseSsrsLease_async - */ + /** + * Release a lease for the setup of SQL Server Reporting Services (SSRS). + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. The Cloud SQL instance ID. This doesn't include the project ID. + * The instance ID contains lowercase letters, numbers, and hyphens, and it + * must start with a letter. This ID can have a maximum length of 98 + * characters. + * @param {string} request.project + * Required. The project ID that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseResponse|SqlInstancesReleaseSsrsLeaseResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.release_ssrs_lease.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_ReleaseSsrsLease_async + */ releaseSsrsLease( - request?: protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseResponse, - protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest + | undefined + ), + {} | undefined, + ] + >; releaseSsrsLease( - request: protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseResponse, - protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseResponse, + | protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + >, + ): void; releaseSsrsLease( - request: protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest, - callback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseResponse, - protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest, + callback: Callback< + protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseResponse, + | protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + >, + ): void; releaseSsrsLease( - request?: protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseResponse, - protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseResponse, - protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseResponse, - protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseResponse, + | protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('releaseSsrsLease request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseResponse, - protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseResponse, + | protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('releaseSsrsLease response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.releaseSsrsLease(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseResponse, - protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest|undefined, - {}|undefined - ]) => { - this._log.info('releaseSsrsLease response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .releaseSsrsLease(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseResponse, + ( + | protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('releaseSsrsLease response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Execute MVU Pre-checks - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Required. Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest} request.body - * Required. The context for request to perform the pre-check major version - * upgrade operation. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.pre_check_major_version_upgrade.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_PreCheckMajorVersionUpgrade_async - */ + /** + * Execute MVU Pre-checks + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Required. Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest} request.body + * Required. The context for request to perform the pre-check major version + * upgrade operation. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.pre_check_major_version_upgrade.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_PreCheckMajorVersionUpgrade_async + */ preCheckMajorVersionUpgrade( - request?: protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest + | undefined + ), + {} | undefined, + ] + >; preCheckMajorVersionUpgrade( - request: protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest + | null + | undefined, + {} | null | undefined + >, + ): void; preCheckMajorVersionUpgrade( - request: protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest + | null + | undefined, + {} | null | undefined + >, + ): void; preCheckMajorVersionUpgrade( - request?: protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('preCheckMajorVersionUpgrade request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('preCheckMajorVersionUpgrade response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.preCheckMajorVersionUpgrade(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest|undefined, - {}|undefined - ]) => { - this._log.info('preCheckMajorVersionUpgrade response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .preCheckMajorVersionUpgrade(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesPreCheckMajorVersionUpgradeRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('preCheckMajorVersionUpgrade response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Point in time restore for an instance managed by Google Cloud Backup and - * Disaster Recovery. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent resource where you created this instance. - * Format: projects/{project} - * @param {google.cloud.sql.v1.PointInTimeRestoreContext} request.context - * Required. The context for request to perform a PITR on a Google Cloud - * Backup and Disaster Recovery managed instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_instances_service.point_in_time_restore.js - * region_tag:sqladmin_v1_generated_SqlInstancesService_PointInTimeRestore_async - */ + /** + * Point in time restore for an instance managed by Google Cloud Backup and + * Disaster Recovery. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent resource where you created this instance. + * Format: projects/{project} + * @param {google.cloud.sql.v1.PointInTimeRestoreContext} request.context + * Required. The context for request to perform a PITR on a Google Cloud + * Backup and Disaster Recovery managed instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_instances_service.point_in_time_restore.js + * region_tag:sqladmin_v1_generated_SqlInstancesService_PointInTimeRestore_async + */ pointInTimeRestore( - request?: protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest + | undefined + ), + {} | undefined, + ] + >; pointInTimeRestore( - request: protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest + | null + | undefined, + {} | null | undefined + >, + ): void; pointInTimeRestore( - request: protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest + | null + | undefined, + {} | null | undefined + >, + ): void; pointInTimeRestore( - request?: protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'parent': request.parent ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('pointInTimeRestore request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('pointInTimeRestore response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.pointInTimeRestore(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest|undefined, - {}|undefined - ]) => { - this._log.info('pointInTimeRestore response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .pointInTimeRestore(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + ( + | protos.google.cloud.sql.v1.ISqlInstancesPointInTimeRestoreRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('pointInTimeRestore response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -4712,12 +6642,11 @@ export class SqlInstancesServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -4750,7 +6679,7 @@ export class SqlInstancesServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -4769,7 +6698,13 @@ export class SqlInstancesServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,location:string,backupvault:string,datasource:string,backup:string) { + backupPath( + project: string, + location: string, + backupvault: string, + datasource: string, + backup: string, + ) { return this.pathTemplates.backupPathTemplate.render({ project: project, location: location, @@ -4841,7 +6776,7 @@ export class SqlInstancesServiceClient { * @param {string} network * @returns {string} Resource name string. */ - networkPath(project:string,network:string) { + networkPath(project: string, network: string) { return this.pathTemplates.networkPathTemplate.render({ project: project, network: network, @@ -4878,13 +6813,15 @@ export class SqlInstancesServiceClient { */ close(): Promise { if (this.sqlInstancesServiceStub && !this._terminated) { - return this.sqlInstancesServiceStub.then(stub => { + return this.sqlInstancesServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1/sql_operations_service_client.ts b/packages/google-cloud-sql/src/v1/sql_operations_service_client.ts index d027e27c654..4d9599d37c1 100644 --- a/packages/google-cloud-sql/src/v1/sql_operations_service_client.ts +++ b/packages/google-cloud-sql/src/v1/sql_operations_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -44,7 +51,7 @@ export class SqlOperationsServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -57,10 +64,10 @@ export class SqlOperationsServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlOperationsServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlOperationsServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlOperationsServiceClient. @@ -101,21 +108,42 @@ export class SqlOperationsServiceClient { * const client = new SqlOperationsServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlOperationsServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -140,7 +168,7 @@ export class SqlOperationsServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -154,15 +182,11 @@ export class SqlOperationsServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -184,14 +208,17 @@ export class SqlOperationsServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1.SqlOperationsService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1.SqlOperationsService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -222,36 +249,40 @@ export class SqlOperationsServiceClient { // Put together the "service stub" for // google.cloud.sql.v1.SqlOperationsService. this.sqlOperationsServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1.SqlOperationsService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1.SqlOperationsService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1.SqlOperationsService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlOperationsServiceStubMethods = - ['get', 'list', 'cancel']; + const sqlOperationsServiceStubMethods = ['get', 'list', 'cancel']; for (const methodName of sqlOperationsServiceStubMethods) { const callPromise = this.sqlOperationsServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -266,8 +297,14 @@ export class SqlOperationsServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -278,8 +315,14 @@ export class SqlOperationsServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -312,7 +355,7 @@ export class SqlOperationsServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -322,8 +365,9 @@ export class SqlOperationsServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -334,304 +378,406 @@ export class SqlOperationsServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Retrieves an instance operation that has been performed on an instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.operation - * Required. Instance operation ID. - * @param {string} request.project - * Required. Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_operations_service.get.js - * region_tag:sqladmin_v1_generated_SqlOperationsService_Get_async - */ + /** + * Retrieves an instance operation that has been performed on an instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.operation + * Required. Instance operation ID. + * @param {string} request.project + * Required. Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_operations_service.get.js + * region_tag:sqladmin_v1_generated_SqlOperationsService_Get_async + */ get( - request?: protos.google.cloud.sql.v1.ISqlOperationsGetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlOperationsGetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlOperationsGetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlOperationsGetRequest | undefined, + {} | undefined, + ] + >; get( - request: protos.google.cloud.sql.v1.ISqlOperationsGetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlOperationsGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlOperationsGetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlOperationsGetRequest | null | undefined, + {} | null | undefined + >, + ): void; get( - request: protos.google.cloud.sql.v1.ISqlOperationsGetRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlOperationsGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlOperationsGetRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlOperationsGetRequest | null | undefined, + {} | null | undefined + >, + ): void; get( - request?: protos.google.cloud.sql.v1.ISqlOperationsGetRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlOperationsGetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlOperationsGetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlOperationsGetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlOperationsGetRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlOperationsGetRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlOperationsGetRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlOperationsGetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'operation': request.operation ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + operation: request.operation ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('get request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlOperationsGetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlOperationsGetRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('get response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.get(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlOperationsGetRequest|undefined, - {}|undefined - ]) => { - this._log.info('get response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .get(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlOperationsGetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('get response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists all instance operations that have been performed on the given Cloud - * SQL instance in the reverse chronological order of the start time. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {number} request.maxResults - * Maximum number of operations per response. - * @param {string} request.pageToken - * A previously-returned page token representing part of the larger set of - * results to view. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.OperationsListResponse|OperationsListResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_operations_service.list.js - * region_tag:sqladmin_v1_generated_SqlOperationsService_List_async - */ + /** + * Lists all instance operations that have been performed on the given Cloud + * SQL instance in the reverse chronological order of the start time. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {number} request.maxResults + * Maximum number of operations per response. + * @param {string} request.pageToken + * A previously-returned page token representing part of the larger set of + * results to view. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.OperationsListResponse|OperationsListResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_operations_service.list.js + * region_tag:sqladmin_v1_generated_SqlOperationsService_List_async + */ list( - request?: protos.google.cloud.sql.v1.ISqlOperationsListRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperationsListResponse, - protos.google.cloud.sql.v1.ISqlOperationsListRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlOperationsListRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperationsListResponse, + protos.google.cloud.sql.v1.ISqlOperationsListRequest | undefined, + {} | undefined, + ] + >; list( - request: protos.google.cloud.sql.v1.ISqlOperationsListRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperationsListResponse, - protos.google.cloud.sql.v1.ISqlOperationsListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlOperationsListRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperationsListResponse, + protos.google.cloud.sql.v1.ISqlOperationsListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request: protos.google.cloud.sql.v1.ISqlOperationsListRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperationsListResponse, - protos.google.cloud.sql.v1.ISqlOperationsListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlOperationsListRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperationsListResponse, + protos.google.cloud.sql.v1.ISqlOperationsListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request?: protos.google.cloud.sql.v1.ISqlOperationsListRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperationsListResponse, - protos.google.cloud.sql.v1.ISqlOperationsListRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlOperationsListRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperationsListResponse, - protos.google.cloud.sql.v1.ISqlOperationsListRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperationsListResponse, - protos.google.cloud.sql.v1.ISqlOperationsListRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlOperationsListRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperationsListResponse, + protos.google.cloud.sql.v1.ISqlOperationsListRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperationsListResponse, + protos.google.cloud.sql.v1.ISqlOperationsListRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('list request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperationsListResponse, - protos.google.cloud.sql.v1.ISqlOperationsListRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperationsListResponse, + | protos.google.cloud.sql.v1.ISqlOperationsListRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('list response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.list(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperationsListResponse, - protos.google.cloud.sql.v1.ISqlOperationsListRequest|undefined, - {}|undefined - ]) => { - this._log.info('list response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .list(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperationsListResponse, + protos.google.cloud.sql.v1.ISqlOperationsListRequest | undefined, + {} | undefined, + ]) => { + this._log.info('list response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Cancels an instance operation that has been performed on an instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.operation - * Instance operation ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.protobuf.Empty|Empty}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_operations_service.cancel.js - * region_tag:sqladmin_v1_generated_SqlOperationsService_Cancel_async - */ + /** + * Cancels an instance operation that has been performed on an instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.operation + * Instance operation ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.protobuf.Empty|Empty}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_operations_service.cancel.js + * region_tag:sqladmin_v1_generated_SqlOperationsService_Cancel_async + */ cancel( - request?: protos.google.cloud.sql.v1.ISqlOperationsCancelRequest, - options?: CallOptions): - Promise<[ - protos.google.protobuf.IEmpty, - protos.google.cloud.sql.v1.ISqlOperationsCancelRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlOperationsCancelRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.protobuf.IEmpty, + protos.google.cloud.sql.v1.ISqlOperationsCancelRequest | undefined, + {} | undefined, + ] + >; cancel( - request: protos.google.cloud.sql.v1.ISqlOperationsCancelRequest, - options: CallOptions, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.sql.v1.ISqlOperationsCancelRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlOperationsCancelRequest, + options: CallOptions, + callback: Callback< + protos.google.protobuf.IEmpty, + protos.google.cloud.sql.v1.ISqlOperationsCancelRequest | null | undefined, + {} | null | undefined + >, + ): void; cancel( - request: protos.google.cloud.sql.v1.ISqlOperationsCancelRequest, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.sql.v1.ISqlOperationsCancelRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlOperationsCancelRequest, + callback: Callback< + protos.google.protobuf.IEmpty, + protos.google.cloud.sql.v1.ISqlOperationsCancelRequest | null | undefined, + {} | null | undefined + >, + ): void; cancel( - request?: protos.google.cloud.sql.v1.ISqlOperationsCancelRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.sql.v1.ISqlOperationsCancelRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlOperationsCancelRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.protobuf.IEmpty, - protos.google.cloud.sql.v1.ISqlOperationsCancelRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.protobuf.IEmpty, - protos.google.cloud.sql.v1.ISqlOperationsCancelRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlOperationsCancelRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.protobuf.IEmpty, + protos.google.cloud.sql.v1.ISqlOperationsCancelRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.protobuf.IEmpty, + protos.google.cloud.sql.v1.ISqlOperationsCancelRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'operation': request.operation ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + operation: request.operation ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('cancel request %j', request); - const wrappedCallback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.sql.v1.ISqlOperationsCancelRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.sql.v1.ISqlOperationsCancelRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('cancel response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.cancel(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.protobuf.IEmpty, - protos.google.cloud.sql.v1.ISqlOperationsCancelRequest|undefined, - {}|undefined - ]) => { - this._log.info('cancel response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .cancel(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.protobuf.IEmpty, + protos.google.cloud.sql.v1.ISqlOperationsCancelRequest | undefined, + {} | undefined, + ]) => { + this._log.info('cancel response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -666,12 +812,11 @@ export class SqlOperationsServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -704,7 +849,7 @@ export class SqlOperationsServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -720,7 +865,7 @@ export class SqlOperationsServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -757,13 +902,15 @@ export class SqlOperationsServiceClient { */ close(): Promise { if (this.sqlOperationsServiceStub && !this._terminated) { - return this.sqlOperationsServiceStub.then(stub => { + return this.sqlOperationsServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1/sql_ssl_certs_service_client.ts b/packages/google-cloud-sql/src/v1/sql_ssl_certs_service_client.ts index df2bb53abd2..e820b8c0dff 100644 --- a/packages/google-cloud-sql/src/v1/sql_ssl_certs_service_client.ts +++ b/packages/google-cloud-sql/src/v1/sql_ssl_certs_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -44,7 +51,7 @@ export class SqlSslCertsServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -57,10 +64,10 @@ export class SqlSslCertsServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlSslCertsServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlSslCertsServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlSslCertsServiceClient. @@ -101,21 +108,42 @@ export class SqlSslCertsServiceClient { * const client = new SqlSslCertsServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlSslCertsServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -140,7 +168,7 @@ export class SqlSslCertsServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -154,15 +182,11 @@ export class SqlSslCertsServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -184,14 +208,17 @@ export class SqlSslCertsServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1.SqlSslCertsService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1.SqlSslCertsService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -222,36 +249,40 @@ export class SqlSslCertsServiceClient { // Put together the "service stub" for // google.cloud.sql.v1.SqlSslCertsService. this.sqlSslCertsServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1.SqlSslCertsService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1.SqlSslCertsService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1.SqlSslCertsService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlSslCertsServiceStubMethods = - ['delete', 'get', 'insert', 'list']; + const sqlSslCertsServiceStubMethods = ['delete', 'get', 'insert', 'list']; for (const methodName of sqlSslCertsServiceStubMethods) { const callPromise = this.sqlSslCertsServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -266,8 +297,14 @@ export class SqlSslCertsServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -278,8 +315,14 @@ export class SqlSslCertsServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -312,7 +355,7 @@ export class SqlSslCertsServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -322,8 +365,9 @@ export class SqlSslCertsServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -334,408 +378,536 @@ export class SqlSslCertsServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Deletes the SSL certificate. For First Generation instances, the - * certificate remains valid until the instance is restarted. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {string} request.sha1Fingerprint - * Sha1 FingerPrint. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_ssl_certs_service.delete.js - * region_tag:sqladmin_v1_generated_SqlSslCertsService_Delete_async - */ + /** + * Deletes the SSL certificate. For First Generation instances, the + * certificate remains valid until the instance is restarted. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {string} request.sha1Fingerprint + * Sha1 FingerPrint. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_ssl_certs_service.delete.js + * region_tag:sqladmin_v1_generated_SqlSslCertsService_Delete_async + */ delete( - request?: protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest | undefined, + {} | undefined, + ] + >; delete( - request: protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest | null | undefined, + {} | null | undefined + >, + ): void; delete( - request: protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest | null | undefined, + {} | null | undefined + >, + ): void; delete( - request?: protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'sha1_fingerprint': request.sha1Fingerprint ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + sha1_fingerprint: request.sha1Fingerprint ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('delete request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + | protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('delete response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.delete(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest|undefined, - {}|undefined - ]) => { - this._log.info('delete response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .delete(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlSslCertsDeleteRequest | undefined, + {} | undefined, + ]) => { + this._log.info('delete response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Retrieves a particular SSL certificate. Does not include the private key - * (required for usage). The private key must be saved from the response to - * initial creation. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {string} request.sha1Fingerprint - * Sha1 FingerPrint. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SslCert|SslCert}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_ssl_certs_service.get.js - * region_tag:sqladmin_v1_generated_SqlSslCertsService_Get_async - */ + /** + * Retrieves a particular SSL certificate. Does not include the private key + * (required for usage). The private key must be saved from the response to + * initial creation. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {string} request.sha1Fingerprint + * Sha1 FingerPrint. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SslCert|SslCert}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_ssl_certs_service.get.js + * region_tag:sqladmin_v1_generated_SqlSslCertsService_Get_async + */ get( - request?: protos.google.cloud.sql.v1.ISqlSslCertsGetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.ISslCert, - protos.google.cloud.sql.v1.ISqlSslCertsGetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlSslCertsGetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.ISslCert, + protos.google.cloud.sql.v1.ISqlSslCertsGetRequest | undefined, + {} | undefined, + ] + >; get( - request: protos.google.cloud.sql.v1.ISqlSslCertsGetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.ISslCert, - protos.google.cloud.sql.v1.ISqlSslCertsGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlSslCertsGetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.ISslCert, + protos.google.cloud.sql.v1.ISqlSslCertsGetRequest | null | undefined, + {} | null | undefined + >, + ): void; get( - request: protos.google.cloud.sql.v1.ISqlSslCertsGetRequest, - callback: Callback< - protos.google.cloud.sql.v1.ISslCert, - protos.google.cloud.sql.v1.ISqlSslCertsGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlSslCertsGetRequest, + callback: Callback< + protos.google.cloud.sql.v1.ISslCert, + protos.google.cloud.sql.v1.ISqlSslCertsGetRequest | null | undefined, + {} | null | undefined + >, + ): void; get( - request?: protos.google.cloud.sql.v1.ISqlSslCertsGetRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.ISslCert, - protos.google.cloud.sql.v1.ISqlSslCertsGetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlSslCertsGetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.ISslCert, - protos.google.cloud.sql.v1.ISqlSslCertsGetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.ISslCert, - protos.google.cloud.sql.v1.ISqlSslCertsGetRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.sql.v1.ISqlSslCertsGetRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.ISslCert, + protos.google.cloud.sql.v1.ISqlSslCertsGetRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.ISslCert, + protos.google.cloud.sql.v1.ISqlSslCertsGetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'sha1_fingerprint': request.sha1Fingerprint ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + sha1_fingerprint: request.sha1Fingerprint ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('get request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.ISslCert, - protos.google.cloud.sql.v1.ISqlSslCertsGetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.ISslCert, + protos.google.cloud.sql.v1.ISqlSslCertsGetRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('get response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.get(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.ISslCert, - protos.google.cloud.sql.v1.ISqlSslCertsGetRequest|undefined, - {}|undefined - ]) => { - this._log.info('get response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .get(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.ISslCert, + protos.google.cloud.sql.v1.ISqlSslCertsGetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('get response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Creates an SSL certificate and returns it along with the private key and - * server certificate authority. The new certificate will not be usable until - * the instance is restarted. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1.SslCertsInsertRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SslCertsInsertResponse|SslCertsInsertResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_ssl_certs_service.insert.js - * region_tag:sqladmin_v1_generated_SqlSslCertsService_Insert_async - */ + /** + * Creates an SSL certificate and returns it along with the private key and + * server certificate authority. The new certificate will not be usable until + * the instance is restarted. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1.SslCertsInsertRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SslCertsInsertResponse|SslCertsInsertResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_ssl_certs_service.insert.js + * region_tag:sqladmin_v1_generated_SqlSslCertsService_Insert_async + */ insert( - request?: protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.ISslCertsInsertResponse, - protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.ISslCertsInsertResponse, + protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest | undefined, + {} | undefined, + ] + >; insert( - request: protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.ISslCertsInsertResponse, - protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.ISslCertsInsertResponse, + protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest | null | undefined, + {} | null | undefined + >, + ): void; insert( - request: protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest, - callback: Callback< - protos.google.cloud.sql.v1.ISslCertsInsertResponse, - protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest, + callback: Callback< + protos.google.cloud.sql.v1.ISslCertsInsertResponse, + protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest | null | undefined, + {} | null | undefined + >, + ): void; insert( - request?: protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.ISslCertsInsertResponse, - protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.ISslCertsInsertResponse, - protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.ISslCertsInsertResponse, - protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.ISslCertsInsertResponse, + protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.ISslCertsInsertResponse, + protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('insert request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.ISslCertsInsertResponse, - protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.ISslCertsInsertResponse, + | protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('insert response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.insert(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.ISslCertsInsertResponse, - protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest|undefined, - {}|undefined - ]) => { - this._log.info('insert response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .insert(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.ISslCertsInsertResponse, + protos.google.cloud.sql.v1.ISqlSslCertsInsertRequest | undefined, + {} | undefined, + ]) => { + this._log.info('insert response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists all of the current SSL certificates for the instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SslCertsListResponse|SslCertsListResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_ssl_certs_service.list.js - * region_tag:sqladmin_v1_generated_SqlSslCertsService_List_async - */ + /** + * Lists all of the current SSL certificates for the instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.SslCertsListResponse|SslCertsListResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_ssl_certs_service.list.js + * region_tag:sqladmin_v1_generated_SqlSslCertsService_List_async + */ list( - request?: protos.google.cloud.sql.v1.ISqlSslCertsListRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.ISslCertsListResponse, - protos.google.cloud.sql.v1.ISqlSslCertsListRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlSslCertsListRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.ISslCertsListResponse, + protos.google.cloud.sql.v1.ISqlSslCertsListRequest | undefined, + {} | undefined, + ] + >; list( - request: protos.google.cloud.sql.v1.ISqlSslCertsListRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.ISslCertsListResponse, - protos.google.cloud.sql.v1.ISqlSslCertsListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlSslCertsListRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.ISslCertsListResponse, + protos.google.cloud.sql.v1.ISqlSslCertsListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request: protos.google.cloud.sql.v1.ISqlSslCertsListRequest, - callback: Callback< - protos.google.cloud.sql.v1.ISslCertsListResponse, - protos.google.cloud.sql.v1.ISqlSslCertsListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlSslCertsListRequest, + callback: Callback< + protos.google.cloud.sql.v1.ISslCertsListResponse, + protos.google.cloud.sql.v1.ISqlSslCertsListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request?: protos.google.cloud.sql.v1.ISqlSslCertsListRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.ISslCertsListResponse, - protos.google.cloud.sql.v1.ISqlSslCertsListRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlSslCertsListRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.ISslCertsListResponse, - protos.google.cloud.sql.v1.ISqlSslCertsListRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.ISslCertsListResponse, - protos.google.cloud.sql.v1.ISqlSslCertsListRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.sql.v1.ISqlSslCertsListRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.ISslCertsListResponse, + protos.google.cloud.sql.v1.ISqlSslCertsListRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.ISslCertsListResponse, + protos.google.cloud.sql.v1.ISqlSslCertsListRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('list request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.ISslCertsListResponse, - protos.google.cloud.sql.v1.ISqlSslCertsListRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.ISslCertsListResponse, + protos.google.cloud.sql.v1.ISqlSslCertsListRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('list response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.list(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.ISslCertsListResponse, - protos.google.cloud.sql.v1.ISqlSslCertsListRequest|undefined, - {}|undefined - ]) => { - this._log.info('list response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .list(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.ISslCertsListResponse, + protos.google.cloud.sql.v1.ISqlSslCertsListRequest | undefined, + {} | undefined, + ]) => { + this._log.info('list response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -770,12 +942,11 @@ export class SqlSslCertsServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -808,7 +979,7 @@ export class SqlSslCertsServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -824,7 +995,7 @@ export class SqlSslCertsServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -861,13 +1032,15 @@ export class SqlSslCertsServiceClient { */ close(): Promise { if (this.sqlSslCertsServiceStub && !this._terminated) { - return this.sqlSslCertsServiceStub.then(stub => { + return this.sqlSslCertsServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1/sql_tiers_service_client.ts b/packages/google-cloud-sql/src/v1/sql_tiers_service_client.ts index f8c5bac5033..559916f5361 100644 --- a/packages/google-cloud-sql/src/v1/sql_tiers_service_client.ts +++ b/packages/google-cloud-sql/src/v1/sql_tiers_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -44,7 +51,7 @@ export class SqlTiersServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -57,10 +64,10 @@ export class SqlTiersServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlTiersServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlTiersServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlTiersServiceClient. @@ -101,21 +108,42 @@ export class SqlTiersServiceClient { * const client = new SqlTiersServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlTiersServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -140,7 +168,7 @@ export class SqlTiersServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -154,15 +182,11 @@ export class SqlTiersServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -184,14 +208,17 @@ export class SqlTiersServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1.SqlTiersService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1.SqlTiersService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -222,36 +249,40 @@ export class SqlTiersServiceClient { // Put together the "service stub" for // google.cloud.sql.v1.SqlTiersService. this.sqlTiersServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1.SqlTiersService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1.SqlTiersService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1.SqlTiersService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlTiersServiceStubMethods = - ['list']; + const sqlTiersServiceStubMethods = ['list']; for (const methodName of sqlTiersServiceStubMethods) { const callPromise = this.sqlTiersServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -266,8 +297,14 @@ export class SqlTiersServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -278,8 +315,14 @@ export class SqlTiersServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -312,7 +355,7 @@ export class SqlTiersServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -322,8 +365,9 @@ export class SqlTiersServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -334,104 +378,134 @@ export class SqlTiersServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Lists all available machine types (tiers) for Cloud SQL, for example, - * `db-custom-1-3840`. For more information, see - * https://cloud.google.com/sql/pricing. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.project - * Project ID of the project for which to list tiers. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.TiersListResponse|TiersListResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_tiers_service.list.js - * region_tag:sqladmin_v1_generated_SqlTiersService_List_async - */ + /** + * Lists all available machine types (tiers) for Cloud SQL, for example, + * `db-custom-1-3840`. For more information, see + * https://cloud.google.com/sql/pricing. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.project + * Project ID of the project for which to list tiers. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.TiersListResponse|TiersListResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_tiers_service.list.js + * region_tag:sqladmin_v1_generated_SqlTiersService_List_async + */ list( - request?: protos.google.cloud.sql.v1.ISqlTiersListRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.ITiersListResponse, - protos.google.cloud.sql.v1.ISqlTiersListRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlTiersListRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.ITiersListResponse, + protos.google.cloud.sql.v1.ISqlTiersListRequest | undefined, + {} | undefined, + ] + >; list( - request: protos.google.cloud.sql.v1.ISqlTiersListRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.ITiersListResponse, - protos.google.cloud.sql.v1.ISqlTiersListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlTiersListRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.ITiersListResponse, + protos.google.cloud.sql.v1.ISqlTiersListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request: protos.google.cloud.sql.v1.ISqlTiersListRequest, - callback: Callback< - protos.google.cloud.sql.v1.ITiersListResponse, - protos.google.cloud.sql.v1.ISqlTiersListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlTiersListRequest, + callback: Callback< + protos.google.cloud.sql.v1.ITiersListResponse, + protos.google.cloud.sql.v1.ISqlTiersListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request?: protos.google.cloud.sql.v1.ISqlTiersListRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.ITiersListResponse, - protos.google.cloud.sql.v1.ISqlTiersListRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlTiersListRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.ITiersListResponse, - protos.google.cloud.sql.v1.ISqlTiersListRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.ITiersListResponse, - protos.google.cloud.sql.v1.ISqlTiersListRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.sql.v1.ISqlTiersListRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.ITiersListResponse, + protos.google.cloud.sql.v1.ISqlTiersListRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.ITiersListResponse, + protos.google.cloud.sql.v1.ISqlTiersListRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('list request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.ITiersListResponse, - protos.google.cloud.sql.v1.ISqlTiersListRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.ITiersListResponse, + protos.google.cloud.sql.v1.ISqlTiersListRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('list response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.list(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.ITiersListResponse, - protos.google.cloud.sql.v1.ISqlTiersListRequest|undefined, - {}|undefined - ]) => { - this._log.info('list response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .list(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.ITiersListResponse, + protos.google.cloud.sql.v1.ISqlTiersListRequest | undefined, + {} | undefined, + ]) => { + this._log.info('list response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -466,12 +540,11 @@ export class SqlTiersServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -504,7 +577,7 @@ export class SqlTiersServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -520,7 +593,7 @@ export class SqlTiersServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -557,13 +630,15 @@ export class SqlTiersServiceClient { */ close(): Promise { if (this.sqlTiersServiceStub && !this._terminated) { - return this.sqlTiersServiceStub.then(stub => { + return this.sqlTiersServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1/sql_users_service_client.ts b/packages/google-cloud-sql/src/v1/sql_users_service_client.ts index 9550f405ca0..4ef6422ba95 100644 --- a/packages/google-cloud-sql/src/v1/sql_users_service_client.ts +++ b/packages/google-cloud-sql/src/v1/sql_users_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -44,7 +51,7 @@ export class SqlUsersServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -57,10 +64,10 @@ export class SqlUsersServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlUsersServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlUsersServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlUsersServiceClient. @@ -101,21 +108,42 @@ export class SqlUsersServiceClient { * const client = new SqlUsersServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlUsersServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -140,7 +168,7 @@ export class SqlUsersServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -154,15 +182,11 @@ export class SqlUsersServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -184,14 +208,17 @@ export class SqlUsersServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1.SqlUsersService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1.SqlUsersService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -222,36 +249,46 @@ export class SqlUsersServiceClient { // Put together the "service stub" for // google.cloud.sql.v1.SqlUsersService. this.sqlUsersServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1.SqlUsersService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1.SqlUsersService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1.SqlUsersService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlUsersServiceStubMethods = - ['delete', 'get', 'insert', 'list', 'update']; + const sqlUsersServiceStubMethods = [ + 'delete', + 'get', + 'insert', + 'list', + 'update', + ]; for (const methodName of sqlUsersServiceStubMethods) { const callPromise = this.sqlUsersServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -266,8 +303,14 @@ export class SqlUsersServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -278,8 +321,14 @@ export class SqlUsersServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -312,7 +361,7 @@ export class SqlUsersServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -322,8 +371,9 @@ export class SqlUsersServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -334,515 +384,665 @@ export class SqlUsersServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Deletes a user from a Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.host - * Host of the user in the instance. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.name - * Name of the user in the instance. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_users_service.delete.js - * region_tag:sqladmin_v1_generated_SqlUsersService_Delete_async - */ + /** + * Deletes a user from a Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.host + * Host of the user in the instance. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.name + * Name of the user in the instance. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_users_service.delete.js + * region_tag:sqladmin_v1_generated_SqlUsersService_Delete_async + */ delete( - request?: protos.google.cloud.sql.v1.ISqlUsersDeleteRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersDeleteRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlUsersDeleteRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersDeleteRequest | undefined, + {} | undefined, + ] + >; delete( - request: protos.google.cloud.sql.v1.ISqlUsersDeleteRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlUsersDeleteRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersDeleteRequest | null | undefined, + {} | null | undefined + >, + ): void; delete( - request: protos.google.cloud.sql.v1.ISqlUsersDeleteRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlUsersDeleteRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersDeleteRequest | null | undefined, + {} | null | undefined + >, + ): void; delete( - request?: protos.google.cloud.sql.v1.ISqlUsersDeleteRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersDeleteRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlUsersDeleteRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersDeleteRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersDeleteRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.sql.v1.ISqlUsersDeleteRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersDeleteRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersDeleteRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('delete request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersDeleteRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersDeleteRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('delete response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.delete(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersDeleteRequest|undefined, - {}|undefined - ]) => { - this._log.info('delete response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .delete(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersDeleteRequest | undefined, + {} | undefined, + ]) => { + this._log.info('delete response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Retrieves a resource containing information about a user. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.name - * User of the instance. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {string} request.host - * Host of a user of the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.User|User}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_users_service.get.js - * region_tag:sqladmin_v1_generated_SqlUsersService_Get_async - */ + /** + * Retrieves a resource containing information about a user. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.name + * User of the instance. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {string} request.host + * Host of a user of the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.User|User}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_users_service.get.js + * region_tag:sqladmin_v1_generated_SqlUsersService_Get_async + */ get( - request?: protos.google.cloud.sql.v1.ISqlUsersGetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IUser, - protos.google.cloud.sql.v1.ISqlUsersGetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlUsersGetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IUser, + protos.google.cloud.sql.v1.ISqlUsersGetRequest | undefined, + {} | undefined, + ] + >; get( - request: protos.google.cloud.sql.v1.ISqlUsersGetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IUser, - protos.google.cloud.sql.v1.ISqlUsersGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlUsersGetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IUser, + protos.google.cloud.sql.v1.ISqlUsersGetRequest | null | undefined, + {} | null | undefined + >, + ): void; get( - request: protos.google.cloud.sql.v1.ISqlUsersGetRequest, - callback: Callback< - protos.google.cloud.sql.v1.IUser, - protos.google.cloud.sql.v1.ISqlUsersGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlUsersGetRequest, + callback: Callback< + protos.google.cloud.sql.v1.IUser, + protos.google.cloud.sql.v1.ISqlUsersGetRequest | null | undefined, + {} | null | undefined + >, + ): void; get( - request?: protos.google.cloud.sql.v1.ISqlUsersGetRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IUser, - protos.google.cloud.sql.v1.ISqlUsersGetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlUsersGetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IUser, - protos.google.cloud.sql.v1.ISqlUsersGetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IUser, - protos.google.cloud.sql.v1.ISqlUsersGetRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.sql.v1.ISqlUsersGetRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IUser, + protos.google.cloud.sql.v1.ISqlUsersGetRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IUser, + protos.google.cloud.sql.v1.ISqlUsersGetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'name': request.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + name: request.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('get request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IUser, - protos.google.cloud.sql.v1.ISqlUsersGetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IUser, + protos.google.cloud.sql.v1.ISqlUsersGetRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('get response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.get(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IUser, - protos.google.cloud.sql.v1.ISqlUsersGetRequest|undefined, - {}|undefined - ]) => { - this._log.info('get response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .get(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IUser, + protos.google.cloud.sql.v1.ISqlUsersGetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('get response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Creates a new user in a Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1.User} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_users_service.insert.js - * region_tag:sqladmin_v1_generated_SqlUsersService_Insert_async - */ + /** + * Creates a new user in a Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1.User} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_users_service.insert.js + * region_tag:sqladmin_v1_generated_SqlUsersService_Insert_async + */ insert( - request?: protos.google.cloud.sql.v1.ISqlUsersInsertRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersInsertRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlUsersInsertRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersInsertRequest | undefined, + {} | undefined, + ] + >; insert( - request: protos.google.cloud.sql.v1.ISqlUsersInsertRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlUsersInsertRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersInsertRequest | null | undefined, + {} | null | undefined + >, + ): void; insert( - request: protos.google.cloud.sql.v1.ISqlUsersInsertRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlUsersInsertRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersInsertRequest | null | undefined, + {} | null | undefined + >, + ): void; insert( - request?: protos.google.cloud.sql.v1.ISqlUsersInsertRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersInsertRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlUsersInsertRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersInsertRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersInsertRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.sql.v1.ISqlUsersInsertRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersInsertRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersInsertRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('insert request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersInsertRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersInsertRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('insert response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.insert(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersInsertRequest|undefined, - {}|undefined - ]) => { - this._log.info('insert response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .insert(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersInsertRequest | undefined, + {} | undefined, + ]) => { + this._log.info('insert response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists users in the specified Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.UsersListResponse|UsersListResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_users_service.list.js - * region_tag:sqladmin_v1_generated_SqlUsersService_List_async - */ + /** + * Lists users in the specified Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.UsersListResponse|UsersListResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_users_service.list.js + * region_tag:sqladmin_v1_generated_SqlUsersService_List_async + */ list( - request?: protos.google.cloud.sql.v1.ISqlUsersListRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IUsersListResponse, - protos.google.cloud.sql.v1.ISqlUsersListRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlUsersListRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IUsersListResponse, + protos.google.cloud.sql.v1.ISqlUsersListRequest | undefined, + {} | undefined, + ] + >; list( - request: protos.google.cloud.sql.v1.ISqlUsersListRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IUsersListResponse, - protos.google.cloud.sql.v1.ISqlUsersListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlUsersListRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IUsersListResponse, + protos.google.cloud.sql.v1.ISqlUsersListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request: protos.google.cloud.sql.v1.ISqlUsersListRequest, - callback: Callback< - protos.google.cloud.sql.v1.IUsersListResponse, - protos.google.cloud.sql.v1.ISqlUsersListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlUsersListRequest, + callback: Callback< + protos.google.cloud.sql.v1.IUsersListResponse, + protos.google.cloud.sql.v1.ISqlUsersListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request?: protos.google.cloud.sql.v1.ISqlUsersListRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IUsersListResponse, - protos.google.cloud.sql.v1.ISqlUsersListRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlUsersListRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IUsersListResponse, - protos.google.cloud.sql.v1.ISqlUsersListRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IUsersListResponse, - protos.google.cloud.sql.v1.ISqlUsersListRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.sql.v1.ISqlUsersListRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IUsersListResponse, + protos.google.cloud.sql.v1.ISqlUsersListRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IUsersListResponse, + protos.google.cloud.sql.v1.ISqlUsersListRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('list request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IUsersListResponse, - protos.google.cloud.sql.v1.ISqlUsersListRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IUsersListResponse, + protos.google.cloud.sql.v1.ISqlUsersListRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('list response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.list(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IUsersListResponse, - protos.google.cloud.sql.v1.ISqlUsersListRequest|undefined, - {}|undefined - ]) => { - this._log.info('list response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .list(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IUsersListResponse, + protos.google.cloud.sql.v1.ISqlUsersListRequest | undefined, + {} | undefined, + ]) => { + this._log.info('list response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Updates an existing user in a Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} [request.host] - * Optional. Host of the user in the instance. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.name - * Name of the user in the instance. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {string[]} [request.databaseRoles] - * Optional. List of database roles to grant to the user. body.database_roles - * will be ignored for update request. - * @param {boolean} [request.revokeExistingRoles] - * Optional. Specifies whether to revoke existing roles that are not present - * in the `database_roles` field. If `false` or unset, the database roles - * specified in `database_roles` are added to the user's existing roles. - * @param {google.cloud.sql.v1.User} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/sql_users_service.update.js - * region_tag:sqladmin_v1_generated_SqlUsersService_Update_async - */ + /** + * Updates an existing user in a Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} [request.host] + * Optional. Host of the user in the instance. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.name + * Name of the user in the instance. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {string[]} [request.databaseRoles] + * Optional. List of database roles to grant to the user. body.database_roles + * will be ignored for update request. + * @param {boolean} [request.revokeExistingRoles] + * Optional. Specifies whether to revoke existing roles that are not present + * in the `database_roles` field. If `false` or unset, the database roles + * specified in `database_roles` are added to the user's existing roles. + * @param {google.cloud.sql.v1.User} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/sql_users_service.update.js + * region_tag:sqladmin_v1_generated_SqlUsersService_Update_async + */ update( - request?: protos.google.cloud.sql.v1.ISqlUsersUpdateRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersUpdateRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1.ISqlUsersUpdateRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersUpdateRequest | undefined, + {} | undefined, + ] + >; update( - request: protos.google.cloud.sql.v1.ISqlUsersUpdateRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersUpdateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlUsersUpdateRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersUpdateRequest | null | undefined, + {} | null | undefined + >, + ): void; update( - request: protos.google.cloud.sql.v1.ISqlUsersUpdateRequest, - callback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersUpdateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1.ISqlUsersUpdateRequest, + callback: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersUpdateRequest | null | undefined, + {} | null | undefined + >, + ): void; update( - request?: protos.google.cloud.sql.v1.ISqlUsersUpdateRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersUpdateRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1.ISqlUsersUpdateRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersUpdateRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersUpdateRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.sql.v1.ISqlUsersUpdateRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersUpdateRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersUpdateRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('update request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersUpdateRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersUpdateRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('update response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.update(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1.IOperation, - protos.google.cloud.sql.v1.ISqlUsersUpdateRequest|undefined, - {}|undefined - ]) => { - this._log.info('update response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .update(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1.IOperation, + protos.google.cloud.sql.v1.ISqlUsersUpdateRequest | undefined, + {} | undefined, + ]) => { + this._log.info('update response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -877,12 +1077,11 @@ export class SqlUsersServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -915,7 +1114,7 @@ export class SqlUsersServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -931,7 +1130,7 @@ export class SqlUsersServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -968,13 +1167,15 @@ export class SqlUsersServiceClient { */ close(): Promise { if (this.sqlUsersServiceStub && !this._terminated) { - return this.sqlUsersServiceStub.then(stub => { + return this.sqlUsersServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1beta4/gapic_metadata.json b/packages/google-cloud-sql/src/v1beta4/gapic_metadata.json index 6c656c511fe..1fd6a330f24 100644 --- a/packages/google-cloud-sql/src/v1beta4/gapic_metadata.json +++ b/packages/google-cloud-sql/src/v1beta4/gapic_metadata.json @@ -137,6 +137,11 @@ "getConnectSettings" ] }, + "ResolveConnectSettings": { + "methods": [ + "resolveConnectSettings" + ] + }, "GenerateEphemeralCert": { "methods": [ "generateEphemeralCert" @@ -152,6 +157,11 @@ "getConnectSettings" ] }, + "ResolveConnectSettings": { + "methods": [ + "resolveConnectSettings" + ] + }, "GenerateEphemeralCert": { "methods": [ "generateEphemeralCert" @@ -235,6 +245,24 @@ } } }, + "SqlDataService": { + "clients": { + "grpc": { + "libraryClient": "SqlDataServiceClient", + "rpcs": { + "StreamSqlData": { + "methods": [ + "streamSqlData" + ] + } + } + }, + "grpc-fallback": { + "libraryClient": "SqlDataServiceClient", + "rpcs": {} + } + } + }, "SqlFlagsService": { "clients": { "grpc": { diff --git a/packages/google-cloud-sql/src/v1beta4/index.ts b/packages/google-cloud-sql/src/v1beta4/index.ts index c1b5dcdaf6e..ce5dfb57311 100644 --- a/packages/google-cloud-sql/src/v1beta4/index.ts +++ b/packages/google-cloud-sql/src/v1beta4/index.ts @@ -16,14 +16,15 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** -export {SqlBackupRunsServiceClient} from './sql_backup_runs_service_client'; -export {SqlBackupsServiceClient} from './sql_backups_service_client'; -export {SqlConnectServiceClient} from './sql_connect_service_client'; -export {SqlDatabasesServiceClient} from './sql_databases_service_client'; -export {SqlFlagsServiceClient} from './sql_flags_service_client'; - -export {SqlInstancesServiceClient} from './sql_instances_service_client'; -export {SqlOperationsServiceClient} from './sql_operations_service_client'; -export {SqlSslCertsServiceClient} from './sql_ssl_certs_service_client'; -export {SqlTiersServiceClient} from './sql_tiers_service_client'; -export {SqlUsersServiceClient} from './sql_users_service_client'; +export { SqlBackupRunsServiceClient } from './sql_backup_runs_service_client'; +export { SqlBackupsServiceClient } from './sql_backups_service_client'; +export { SqlConnectServiceClient } from './sql_connect_service_client'; +export { SqlDatabasesServiceClient } from './sql_databases_service_client'; +export { SqlDataServiceClient } from './sql_data_service_client'; +export { SqlFlagsServiceClient } from './sql_flags_service_client'; +export { SqlIamPoliciesServiceClient } from './sql_iam_policies_service_client'; +export { SqlInstancesServiceClient } from './sql_instances_service_client'; +export { SqlOperationsServiceClient } from './sql_operations_service_client'; +export { SqlSslCertsServiceClient } from './sql_ssl_certs_service_client'; +export { SqlTiersServiceClient } from './sql_tiers_service_client'; +export { SqlUsersServiceClient } from './sql_users_service_client'; diff --git a/packages/google-cloud-sql/src/v1beta4/sql_backup_runs_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_backup_runs_service_client.ts index 56b0124a7c7..1d8a6b7aca1 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_backup_runs_service_client.ts +++ b/packages/google-cloud-sql/src/v1beta4/sql_backup_runs_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -43,7 +50,7 @@ export class SqlBackupRunsServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -56,10 +63,10 @@ export class SqlBackupRunsServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlBackupRunsServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlBackupRunsServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlBackupRunsServiceClient. @@ -100,21 +107,42 @@ export class SqlBackupRunsServiceClient { * const client = new SqlBackupRunsServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlBackupRunsServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -139,7 +167,7 @@ export class SqlBackupRunsServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -153,15 +181,11 @@ export class SqlBackupRunsServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -183,17 +207,20 @@ export class SqlBackupRunsServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), projectPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}' + 'projects/{project}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1beta4.SqlBackupRunsService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1beta4.SqlBackupRunsService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -224,36 +251,40 @@ export class SqlBackupRunsServiceClient { // Put together the "service stub" for // google.cloud.sql.v1beta4.SqlBackupRunsService. this.sqlBackupRunsServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1beta4.SqlBackupRunsService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1beta4.SqlBackupRunsService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1beta4.SqlBackupRunsService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlBackupRunsServiceStubMethods = - ['delete', 'get', 'insert', 'list']; + const sqlBackupRunsServiceStubMethods = ['delete', 'get', 'insert', 'list']; for (const methodName of sqlBackupRunsServiceStubMethods) { const callPromise = this.sqlBackupRunsServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -268,8 +299,14 @@ export class SqlBackupRunsServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -280,8 +317,14 @@ export class SqlBackupRunsServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -314,7 +357,7 @@ export class SqlBackupRunsServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -324,8 +367,9 @@ export class SqlBackupRunsServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -336,413 +380,579 @@ export class SqlBackupRunsServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Deletes the backup taken by a backup run. - * - * @param {Object} request - * The request object that will be sent. - * @param {number} request.id - * The ID of the backup run to delete. To find a backup run ID, use the - * [list](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/backupRuns/list) - * method. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_backup_runs_service.delete.js - * region_tag:sqladmin_v1beta4_generated_SqlBackupRunsService_Delete_async - */ + /** + * Deletes the backup taken by a backup run. + * + * @param {Object} request + * The request object that will be sent. + * @param {number} request.id + * The ID of the backup run to delete. To find a backup run ID, use the + * [list](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/backupRuns/list) + * method. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_backup_runs_service.delete.js + * region_tag:sqladmin_v1beta4_generated_SqlBackupRunsService_Delete_async + */ delete( - request?: protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest | undefined, + {} | undefined, + ] + >; delete( - request: protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest + | null + | undefined, + {} | null | undefined + >, + ): void; delete( - request: protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest + | null + | undefined, + {} | null | undefined + >, + ): void; delete( - request?: protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'id': request.id?.toString() ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + id: request.id?.toString() ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('delete request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('delete response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.delete(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest|undefined, - {}|undefined - ]) => { - this._log.info('delete response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .delete(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsDeleteRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('delete response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Retrieves a resource containing information about a backup run. - * - * @param {Object} request - * The request object that will be sent. - * @param {number} request.id - * The ID of this backup run. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.BackupRun|BackupRun}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_backup_runs_service.get.js - * region_tag:sqladmin_v1beta4_generated_SqlBackupRunsService_Get_async - */ + /** + * Retrieves a resource containing information about a backup run. + * + * @param {Object} request + * The request object that will be sent. + * @param {number} request.id + * The ID of this backup run. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.BackupRun|BackupRun}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_backup_runs_service.get.js + * region_tag:sqladmin_v1beta4_generated_SqlBackupRunsService_Get_async + */ get( - request?: protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IBackupRun, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IBackupRun, + protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest | undefined, + {} | undefined, + ] + >; get( - request: protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IBackupRun, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IBackupRun, + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest + | null + | undefined, + {} | null | undefined + >, + ): void; get( - request: protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IBackupRun, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IBackupRun, + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest + | null + | undefined, + {} | null | undefined + >, + ): void; get( - request?: protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IBackupRun, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IBackupRun, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IBackupRun, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IBackupRun, + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IBackupRun, + protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'id': request.id?.toString() ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + id: request.id?.toString() ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('get request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IBackupRun, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IBackupRun, + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('get response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.get(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IBackupRun, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest|undefined, - {}|undefined - ]) => { - this._log.info('get response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .get(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IBackupRun, + protos.google.cloud.sql.v1beta4.ISqlBackupRunsGetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('get response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Creates a new backup run on demand. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.BackupRun} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_backup_runs_service.insert.js - * region_tag:sqladmin_v1beta4_generated_SqlBackupRunsService_Insert_async - */ + /** + * Creates a new backup run on demand. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.BackupRun} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_backup_runs_service.insert.js + * region_tag:sqladmin_v1beta4_generated_SqlBackupRunsService_Insert_async + */ insert( - request?: protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest | undefined, + {} | undefined, + ] + >; insert( - request: protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest + | null + | undefined, + {} | null | undefined + >, + ): void; insert( - request: protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest + | null + | undefined, + {} | null | undefined + >, + ): void; insert( - request?: protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('insert request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('insert response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.insert(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest|undefined, - {}|undefined - ]) => { - this._log.info('insert response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .insert(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsInsertRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('insert response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists all backup runs associated with the project or a given instance and - * configuration in the reverse chronological order of the backup initiation - * time. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID, or "-" for all instances. This does not include - * the project ID. - * @param {number} request.maxResults - * Maximum number of backup runs per response. - * @param {string} request.pageToken - * A previously-returned page token representing part of the larger set of - * results to view. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.BackupRunsListResponse|BackupRunsListResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_backup_runs_service.list.js - * region_tag:sqladmin_v1beta4_generated_SqlBackupRunsService_List_async - */ + /** + * Lists all backup runs associated with the project or a given instance and + * configuration in the reverse chronological order of the backup initiation + * time. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID, or "-" for all instances. This does not include + * the project ID. + * @param {number} request.maxResults + * Maximum number of backup runs per response. + * @param {string} request.pageToken + * A previously-returned page token representing part of the larger set of + * results to view. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.BackupRunsListResponse|BackupRunsListResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_backup_runs_service.list.js + * region_tag:sqladmin_v1beta4_generated_SqlBackupRunsService_List_async + */ list( - request?: protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IBackupRunsListResponse, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IBackupRunsListResponse, + protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest | undefined, + {} | undefined, + ] + >; list( - request: protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IBackupRunsListResponse, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IBackupRunsListResponse, + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest + | null + | undefined, + {} | null | undefined + >, + ): void; list( - request: protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IBackupRunsListResponse, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IBackupRunsListResponse, + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest + | null + | undefined, + {} | null | undefined + >, + ): void; list( - request?: protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IBackupRunsListResponse, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IBackupRunsListResponse, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IBackupRunsListResponse, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IBackupRunsListResponse, + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IBackupRunsListResponse, + protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('list request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IBackupRunsListResponse, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IBackupRunsListResponse, + | protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('list response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.list(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IBackupRunsListResponse, - protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest|undefined, - {}|undefined - ]) => { - this._log.info('list response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .list(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IBackupRunsListResponse, + protos.google.cloud.sql.v1beta4.ISqlBackupRunsListRequest | undefined, + {} | undefined, + ]) => { + this._log.info('list response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -777,12 +987,11 @@ export class SqlBackupRunsServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -815,7 +1024,7 @@ export class SqlBackupRunsServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -831,7 +1040,7 @@ export class SqlBackupRunsServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -866,7 +1075,7 @@ export class SqlBackupRunsServiceClient { * @param {string} project * @returns {string} Resource name string. */ - projectPath(project:string) { + projectPath(project: string) { return this.pathTemplates.projectPathTemplate.render({ project: project, }); @@ -891,13 +1100,15 @@ export class SqlBackupRunsServiceClient { */ close(): Promise { if (this.sqlBackupRunsServiceStub && !this._terminated) { - return this.sqlBackupRunsServiceStub.then(stub => { + return this.sqlBackupRunsServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1beta4/sql_backup_runs_service_proto_list.json b/packages/google-cloud-sql/src/v1beta4/sql_backup_runs_service_proto_list.json index 3d9dcd428e8..622fead68d3 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_backup_runs_service_proto_list.json +++ b/packages/google-cloud-sql/src/v1beta4/sql_backup_runs_service_proto_list.json @@ -1,6 +1,7 @@ [ "../../protos/google/cloud/sql/v1beta4/cloud_sql.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_connect.proto", + "../../protos/google/cloud/sql/v1beta4/cloud_sql_data.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_iam_policies.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_resources.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_tiers.proto", diff --git a/packages/google-cloud-sql/src/v1beta4/sql_backups_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_backups_service_client.ts index 21c870f5d11..8c51bd7530e 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_backups_service_client.ts +++ b/packages/google-cloud-sql/src/v1beta4/sql_backups_service_client.ts @@ -18,11 +18,20 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, PaginationCallback, GaxCall, LocationsClient, LocationProtos} from 'google-gax'; -import {Transform} from 'stream'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + PaginationCallback, + GaxCall, + LocationsClient, + LocationProtos, +} from 'google-gax'; +import { Transform } from 'stream'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -43,7 +52,7 @@ export class SqlBackupsServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -56,10 +65,10 @@ export class SqlBackupsServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlBackupsServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlBackupsServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlBackupsServiceClient. @@ -100,21 +109,42 @@ export class SqlBackupsServiceClient { * const client = new SqlBackupsServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlBackupsServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -139,7 +169,7 @@ export class SqlBackupsServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -153,15 +183,11 @@ export class SqlBackupsServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -183,10 +209,10 @@ export class SqlBackupsServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), projectPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}' + 'projects/{project}', ), }; @@ -194,14 +220,20 @@ export class SqlBackupsServiceClient { // (e.g. 50 results at a time, with tokens to get subsequent // pages). Denote the keys used for pagination and results. this.descriptors.page = { - listBackups: - new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'backups') + listBackups: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'backups', + ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1beta4.SqlBackupsService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1beta4.SqlBackupsService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -232,37 +264,46 @@ export class SqlBackupsServiceClient { // Put together the "service stub" for // google.cloud.sql.v1beta4.SqlBackupsService. this.sqlBackupsServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1beta4.SqlBackupsService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1beta4.SqlBackupsService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1beta4.SqlBackupsService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlBackupsServiceStubMethods = - ['createBackup', 'getBackup', 'listBackups', 'updateBackup', 'deleteBackup']; + const sqlBackupsServiceStubMethods = [ + 'createBackup', + 'getBackup', + 'listBackups', + 'updateBackup', + 'deleteBackup', + ]; for (const methodName of sqlBackupsServiceStubMethods) { const callPromise = this.sqlBackupsServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - this.descriptors.page[methodName] || - undefined; + const descriptor = this.descriptors.page[methodName] || undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -277,8 +318,14 @@ export class SqlBackupsServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -289,8 +336,14 @@ export class SqlBackupsServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -323,7 +376,7 @@ export class SqlBackupsServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -333,8 +386,9 @@ export class SqlBackupsServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -345,490 +399,641 @@ export class SqlBackupsServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Creates a backup for a Cloud SQL instance. This API can be used only to - * create on-demand backups. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent resource where this backup is created. - * Format: projects/{project} - * @param {google.cloud.sql.v1beta4.Backup} request.backup - * Required. The Backup to create. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_backups_service.create_backup.js - * region_tag:sqladmin_v1beta4_generated_SqlBackupsService_CreateBackup_async - */ + /** + * Creates a backup for a Cloud SQL instance. This API can be used only to + * create on-demand backups. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent resource where this backup is created. + * Format: projects/{project} + * @param {google.cloud.sql.v1beta4.Backup} request.backup + * Required. The Backup to create. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_backups_service.create_backup.js + * region_tag:sqladmin_v1beta4_generated_SqlBackupsService_CreateBackup_async + */ createBackup( - request?: protos.google.cloud.sql.v1beta4.ICreateBackupRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ICreateBackupRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ICreateBackupRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ICreateBackupRequest | undefined, + {} | undefined, + ] + >; createBackup( - request: protos.google.cloud.sql.v1beta4.ICreateBackupRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ICreateBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ICreateBackupRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ICreateBackupRequest | null | undefined, + {} | null | undefined + >, + ): void; createBackup( - request: protos.google.cloud.sql.v1beta4.ICreateBackupRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ICreateBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ICreateBackupRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ICreateBackupRequest | null | undefined, + {} | null | undefined + >, + ): void; createBackup( - request?: protos.google.cloud.sql.v1beta4.ICreateBackupRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ICreateBackupRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ICreateBackupRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ICreateBackupRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ICreateBackupRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ICreateBackupRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ICreateBackupRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ICreateBackupRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'parent': request.parent ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('createBackup request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ICreateBackupRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ICreateBackupRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('createBackup response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.createBackup(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ICreateBackupRequest|undefined, - {}|undefined - ]) => { - this._log.info('createBackup response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .createBackup(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ICreateBackupRequest | undefined, + {} | undefined, + ]) => { + this._log.info('createBackup response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Retrieves a resource containing information about a backup. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the backup to retrieve. - * Format: projects/{project}/backups/{backup} - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Backup|Backup}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_backups_service.get_backup.js - * region_tag:sqladmin_v1beta4_generated_SqlBackupsService_GetBackup_async - */ + /** + * Retrieves a resource containing information about a backup. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the backup to retrieve. + * Format: projects/{project}/backups/{backup} + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Backup|Backup}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_backups_service.get_backup.js + * region_tag:sqladmin_v1beta4_generated_SqlBackupsService_GetBackup_async + */ getBackup( - request?: protos.google.cloud.sql.v1beta4.IGetBackupRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IBackup, - protos.google.cloud.sql.v1beta4.IGetBackupRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.IGetBackupRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IBackup, + protos.google.cloud.sql.v1beta4.IGetBackupRequest | undefined, + {} | undefined, + ] + >; getBackup( - request: protos.google.cloud.sql.v1beta4.IGetBackupRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IBackup, - protos.google.cloud.sql.v1beta4.IGetBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.IGetBackupRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IBackup, + protos.google.cloud.sql.v1beta4.IGetBackupRequest | null | undefined, + {} | null | undefined + >, + ): void; getBackup( - request: protos.google.cloud.sql.v1beta4.IGetBackupRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IBackup, - protos.google.cloud.sql.v1beta4.IGetBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.IGetBackupRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IBackup, + protos.google.cloud.sql.v1beta4.IGetBackupRequest | null | undefined, + {} | null | undefined + >, + ): void; getBackup( - request?: protos.google.cloud.sql.v1beta4.IGetBackupRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IBackup, - protos.google.cloud.sql.v1beta4.IGetBackupRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.IGetBackupRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IBackup, - protos.google.cloud.sql.v1beta4.IGetBackupRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IBackup, - protos.google.cloud.sql.v1beta4.IGetBackupRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.sql.v1beta4.IGetBackupRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IBackup, + protos.google.cloud.sql.v1beta4.IGetBackupRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IBackup, + protos.google.cloud.sql.v1beta4.IGetBackupRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'name': request.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('getBackup request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IBackup, - protos.google.cloud.sql.v1beta4.IGetBackupRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IBackup, + protos.google.cloud.sql.v1beta4.IGetBackupRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getBackup response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getBackup(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IBackup, - protos.google.cloud.sql.v1beta4.IGetBackupRequest|undefined, - {}|undefined - ]) => { - this._log.info('getBackup response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getBackup(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IBackup, + protos.google.cloud.sql.v1beta4.IGetBackupRequest | undefined, + {} | undefined, + ]) => { + this._log.info('getBackup response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Updates the retention period and the description of the backup. You can use - * this API to update final backups only. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.cloud.sql.v1beta4.Backup} request.backup - * Required. The backup to update. - * The backup’s `name` field is used to identify the backup to update. - * Format: projects/{project}/backups/{backup} - * @param {google.protobuf.FieldMask} request.updateMask - * The list of fields that you can update. You can update only the description - * and retention period of the final backup. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_backups_service.update_backup.js - * region_tag:sqladmin_v1beta4_generated_SqlBackupsService_UpdateBackup_async - */ + /** + * Updates the retention period and the description of the backup. You can use + * this API to update final backups only. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.sql.v1beta4.Backup} request.backup + * Required. The backup to update. + * The backup’s `name` field is used to identify the backup to update. + * Format: projects/{project}/backups/{backup} + * @param {google.protobuf.FieldMask} request.updateMask + * The list of fields that you can update. You can update only the description + * and retention period of the final backup. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_backups_service.update_backup.js + * region_tag:sqladmin_v1beta4_generated_SqlBackupsService_UpdateBackup_async + */ updateBackup( - request?: protos.google.cloud.sql.v1beta4.IUpdateBackupRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.IUpdateBackupRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.IUpdateBackupRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.IUpdateBackupRequest | undefined, + {} | undefined, + ] + >; updateBackup( - request: protos.google.cloud.sql.v1beta4.IUpdateBackupRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.IUpdateBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.IUpdateBackupRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.IUpdateBackupRequest | null | undefined, + {} | null | undefined + >, + ): void; updateBackup( - request: protos.google.cloud.sql.v1beta4.IUpdateBackupRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.IUpdateBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.IUpdateBackupRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.IUpdateBackupRequest | null | undefined, + {} | null | undefined + >, + ): void; updateBackup( - request?: protos.google.cloud.sql.v1beta4.IUpdateBackupRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.IUpdateBackupRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.IUpdateBackupRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.IUpdateBackupRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.IUpdateBackupRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.IUpdateBackupRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.IUpdateBackupRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.IUpdateBackupRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'backup.name': request.backup!.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + 'backup.name': request.backup!.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('updateBackup request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.IUpdateBackupRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.IUpdateBackupRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('updateBackup response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.updateBackup(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.IUpdateBackupRequest|undefined, - {}|undefined - ]) => { - this._log.info('updateBackup response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .updateBackup(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.IUpdateBackupRequest | undefined, + {} | undefined, + ]) => { + this._log.info('updateBackup response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Deletes the backup. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the backup to delete. - * Format: projects/{project}/backups/{backup} - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_backups_service.delete_backup.js - * region_tag:sqladmin_v1beta4_generated_SqlBackupsService_DeleteBackup_async - */ + /** + * Deletes the backup. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the backup to delete. + * Format: projects/{project}/backups/{backup} + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_backups_service.delete_backup.js + * region_tag:sqladmin_v1beta4_generated_SqlBackupsService_DeleteBackup_async + */ deleteBackup( - request?: protos.google.cloud.sql.v1beta4.IDeleteBackupRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.IDeleteBackupRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.IDeleteBackupRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.IDeleteBackupRequest | undefined, + {} | undefined, + ] + >; deleteBackup( - request: protos.google.cloud.sql.v1beta4.IDeleteBackupRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.IDeleteBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.IDeleteBackupRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.IDeleteBackupRequest | null | undefined, + {} | null | undefined + >, + ): void; deleteBackup( - request: protos.google.cloud.sql.v1beta4.IDeleteBackupRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.IDeleteBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.IDeleteBackupRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.IDeleteBackupRequest | null | undefined, + {} | null | undefined + >, + ): void; deleteBackup( - request?: protos.google.cloud.sql.v1beta4.IDeleteBackupRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.IDeleteBackupRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.IDeleteBackupRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.IDeleteBackupRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.IDeleteBackupRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.IDeleteBackupRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.IDeleteBackupRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.IDeleteBackupRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'name': request.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + name: request.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('deleteBackup request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.IDeleteBackupRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.IDeleteBackupRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('deleteBackup response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.deleteBackup(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.IDeleteBackupRequest|undefined, - {}|undefined - ]) => { - this._log.info('deleteBackup response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .deleteBackup(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.IDeleteBackupRequest | undefined, + {} | undefined, + ]) => { + this._log.info('deleteBackup response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } - /** - * Lists all backups associated with the project. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent that owns this collection of backups. - * Format: projects/{project} - * @param {number} request.pageSize - * The maximum number of backups to return per response. The service might - * return fewer backups than this value. If a value for this parameter isn't - * specified, then, at most, 500 backups are returned. The maximum value is - * 2,000. Any values that you set, which are greater than 2,000, are changed - * to 2,000. - * @param {string} request.pageToken - * A page token, received from a previous `ListBackups` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListBackups` must match - * the call that provided the page token. - * @param {string} request.filter - * Multiple filter queries are separated by spaces. For example, - * 'instance:abc AND type:FINAL, 'location:us', - * 'backupInterval.startTime>=1950-01-01T01:01:25.771Z'. You can filter by - * type, instance, backupInterval.startTime (creation time), or location. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is Array of {@link protos.google.cloud.sql.v1beta4.Backup|Backup}. - * The client library will perform auto-pagination by default: it will call the API as many - * times as needed and will merge results from all the pages into this array. - * Note that it can affect your quota. - * We recommend using `listBackupsAsync()` - * method described below for async iteration which you can stop as needed. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } - * for more details and examples. - */ + /** + * Lists all backups associated with the project. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent that owns this collection of backups. + * Format: projects/{project} + * @param {number} request.pageSize + * The maximum number of backups to return per response. The service might + * return fewer backups than this value. If a value for this parameter isn't + * specified, then, at most, 500 backups are returned. The maximum value is + * 2,000. Any values that you set, which are greater than 2,000, are changed + * to 2,000. + * @param {string} request.pageToken + * A page token, received from a previous `ListBackups` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListBackups` must match + * the call that provided the page token. + * @param {string} request.filter + * Multiple filter queries are separated by spaces. For example, + * 'instance:abc AND type:FINAL, 'location:us', + * 'backupInterval.startTime>=1950-01-01T01:01:25.771Z'. You can filter by + * type, instance, backupInterval.startTime (creation time), or location. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is Array of {@link protos.google.cloud.sql.v1beta4.Backup|Backup}. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed and will merge results from all the pages into this array. + * Note that it can affect your quota. + * We recommend using `listBackupsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + */ listBackups( - request?: protos.google.cloud.sql.v1beta4.IListBackupsRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IBackup[], - protos.google.cloud.sql.v1beta4.IListBackupsRequest|null, - protos.google.cloud.sql.v1beta4.IListBackupsResponse - ]>; + request?: protos.google.cloud.sql.v1beta4.IListBackupsRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IBackup[], + protos.google.cloud.sql.v1beta4.IListBackupsRequest | null, + protos.google.cloud.sql.v1beta4.IListBackupsResponse, + ] + >; listBackups( - request: protos.google.cloud.sql.v1beta4.IListBackupsRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.sql.v1beta4.IListBackupsRequest, - protos.google.cloud.sql.v1beta4.IListBackupsResponse|null|undefined, - protos.google.cloud.sql.v1beta4.IBackup>): void; + request: protos.google.cloud.sql.v1beta4.IListBackupsRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.sql.v1beta4.IListBackupsRequest, + protos.google.cloud.sql.v1beta4.IListBackupsResponse | null | undefined, + protos.google.cloud.sql.v1beta4.IBackup + >, + ): void; listBackups( - request: protos.google.cloud.sql.v1beta4.IListBackupsRequest, - callback: PaginationCallback< - protos.google.cloud.sql.v1beta4.IListBackupsRequest, - protos.google.cloud.sql.v1beta4.IListBackupsResponse|null|undefined, - protos.google.cloud.sql.v1beta4.IBackup>): void; + request: protos.google.cloud.sql.v1beta4.IListBackupsRequest, + callback: PaginationCallback< + protos.google.cloud.sql.v1beta4.IListBackupsRequest, + protos.google.cloud.sql.v1beta4.IListBackupsResponse | null | undefined, + protos.google.cloud.sql.v1beta4.IBackup + >, + ): void; listBackups( - request?: protos.google.cloud.sql.v1beta4.IListBackupsRequest, - optionsOrCallback?: CallOptions|PaginationCallback< - protos.google.cloud.sql.v1beta4.IListBackupsRequest, - protos.google.cloud.sql.v1beta4.IListBackupsResponse|null|undefined, - protos.google.cloud.sql.v1beta4.IBackup>, - callback?: PaginationCallback< + request?: protos.google.cloud.sql.v1beta4.IListBackupsRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< protos.google.cloud.sql.v1beta4.IListBackupsRequest, - protos.google.cloud.sql.v1beta4.IListBackupsResponse|null|undefined, - protos.google.cloud.sql.v1beta4.IBackup>): - Promise<[ - protos.google.cloud.sql.v1beta4.IBackup[], - protos.google.cloud.sql.v1beta4.IListBackupsRequest|null, - protos.google.cloud.sql.v1beta4.IListBackupsResponse - ]>|void { + | protos.google.cloud.sql.v1beta4.IListBackupsResponse + | null + | undefined, + protos.google.cloud.sql.v1beta4.IBackup + >, + callback?: PaginationCallback< + protos.google.cloud.sql.v1beta4.IListBackupsRequest, + protos.google.cloud.sql.v1beta4.IListBackupsResponse | null | undefined, + protos.google.cloud.sql.v1beta4.IBackup + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IBackup[], + protos.google.cloud.sql.v1beta4.IListBackupsRequest | null, + protos.google.cloud.sql.v1beta4.IListBackupsResponse, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'parent': request.parent ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); - const wrappedCallback: PaginationCallback< - protos.google.cloud.sql.v1beta4.IListBackupsRequest, - protos.google.cloud.sql.v1beta4.IListBackupsResponse|null|undefined, - protos.google.cloud.sql.v1beta4.IBackup>|undefined = callback + const wrappedCallback: + | PaginationCallback< + protos.google.cloud.sql.v1beta4.IListBackupsRequest, + | protos.google.cloud.sql.v1beta4.IListBackupsResponse + | null + | undefined, + protos.google.cloud.sql.v1beta4.IBackup + > + | undefined = callback ? (error, values, nextPageRequest, rawResponse) => { this._log.info('listBackups values %j', values); callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. @@ -837,137 +1042,142 @@ export class SqlBackupsServiceClient { this._log.info('listBackups request %j', request); return this.innerApiCalls .listBackups(request, options, wrappedCallback) - ?.then(([response, input, output]: [ - protos.google.cloud.sql.v1beta4.IBackup[], - protos.google.cloud.sql.v1beta4.IListBackupsRequest|null, - protos.google.cloud.sql.v1beta4.IListBackupsResponse - ]) => { - this._log.info('listBackups values %j', response); - return [response, input, output]; - }); + ?.then( + ([response, input, output]: [ + protos.google.cloud.sql.v1beta4.IBackup[], + protos.google.cloud.sql.v1beta4.IListBackupsRequest | null, + protos.google.cloud.sql.v1beta4.IListBackupsResponse, + ]) => { + this._log.info('listBackups values %j', response); + return [response, input, output]; + }, + ); } -/** - * Equivalent to `listBackups`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent that owns this collection of backups. - * Format: projects/{project} - * @param {number} request.pageSize - * The maximum number of backups to return per response. The service might - * return fewer backups than this value. If a value for this parameter isn't - * specified, then, at most, 500 backups are returned. The maximum value is - * 2,000. Any values that you set, which are greater than 2,000, are changed - * to 2,000. - * @param {string} request.pageToken - * A page token, received from a previous `ListBackups` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListBackups` must match - * the call that provided the page token. - * @param {string} request.filter - * Multiple filter queries are separated by spaces. For example, - * 'instance:abc AND type:FINAL, 'location:us', - * 'backupInterval.startTime>=1950-01-01T01:01:25.771Z'. You can filter by - * type, instance, backupInterval.startTime (creation time), or location. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Stream} - * An object stream which emits an object representing {@link protos.google.cloud.sql.v1beta4.Backup|Backup} on 'data' event. - * The client library will perform auto-pagination by default: it will call the API as many - * times as needed. Note that it can affect your quota. - * We recommend using `listBackupsAsync()` - * method described below for async iteration which you can stop as needed. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } - * for more details and examples. - */ + /** + * Equivalent to `listBackups`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent that owns this collection of backups. + * Format: projects/{project} + * @param {number} request.pageSize + * The maximum number of backups to return per response. The service might + * return fewer backups than this value. If a value for this parameter isn't + * specified, then, at most, 500 backups are returned. The maximum value is + * 2,000. Any values that you set, which are greater than 2,000, are changed + * to 2,000. + * @param {string} request.pageToken + * A page token, received from a previous `ListBackups` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListBackups` must match + * the call that provided the page token. + * @param {string} request.filter + * Multiple filter queries are separated by spaces. For example, + * 'instance:abc AND type:FINAL, 'location:us', + * 'backupInterval.startTime>=1950-01-01T01:01:25.771Z'. You can filter by + * type, instance, backupInterval.startTime (creation time), or location. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Stream} + * An object stream which emits an object representing {@link protos.google.cloud.sql.v1beta4.Backup|Backup} on 'data' event. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed. Note that it can affect your quota. + * We recommend using `listBackupsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + */ listBackupsStream( - request?: protos.google.cloud.sql.v1beta4.IListBackupsRequest, - options?: CallOptions): - Transform{ + request?: protos.google.cloud.sql.v1beta4.IListBackupsRequest, + options?: CallOptions, + ): Transform { request = request || {}; options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'parent': request.parent ?? '', - }); + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); const defaultCallSettings = this._defaults['listBackups']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listBackups stream %j', request); return this.descriptors.page.listBackups.createStream( this.innerApiCalls.listBackups as GaxCall, request, - callSettings + callSettings, ); } -/** - * Equivalent to `listBackups`, but returns an iterable object. - * - * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent that owns this collection of backups. - * Format: projects/{project} - * @param {number} request.pageSize - * The maximum number of backups to return per response. The service might - * return fewer backups than this value. If a value for this parameter isn't - * specified, then, at most, 500 backups are returned. The maximum value is - * 2,000. Any values that you set, which are greater than 2,000, are changed - * to 2,000. - * @param {string} request.pageToken - * A page token, received from a previous `ListBackups` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListBackups` must match - * the call that provided the page token. - * @param {string} request.filter - * Multiple filter queries are separated by spaces. For example, - * 'instance:abc AND type:FINAL, 'location:us', - * 'backupInterval.startTime>=1950-01-01T01:01:25.771Z'. You can filter by - * type, instance, backupInterval.startTime (creation time), or location. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Object} - * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. - * When you iterate the returned iterable, each element will be an object representing - * {@link protos.google.cloud.sql.v1beta4.Backup|Backup}. The API will be called under the hood as needed, once per the page, - * so you can stop the iteration when you don't need more results. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_backups_service.list_backups.js - * region_tag:sqladmin_v1beta4_generated_SqlBackupsService_ListBackups_async - */ + /** + * Equivalent to `listBackups`, but returns an iterable object. + * + * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent that owns this collection of backups. + * Format: projects/{project} + * @param {number} request.pageSize + * The maximum number of backups to return per response. The service might + * return fewer backups than this value. If a value for this parameter isn't + * specified, then, at most, 500 backups are returned. The maximum value is + * 2,000. Any values that you set, which are greater than 2,000, are changed + * to 2,000. + * @param {string} request.pageToken + * A page token, received from a previous `ListBackups` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListBackups` must match + * the call that provided the page token. + * @param {string} request.filter + * Multiple filter queries are separated by spaces. For example, + * 'instance:abc AND type:FINAL, 'location:us', + * 'backupInterval.startTime>=1950-01-01T01:01:25.771Z'. You can filter by + * type, instance, backupInterval.startTime (creation time), or location. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Object} + * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. + * When you iterate the returned iterable, each element will be an object representing + * {@link protos.google.cloud.sql.v1beta4.Backup|Backup}. The API will be called under the hood as needed, once per the page, + * so you can stop the iteration when you don't need more results. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_backups_service.list_backups.js + * region_tag:sqladmin_v1beta4_generated_SqlBackupsService_ListBackups_async + */ listBackupsAsync( - request?: protos.google.cloud.sql.v1beta4.IListBackupsRequest, - options?: CallOptions): - AsyncIterable{ + request?: protos.google.cloud.sql.v1beta4.IListBackupsRequest, + options?: CallOptions, + ): AsyncIterable { request = request || {}; options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'parent': request.parent ?? '', - }); + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); const defaultCallSettings = this._defaults['listBackups']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listBackups iterate %j', request); return this.descriptors.page.listBackups.asyncIterate( this.innerApiCalls['listBackups'] as GaxCall, request as {}, - callSettings + callSettings, ) as AsyncIterable; } -/** + + /** * Gets information about a location. * * @param {Object} request @@ -1002,12 +1212,11 @@ export class SqlBackupsServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -1040,7 +1249,7 @@ export class SqlBackupsServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -1056,7 +1265,7 @@ export class SqlBackupsServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -1091,7 +1300,7 @@ export class SqlBackupsServiceClient { * @param {string} project * @returns {string} Resource name string. */ - projectPath(project:string) { + projectPath(project: string) { return this.pathTemplates.projectPathTemplate.render({ project: project, }); @@ -1116,13 +1325,15 @@ export class SqlBackupsServiceClient { */ close(): Promise { if (this.sqlBackupsServiceStub && !this._terminated) { - return this.sqlBackupsServiceStub.then(stub => { + return this.sqlBackupsServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1beta4/sql_backups_service_proto_list.json b/packages/google-cloud-sql/src/v1beta4/sql_backups_service_proto_list.json index 3d9dcd428e8..622fead68d3 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_backups_service_proto_list.json +++ b/packages/google-cloud-sql/src/v1beta4/sql_backups_service_proto_list.json @@ -1,6 +1,7 @@ [ "../../protos/google/cloud/sql/v1beta4/cloud_sql.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_connect.proto", + "../../protos/google/cloud/sql/v1beta4/cloud_sql_data.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_iam_policies.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_resources.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_tiers.proto", diff --git a/packages/google-cloud-sql/src/v1beta4/sql_connect_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_connect_service_client.ts index 9dd0d4425b7..9f0452710e1 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_connect_service_client.ts +++ b/packages/google-cloud-sql/src/v1beta4/sql_connect_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -44,7 +51,7 @@ export class SqlConnectServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -57,10 +64,10 @@ export class SqlConnectServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlConnectServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlConnectServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlConnectServiceClient. @@ -101,21 +108,42 @@ export class SqlConnectServiceClient { * const client = new SqlConnectServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlConnectServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -140,7 +168,7 @@ export class SqlConnectServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -154,15 +182,11 @@ export class SqlConnectServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -184,14 +208,17 @@ export class SqlConnectServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1beta4.SqlConnectService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1beta4.SqlConnectService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -222,36 +249,44 @@ export class SqlConnectServiceClient { // Put together the "service stub" for // google.cloud.sql.v1beta4.SqlConnectService. this.sqlConnectServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1beta4.SqlConnectService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1beta4.SqlConnectService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1beta4.SqlConnectService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlConnectServiceStubMethods = - ['getConnectSettings', 'generateEphemeralCert']; + const sqlConnectServiceStubMethods = [ + 'getConnectSettings', + 'resolveConnectSettings', + 'generateEphemeralCert', + ]; for (const methodName of sqlConnectServiceStubMethods) { const callPromise = this.sqlConnectServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -266,8 +301,14 @@ export class SqlConnectServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -278,8 +319,14 @@ export class SqlConnectServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -312,7 +359,7 @@ export class SqlConnectServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -322,8 +369,9 @@ export class SqlConnectServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -334,217 +382,450 @@ export class SqlConnectServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Retrieves connect settings about a Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.protobuf.Timestamp} [request.readTime] - * Optional. Optional snapshot read timestamp to trade freshness for - * performance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.ConnectSettings|ConnectSettings}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_connect_service.get_connect_settings.js - * region_tag:sqladmin_v1beta4_generated_SqlConnectService_GetConnectSettings_async - */ + /** + * Retrieves connect settings about a Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.protobuf.Timestamp} [request.readTime] + * Optional. Optional snapshot read timestamp to trade freshness for + * performance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.ConnectSettings|ConnectSettings}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_connect_service.get_connect_settings.js + * region_tag:sqladmin_v1beta4_generated_SqlConnectService_GetConnectSettings_async + */ getConnectSettings( - request?: protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IConnectSettings, - protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IConnectSettings, + protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest | undefined, + {} | undefined, + ] + >; getConnectSettings( - request: protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IConnectSettings, - protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IConnectSettings, + | protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getConnectSettings( - request: protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IConnectSettings, - protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IConnectSettings, + | protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getConnectSettings( - request?: protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IConnectSettings, - protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IConnectSettings, - protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IConnectSettings, - protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IConnectSettings, + | protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IConnectSettings, + protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('getConnectSettings request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IConnectSettings, - protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IConnectSettings, + | protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getConnectSettings response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getConnectSettings(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IConnectSettings, - protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest|undefined, - {}|undefined - ]) => { - this._log.info('getConnectSettings response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getConnectSettings(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IConnectSettings, + ( + | protos.google.cloud.sql.v1beta4.IGetConnectSettingsRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('getConnectSettings response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Generates a short-lived X509 certificate containing the provided public key - * and signed by a private key specific to the target instance. Users may use - * the certificate to authenticate as themselves when connecting to the - * database. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {string} request.publicKey - * PEM encoded public key to include in the signed certificate. - * @param {string} [request.accessToken] - * Optional. Access token to include in the signed certificate. - * @param {google.protobuf.Timestamp} [request.readTime] - * Optional. Optional snapshot read timestamp to trade freshness for - * performance. - * @param {google.protobuf.Duration} [request.validDuration] - * Optional. If set, it will contain the cert valid duration. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.GenerateEphemeralCertResponse|GenerateEphemeralCertResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_connect_service.generate_ephemeral_cert.js - * region_tag:sqladmin_v1beta4_generated_SqlConnectService_GenerateEphemeralCert_async - */ + /** + * Retrieves connect settings about a Cloud SQL instance using the instance + * DNS name. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.dnsName + * Required. Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.location + * Required. The region of the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.ConnectSettings|ConnectSettings}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_connect_service.resolve_connect_settings.js + * region_tag:sqladmin_v1beta4_generated_SqlConnectService_ResolveConnectSettings_async + */ + resolveConnectSettings( + request?: protos.google.cloud.sql.v1beta4.IResolveConnectSettingsRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IConnectSettings, + ( + | protos.google.cloud.sql.v1beta4.IResolveConnectSettingsRequest + | undefined + ), + {} | undefined, + ] + >; + resolveConnectSettings( + request: protos.google.cloud.sql.v1beta4.IResolveConnectSettingsRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IConnectSettings, + | protos.google.cloud.sql.v1beta4.IResolveConnectSettingsRequest + | null + | undefined, + {} | null | undefined + >, + ): void; + resolveConnectSettings( + request: protos.google.cloud.sql.v1beta4.IResolveConnectSettingsRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IConnectSettings, + | protos.google.cloud.sql.v1beta4.IResolveConnectSettingsRequest + | null + | undefined, + {} | null | undefined + >, + ): void; + resolveConnectSettings( + request?: protos.google.cloud.sql.v1beta4.IResolveConnectSettingsRequest, + optionsOrCallback?: + | CallOptions + | Callback< + protos.google.cloud.sql.v1beta4.IConnectSettings, + | protos.google.cloud.sql.v1beta4.IResolveConnectSettingsRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IConnectSettings, + | protos.google.cloud.sql.v1beta4.IResolveConnectSettingsRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IConnectSettings, + ( + | protos.google.cloud.sql.v1beta4.IResolveConnectSettingsRequest + | undefined + ), + {} | undefined, + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + location: request.location ?? '', + dns_name: request.dnsName ?? '', + }); + this.initialize().catch((err) => { + throw err; + }); + this._log.info('resolveConnectSettings request %j', request); + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IConnectSettings, + | protos.google.cloud.sql.v1beta4.IResolveConnectSettingsRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback + ? (error, response, options, rawResponse) => { + this._log.info('resolveConnectSettings response %j', response); + callback!(error, response, options, rawResponse); // We verified callback above. + } + : undefined; + return this.innerApiCalls + .resolveConnectSettings(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IConnectSettings, + ( + | protos.google.cloud.sql.v1beta4.IResolveConnectSettingsRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('resolveConnectSettings response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); + } + throw error; + }); + } + /** + * Generates a short-lived X509 certificate containing the provided public key + * and signed by a private key specific to the target instance. Users may use + * the certificate to authenticate as themselves when connecting to the + * database. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {string} request.publicKey + * PEM encoded public key to include in the signed certificate. + * @param {string} [request.accessToken] + * Optional. Access token to include in the signed certificate. + * @param {google.protobuf.Timestamp} [request.readTime] + * Optional. Optional snapshot read timestamp to trade freshness for + * performance. + * @param {google.protobuf.Duration} [request.validDuration] + * Optional. If set, it will contain the cert valid duration. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.GenerateEphemeralCertResponse|GenerateEphemeralCertResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_connect_service.generate_ephemeral_cert.js + * region_tag:sqladmin_v1beta4_generated_SqlConnectService_GenerateEphemeralCert_async + */ generateEphemeralCert( - request?: protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertResponse, - protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertResponse, + protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest | undefined, + {} | undefined, + ] + >; generateEphemeralCert( - request: protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertResponse, - protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertResponse, + | protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + >, + ): void; generateEphemeralCert( - request: protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertResponse, - protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertResponse, + | protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + >, + ): void; generateEphemeralCert( - request?: protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertResponse, - protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertResponse, - protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertResponse, - protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertResponse, + | protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertResponse, + protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('generateEphemeralCert request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertResponse, - protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertResponse, + | protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('generateEphemeralCert response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.generateEphemeralCert(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertResponse, - protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest|undefined, - {}|undefined - ]) => { - this._log.info('generateEphemeralCert response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .generateEphemeralCert(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertResponse, + ( + | protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('generateEphemeralCert response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -579,12 +860,11 @@ export class SqlConnectServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -617,7 +897,7 @@ export class SqlConnectServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -633,7 +913,7 @@ export class SqlConnectServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -670,13 +950,15 @@ export class SqlConnectServiceClient { */ close(): Promise { if (this.sqlConnectServiceStub && !this._terminated) { - return this.sqlConnectServiceStub.then(stub => { + return this.sqlConnectServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1beta4/sql_connect_service_client_config.json b/packages/google-cloud-sql/src/v1beta4/sql_connect_service_client_config.json index 6d2f142ab0d..fdb930bfe96 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_connect_service_client_config.json +++ b/packages/google-cloud-sql/src/v1beta4/sql_connect_service_client_config.json @@ -24,6 +24,10 @@ "retry_codes_name": "non_idempotent", "retry_params_name": "default" }, + "ResolveConnectSettings": { + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, "GenerateEphemeralCert": { "retry_codes_name": "non_idempotent", "retry_params_name": "default" diff --git a/packages/google-cloud-sql/src/v1beta4/sql_connect_service_proto_list.json b/packages/google-cloud-sql/src/v1beta4/sql_connect_service_proto_list.json index 3d9dcd428e8..622fead68d3 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_connect_service_proto_list.json +++ b/packages/google-cloud-sql/src/v1beta4/sql_connect_service_proto_list.json @@ -1,6 +1,7 @@ [ "../../protos/google/cloud/sql/v1beta4/cloud_sql.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_connect.proto", + "../../protos/google/cloud/sql/v1beta4/cloud_sql_data.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_iam_policies.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_resources.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_tiers.proto", diff --git a/packages/google-cloud-sql/src/v1beta4/sql_data_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_data_service_client.ts new file mode 100644 index 00000000000..b99a3de31a3 --- /dev/null +++ b/packages/google-cloud-sql/src/v1beta4/sql_data_service_client.ts @@ -0,0 +1,636 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +/* global window */ +import type * as gax from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; +import { PassThrough } from 'stream'; +import * as protos from '../../protos/protos'; +import jsonProtos = require('../../protos/protos.json'); +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; + +/** + * Client JSON configuration object, loaded from + * `src/v1beta4/sql_data_service_client_config.json`. + * This file defines retry strategy and timeouts for all API methods in this library. + */ +import * as gapicConfig from './sql_data_service_client_config.json'; +const version = require('../../../package.json').version; + +/** + * Service for streaming data to and from Cloud SQL instances. + * @class + * @memberof v1beta4 + */ +export class SqlDataServiceClient { + private _terminated = false; + private _opts: ClientOptions; + private _providedCustomServicePath: boolean; + private _gaxModule: typeof gax | typeof gax.fallback; + private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; + private _protos: {}; + private _defaults: { [method: string]: gax.CallSettings }; + private _universeDomain: string; + private _servicePath: string; + private _log = logging.log('sql'); + + auth: gax.GoogleAuth; + descriptors: Descriptors = { + page: {}, + stream: {}, + longrunning: {}, + batching: {}, + }; + warn: (code: string, message: string, warnType?: string) => void; + innerApiCalls: { [name: string]: Function }; + locationsClient: LocationsClient; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlDataServiceStub?: Promise<{ [name: string]: Function }>; + + /** + * Construct an instance of SqlDataServiceClient. + * + * @param {object} [options] - The configuration object. + * The options accepted by the constructor are described in detail + * in [this document](https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#creating-the-client-instance). + * The common options are: + * @param {object} [options.credentials] - Credentials object. + * @param {string} [options.credentials.client_email] + * @param {string} [options.credentials.private_key] + * @param {string} [options.email] - Account email address. Required when + * using a .pem or .p12 keyFilename. + * @param {string} [options.keyFilename] - Full path to the a .json, .pem, or + * .p12 key downloaded from the Google Developers Console. If you provide + * a path to a JSON file, the projectId option below is not necessary. + * NOTE: .pem and .p12 require you to specify options.email as well. + * @param {number} [options.port] - The port on which to connect to + * the remote host. + * @param {string} [options.projectId] - The project ID from the Google + * Developer's Console, e.g. 'grape-spaceship-123'. We will also check + * the environment variable GCLOUD_PROJECT for your project ID. If your + * app is running in an environment which supports + * {@link https://cloud.google.com/docs/authentication/application-default-credentials Application Default Credentials}, + * your project ID will be detected automatically. + * @param {string} [options.apiEndpoint] - The domain name of the + * API remote host. + * @param {gax.ClientConfig} [options.clientConfig] - Client configuration override. + * Follows the structure of {@link gapicConfig}. + * @param {boolean} [options.fallback] - Use HTTP/1.1 REST mode. + * For more information, please check the + * {@link https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#http11-rest-api-mode documentation}. + * @param {gax} [gaxInstance]: loaded instance of `google-gax`. Useful if you + * need to avoid loading the default gRPC version and want to use the fallback + * HTTP implementation. Load only fallback version and pass it to the constructor: + * ``` + * const gax = require('google-gax/build/src/fallback'); // avoids loading google-gax with gRPC + * const client = new SqlDataServiceClient({fallback: true}, gax); + * ``` + */ + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { + // Ensure that options include all the required fields. + const staticMembers = this.constructor as typeof SqlDataServiceClient; + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); + } + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; + this._servicePath = 'sqladmin.' + this._universeDomain; + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); + const port = opts?.port || staticMembers.port; + const clientConfig = opts?.clientConfig ?? {}; + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); + + // Request numeric enum values if REST transport is used. + opts.numericEnums = true; + + // If scopes are unset in options and we're connecting to a non-default endpoint, set scopes just in case. + if (servicePath !== this._servicePath && !('scopes' in opts)) { + opts['scopes'] = staticMembers.scopes; + } + + // Load google-gax module synchronously if needed + if (!gaxInstance) { + gaxInstance = require('google-gax') as typeof gax; + } + + // Choose either gRPC or proto-over-HTTP implementation of google-gax. + this._gaxModule = opts.fallback ? gaxInstance.fallback : gaxInstance; + + // Create a `gaxGrpc` object, with any grpc-specific options sent to the client. + this._gaxGrpc = new this._gaxModule.GrpcClient(opts); + + // Save options to use in initialize() method. + this._opts = opts; + + // Save the auth object to the client, for use by other methods. + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; + + // Set useJWTAccessWithScope on the auth object. + this.auth.useJWTAccessWithScope = true; + + // Set defaultServicePath on the auth object. + this.auth.defaultServicePath = this._servicePath; + + // Set the default scopes in auth client if needed. + if (servicePath === this._servicePath) { + this.auth.defaultScopes = staticMembers.scopes; + } + this.locationsClient = new this._gaxModule.LocationsClient( + this._gaxGrpc, + opts, + ); + + // Determine the client header string. + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; + if (typeof process === 'object' && 'versions' in process) { + clientHeader.push(`gl-node/${process.versions.node}`); + } else { + clientHeader.push(`gl-web/${this._gaxModule.version}`); + } + if (!opts.fallback) { + clientHeader.push(`grpc/${this._gaxGrpc.grpcVersion}`); + } else { + clientHeader.push(`rest/${this._gaxGrpc.grpcVersion}`); + } + if (opts.libName && opts.libVersion) { + clientHeader.push(`${opts.libName}/${opts.libVersion}`); + } + // Load the applicable protos. + this._protos = this._gaxGrpc.loadProtoJSON(jsonProtos); + + // This API contains "path templates"; forward-slash-separated + // identifiers to uniquely identify resources within the API. + // Create useful helper objects for these. + this.pathTemplates = { + backupPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/backups/{backup}', + ), + instancePathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/instances/{instance}', + ), + }; + + // Some of the methods on this service provide streaming responses. + // Provide descriptors for these. + this.descriptors.stream = { + streamSqlData: new this._gaxModule.StreamDescriptor( + this._gaxModule.StreamType.BIDI_STREAMING, + !!opts.fallback, + !!opts.gaxServerStreamingRetries, + ), + }; + + // Put together the default options sent with requests. + this._defaults = this._gaxGrpc.constructSettings( + 'google.cloud.sql.v1beta4.SqlDataService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); + + // Set up a dictionary of "inner API calls"; the core implementation + // of calling the API is handled in `google-gax`, with this code + // merely providing the destination and request information. + this.innerApiCalls = {}; + + // Add a warn function to the client constructor so it can be easily tested. + this.warn = this._gaxModule.warn; + } + + /** + * Initialize the client. + * Performs asynchronous operations (such as authentication) and prepares the client. + * This function will be called automatically when any class method is called for the + * first time, but if you need to initialize it before calling an actual method, + * feel free to call initialize() directly. + * + * You can await on this method if you want to make sure the client is initialized. + * + * @returns {Promise} A promise that resolves to an authenticated service stub. + */ + initialize() { + // If the client stub promise is already initialized, return immediately. + if (this.sqlDataServiceStub) { + return this.sqlDataServiceStub; + } + + // Put together the "service stub" for + // google.cloud.sql.v1beta4.SqlDataService. + this.sqlDataServiceStub = this._gaxGrpc.createStub( + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1beta4.SqlDataService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any + (this._protos as any).google.cloud.sql.v1beta4.SqlDataService, + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; + + // Iterate over each of the methods that the service provides + // and create an API call method for each. + const sqlDataServiceStubMethods = ['streamSqlData']; + for (const methodName of sqlDataServiceStubMethods) { + const callPromise = this.sqlDataServiceStub.then( + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + if (methodName in this.descriptors.stream) { + const stream = new PassThrough({ objectMode: true }); + setImmediate(() => { + stream.emit( + 'error', + new this._gaxModule.GoogleError( + 'The client has already been closed.', + ), + ); + }); + return stream; + } + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { + throw err; + }, + ); + + const descriptor = this.descriptors.stream[methodName] || undefined; + const apiCall = this._gaxModule.createApiCall( + callPromise, + this._defaults[methodName], + descriptor, + this._opts.fallback, + ); + + this.innerApiCalls[methodName] = apiCall; + } + + return this.sqlDataServiceStub; + } + + /** + * The DNS address for this API service. + * @deprecated Use the apiEndpoint method of the client instance. + * @returns {string} The DNS address for this service. + */ + static get servicePath() { + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); + } + return 'sqladmin.googleapis.com'; + } + + /** + * The DNS address for this API service - same as servicePath. + * @deprecated Use the apiEndpoint method of the client instance. + * @returns {string} The DNS address for this service. + */ + static get apiEndpoint() { + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); + } + return 'sqladmin.googleapis.com'; + } + + /** + * The DNS address for this API service. + * @returns {string} The DNS address for this service. + */ + get apiEndpoint() { + return this._servicePath; + } + + get universeDomain() { + return this._universeDomain; + } + + /** + * The port for this API service. + * @returns {number} The default port for this service. + */ + static get port() { + return 443; + } + + /** + * The scopes needed to make gRPC calls for every method defined + * in this service. + * @returns {string[]} List of default scopes. + */ + static get scopes() { + return [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/sqlservice.admin', + ]; + } + + getProjectId(): Promise; + getProjectId(callback: Callback): void; + /** + * Return the project ID used by this class. + * @returns {Promise} A promise that resolves to string containing the project ID. + */ + getProjectId( + callback?: Callback, + ): Promise | void { + if (callback) { + this.auth.getProjectId(callback); + return; + } + return this.auth.getProjectId(); + } + + // ------------------- + // -- Service calls -- + // ------------------- + + /** + * `StreamSqlData` establishes a bidirectional stream to a Cloud SQL instance, + * and then streams data to and from the instance. + * + * The first message from the client MUST be a `StreamSqlDataRequest` request + * with configuration settings, including required values for the + * `connection_settings` field. Subsequent messages from the client may + * contain the `payload` field. + * + * Messages from the server may contain the `payload` field. + * + * The `payload` fields of the request and response streams contain the raw + * data of the database's native wire protocol (e.g., PostgreSQL wire + * protocol). The database client is responsible for generating and parsing + * this data. + * + * Any errors on initial connection (e.g., connection failure, authorization + * issues, network problems) will result in the stream being terminated with + * an appropriate RPC status exception. + * + * After a successful connection is made, if an error occurs, then the server + * terminates connection and returns the appropriate RPC status exception. + * + * Add the request params headers to the request to ensure that + * the streaming request is routed to the correct service for your database. + * + * Use this format for the request params header: + * + * `x-goog-request-params`: + * location_id={location_path}&instance_id={instance_path}` + * + * `location_path` is `locations/{location_name}` + * `instance_path` is `projects/{project_name}/instances/{instance_name}` + * + * for example: + * `x-goog-request-params`: + * `location_id=locations/us-central1&instance_id=projects/myproject/instances/instancename` + * + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Stream} + * An object stream which is both readable and writable. It accepts objects + * representing {@link protos.google.cloud.sql.v1beta4.StreamSqlDataRequest|StreamSqlDataRequest} for write() method, and + * will emit objects representing {@link protos.google.cloud.sql.v1beta4.StreamSqlDataResponse|StreamSqlDataResponse} on 'data' event asynchronously. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#bi-directional-streaming | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_data_service.stream_sql_data.js + * region_tag:sqladmin_v1beta4_generated_SqlDataService_StreamSqlData_async + */ + streamSqlData(options?: CallOptions): gax.CancellableStream { + this.initialize().catch((err) => { + throw err; + }); + this._log.info('streamSqlData stream %j', options); + return this.innerApiCalls.streamSqlData(null, options); + } + + /** + * Gets information about a location. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Resource name for the location. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html | CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link google.cloud.location.Location | Location}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example + * ``` + * const [response] = await client.getLocation(request); + * ``` + */ + getLocation( + request: LocationProtos.google.cloud.location.IGetLocationRequest, + options?: + | gax.CallOptions + | Callback< + LocationProtos.google.cloud.location.ILocation, + | LocationProtos.google.cloud.location.IGetLocationRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + LocationProtos.google.cloud.location.ILocation, + | LocationProtos.google.cloud.location.IGetLocationRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise { + return this.locationsClient.getLocation(request, options, callback); + } + /** + * Lists information about the supported locations for this service. Returns an iterable object. + * + * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * The resource that owns the locations collection, if applicable. + * @param {string} request.filter + * The standard list filter. + * @param {number} request.pageSize + * The standard list page size. + * @param {string} request.pageToken + * The standard list page token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Object} + * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. + * When you iterate the returned iterable, each element will be an object representing + * {@link google.cloud.location.Location | Location}. The API will be called under the hood as needed, once per the page, + * so you can stop the iteration when you don't need more results. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } + * for more details and examples. + * @example + * ``` + * const iterable = client.listLocationsAsync(request); + * for await (const response of iterable) { + * // process response + * } + * ``` + */ + listLocationsAsync( + request: LocationProtos.google.cloud.location.IListLocationsRequest, + options?: CallOptions, + ): AsyncIterable { + return this.locationsClient.listLocationsAsync(request, options); + } + + // -------------------- + // -- Path templates -- + // -------------------- + + /** + * Return a fully-qualified backup resource name string. + * + * @param {string} project + * @param {string} backup + * @returns {string} Resource name string. + */ + backupPath(project: string, backup: string) { + return this.pathTemplates.backupPathTemplate.render({ + project: project, + backup: backup, + }); + } + + /** + * Parse the project from Backup resource. + * + * @param {string} backupName + * A fully-qualified path representing Backup resource. + * @returns {string} A string representing the project. + */ + matchProjectFromBackupName(backupName: string) { + return this.pathTemplates.backupPathTemplate.match(backupName).project; + } + + /** + * Parse the backup from Backup resource. + * + * @param {string} backupName + * A fully-qualified path representing Backup resource. + * @returns {string} A string representing the backup. + */ + matchBackupFromBackupName(backupName: string) { + return this.pathTemplates.backupPathTemplate.match(backupName).backup; + } + + /** + * Return a fully-qualified instance resource name string. + * + * @param {string} project + * @param {string} instance + * @returns {string} Resource name string. + */ + instancePath(project: string, instance: string) { + return this.pathTemplates.instancePathTemplate.render({ + project: project, + instance: instance, + }); + } + + /** + * Parse the project from Instance resource. + * + * @param {string} instanceName + * A fully-qualified path representing Instance resource. + * @returns {string} A string representing the project. + */ + matchProjectFromInstanceName(instanceName: string) { + return this.pathTemplates.instancePathTemplate.match(instanceName).project; + } + + /** + * Parse the instance from Instance resource. + * + * @param {string} instanceName + * A fully-qualified path representing Instance resource. + * @returns {string} A string representing the instance. + */ + matchInstanceFromInstanceName(instanceName: string) { + return this.pathTemplates.instancePathTemplate.match(instanceName).instance; + } + + /** + * Terminate the gRPC channel and close the client. + * + * The client will no longer be usable and all future behavior is undefined. + * @returns {Promise} A promise that resolves when the client is closed. + */ + close(): Promise { + if (this.sqlDataServiceStub && !this._terminated) { + return this.sqlDataServiceStub.then((stub) => { + this._log.info('ending gRPC channel'); + this._terminated = true; + stub.close(); + this.locationsClient.close().catch((err) => { + throw err; + }); + }); + } + return Promise.resolve(); + } +} diff --git a/packages/google-cloud-sql/src/v1beta4/sql_data_service_client_config.json b/packages/google-cloud-sql/src/v1beta4/sql_data_service_client_config.json new file mode 100644 index 00000000000..d0c90a4b255 --- /dev/null +++ b/packages/google-cloud-sql/src/v1beta4/sql_data_service_client_config.json @@ -0,0 +1,30 @@ +{ + "interfaces": { + "google.cloud.sql.v1beta4.SqlDataService": { + "retry_codes": { + "non_idempotent": [], + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "StreamSqlData": { + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/packages/google-cloud-sql/src/v1beta4/sql_data_service_proto_list.json b/packages/google-cloud-sql/src/v1beta4/sql_data_service_proto_list.json new file mode 100644 index 00000000000..622fead68d3 --- /dev/null +++ b/packages/google-cloud-sql/src/v1beta4/sql_data_service_proto_list.json @@ -0,0 +1,9 @@ +[ + "../../protos/google/cloud/sql/v1beta4/cloud_sql.proto", + "../../protos/google/cloud/sql/v1beta4/cloud_sql_connect.proto", + "../../protos/google/cloud/sql/v1beta4/cloud_sql_data.proto", + "../../protos/google/cloud/sql/v1beta4/cloud_sql_iam_policies.proto", + "../../protos/google/cloud/sql/v1beta4/cloud_sql_resources.proto", + "../../protos/google/cloud/sql/v1beta4/cloud_sql_tiers.proto", + "../../protos/google/cloud/sql/v1beta4/cloud_sql_users.proto" +] diff --git a/packages/google-cloud-sql/src/v1beta4/sql_databases_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_databases_service_client.ts index 8be5e2d2de2..acc2d5a1d7c 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_databases_service_client.ts +++ b/packages/google-cloud-sql/src/v1beta4/sql_databases_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -43,7 +50,7 @@ export class SqlDatabasesServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -56,10 +63,10 @@ export class SqlDatabasesServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlDatabasesServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlDatabasesServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlDatabasesServiceClient. @@ -100,21 +107,42 @@ export class SqlDatabasesServiceClient { * const client = new SqlDatabasesServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlDatabasesServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -139,7 +167,7 @@ export class SqlDatabasesServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -153,15 +181,11 @@ export class SqlDatabasesServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -183,17 +207,20 @@ export class SqlDatabasesServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), projectPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}' + 'projects/{project}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1beta4.SqlDatabasesService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1beta4.SqlDatabasesService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -224,36 +251,47 @@ export class SqlDatabasesServiceClient { // Put together the "service stub" for // google.cloud.sql.v1beta4.SqlDatabasesService. this.sqlDatabasesServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1beta4.SqlDatabasesService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1beta4.SqlDatabasesService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1beta4.SqlDatabasesService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlDatabasesServiceStubMethods = - ['delete', 'get', 'insert', 'list', 'patch', 'update']; + const sqlDatabasesServiceStubMethods = [ + 'delete', + 'get', + 'insert', + 'list', + 'patch', + 'update', + ]; for (const methodName of sqlDatabasesServiceStubMethods) { const callPromise = this.sqlDatabasesServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -268,8 +306,14 @@ export class SqlDatabasesServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -280,8 +324,14 @@ export class SqlDatabasesServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -314,7 +364,7 @@ export class SqlDatabasesServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -324,8 +374,9 @@ export class SqlDatabasesServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -336,611 +387,863 @@ export class SqlDatabasesServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Deletes a database from a Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.database - * Name of the database to be deleted in the instance. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_databases_service.delete.js - * region_tag:sqladmin_v1beta4_generated_SqlDatabasesService_Delete_async - */ + /** + * Deletes a database from a Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.database + * Name of the database to be deleted in the instance. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_databases_service.delete.js + * region_tag:sqladmin_v1beta4_generated_SqlDatabasesService_Delete_async + */ delete( - request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest | undefined, + {} | undefined, + ] + >; delete( - request: protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest + | null + | undefined, + {} | null | undefined + >, + ): void; delete( - request: protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest + | null + | undefined, + {} | null | undefined + >, + ): void; delete( - request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'database': request.database ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + database: request.database ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('delete request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('delete response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.delete(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest|undefined, - {}|undefined - ]) => { - this._log.info('delete response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .delete(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlDatabasesDeleteRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('delete response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Retrieves a resource containing information about a database inside a Cloud - * SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.database - * Name of the database in the instance. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Database|Database}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_databases_service.get.js - * region_tag:sqladmin_v1beta4_generated_SqlDatabasesService_Get_async - */ + /** + * Retrieves a resource containing information about a database inside a Cloud + * SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.database + * Name of the database in the instance. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Database|Database}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_databases_service.get.js + * region_tag:sqladmin_v1beta4_generated_SqlDatabasesService_Get_async + */ get( - request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IDatabase, - protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IDatabase, + protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest | undefined, + {} | undefined, + ] + >; get( - request: protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IDatabase, - protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IDatabase, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest + | null + | undefined, + {} | null | undefined + >, + ): void; get( - request: protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IDatabase, - protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IDatabase, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest + | null + | undefined, + {} | null | undefined + >, + ): void; get( - request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IDatabase, - protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IDatabase, - protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IDatabase, - protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IDatabase, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IDatabase, + protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'database': request.database ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + database: request.database ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('get request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IDatabase, - protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IDatabase, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('get response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.get(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IDatabase, - protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest|undefined, - {}|undefined - ]) => { - this._log.info('get response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .get(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IDatabase, + protos.google.cloud.sql.v1beta4.ISqlDatabasesGetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('get response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Inserts a resource containing information about a database inside a Cloud - * SQL instance. - * - * **Note:** You can't modify the default character set and collation. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.Database} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_databases_service.insert.js - * region_tag:sqladmin_v1beta4_generated_SqlDatabasesService_Insert_async - */ + /** + * Inserts a resource containing information about a database inside a Cloud + * SQL instance. + * + * **Note:** You can't modify the default character set and collation. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.Database} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_databases_service.insert.js + * region_tag:sqladmin_v1beta4_generated_SqlDatabasesService_Insert_async + */ insert( - request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest | undefined, + {} | undefined, + ] + >; insert( - request: protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest + | null + | undefined, + {} | null | undefined + >, + ): void; insert( - request: protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest + | null + | undefined, + {} | null | undefined + >, + ): void; insert( - request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('insert request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('insert response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.insert(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest|undefined, - {}|undefined - ]) => { - this._log.info('insert response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .insert(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlDatabasesInsertRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('insert response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists databases in the specified Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.DatabasesListResponse|DatabasesListResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_databases_service.list.js - * region_tag:sqladmin_v1beta4_generated_SqlDatabasesService_List_async - */ + /** + * Lists databases in the specified Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.DatabasesListResponse|DatabasesListResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_databases_service.list.js + * region_tag:sqladmin_v1beta4_generated_SqlDatabasesService_List_async + */ list( - request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IDatabasesListResponse, - protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IDatabasesListResponse, + protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest | undefined, + {} | undefined, + ] + >; list( - request: protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IDatabasesListResponse, - protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IDatabasesListResponse, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest + | null + | undefined, + {} | null | undefined + >, + ): void; list( - request: protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IDatabasesListResponse, - protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IDatabasesListResponse, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest + | null + | undefined, + {} | null | undefined + >, + ): void; list( - request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IDatabasesListResponse, - protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IDatabasesListResponse, - protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IDatabasesListResponse, - protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IDatabasesListResponse, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IDatabasesListResponse, + protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('list request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IDatabasesListResponse, - protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IDatabasesListResponse, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('list response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.list(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IDatabasesListResponse, - protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest|undefined, - {}|undefined - ]) => { - this._log.info('list response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .list(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IDatabasesListResponse, + protos.google.cloud.sql.v1beta4.ISqlDatabasesListRequest | undefined, + {} | undefined, + ]) => { + this._log.info('list response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Partially updates a resource containing information about a database inside - * a Cloud SQL instance. This method supports patch semantics. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.database - * Name of the database to be updated in the instance. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.Database} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_databases_service.patch.js - * region_tag:sqladmin_v1beta4_generated_SqlDatabasesService_Patch_async - */ + /** + * Partially updates a resource containing information about a database inside + * a Cloud SQL instance. This method supports patch semantics. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.database + * Name of the database to be updated in the instance. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.Database} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_databases_service.patch.js + * region_tag:sqladmin_v1beta4_generated_SqlDatabasesService_Patch_async + */ patch( - request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest | undefined, + {} | undefined, + ] + >; patch( - request: protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; patch( - request: protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; patch( - request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'database': request.database ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + database: request.database ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('patch request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('patch response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.patch(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest|undefined, - {}|undefined - ]) => { - this._log.info('patch response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .patch(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('patch response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Updates a resource containing information about a database inside a Cloud - * SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.database - * Name of the database to be updated in the instance. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.Database} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_databases_service.update.js - * region_tag:sqladmin_v1beta4_generated_SqlDatabasesService_Update_async - */ + /** + * Updates a resource containing information about a database inside a Cloud + * SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.database + * Name of the database to be updated in the instance. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.Database} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_databases_service.update.js + * region_tag:sqladmin_v1beta4_generated_SqlDatabasesService_Update_async + */ update( - request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest | undefined, + {} | undefined, + ] + >; update( - request: protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; update( - request: protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; update( - request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'database': request.database ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + database: request.database ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('update request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('update response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.update(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest|undefined, - {}|undefined - ]) => { - this._log.info('update response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .update(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlDatabasesUpdateRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('update response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -975,12 +1278,11 @@ export class SqlDatabasesServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -1013,7 +1315,7 @@ export class SqlDatabasesServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -1029,7 +1331,7 @@ export class SqlDatabasesServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -1064,7 +1366,7 @@ export class SqlDatabasesServiceClient { * @param {string} project * @returns {string} Resource name string. */ - projectPath(project:string) { + projectPath(project: string) { return this.pathTemplates.projectPathTemplate.render({ project: project, }); @@ -1089,13 +1391,15 @@ export class SqlDatabasesServiceClient { */ close(): Promise { if (this.sqlDatabasesServiceStub && !this._terminated) { - return this.sqlDatabasesServiceStub.then(stub => { + return this.sqlDatabasesServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1beta4/sql_databases_service_proto_list.json b/packages/google-cloud-sql/src/v1beta4/sql_databases_service_proto_list.json index 3d9dcd428e8..622fead68d3 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_databases_service_proto_list.json +++ b/packages/google-cloud-sql/src/v1beta4/sql_databases_service_proto_list.json @@ -1,6 +1,7 @@ [ "../../protos/google/cloud/sql/v1beta4/cloud_sql.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_connect.proto", + "../../protos/google/cloud/sql/v1beta4/cloud_sql_data.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_iam_policies.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_resources.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_tiers.proto", diff --git a/packages/google-cloud-sql/src/v1beta4/sql_flags_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_flags_service_client.ts index c8b765e7f71..2ada4fa5a4c 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_flags_service_client.ts +++ b/packages/google-cloud-sql/src/v1beta4/sql_flags_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -43,7 +50,7 @@ export class SqlFlagsServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -56,10 +63,10 @@ export class SqlFlagsServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlFlagsServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlFlagsServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlFlagsServiceClient. @@ -100,21 +107,42 @@ export class SqlFlagsServiceClient { * const client = new SqlFlagsServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlFlagsServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -139,7 +167,7 @@ export class SqlFlagsServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -153,15 +181,11 @@ export class SqlFlagsServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -183,17 +207,20 @@ export class SqlFlagsServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), projectPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}' + 'projects/{project}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1beta4.SqlFlagsService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1beta4.SqlFlagsService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -224,36 +251,40 @@ export class SqlFlagsServiceClient { // Put together the "service stub" for // google.cloud.sql.v1beta4.SqlFlagsService. this.sqlFlagsServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1beta4.SqlFlagsService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1beta4.SqlFlagsService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1beta4.SqlFlagsService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlFlagsServiceStubMethods = - ['list']; + const sqlFlagsServiceStubMethods = ['list']; for (const methodName of sqlFlagsServiceStubMethods) { const callPromise = this.sqlFlagsServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -268,8 +299,14 @@ export class SqlFlagsServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -280,8 +317,14 @@ export class SqlFlagsServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -314,7 +357,7 @@ export class SqlFlagsServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -324,8 +367,9 @@ export class SqlFlagsServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -336,101 +380,136 @@ export class SqlFlagsServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Lists all available database flags for Cloud SQL instances. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.databaseVersion - * Database type and version you want to retrieve flags for. By default, this - * method returns flags for all database types and versions. - * @param {google.cloud.sql.v1beta4.SqlFlagScope} [request.flagScope] - * Optional. Specify the scope of flags to be returned by SqlFlagsListService. - * Return list of database flags if unspecified. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.FlagsListResponse|FlagsListResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_flags_service.list.js - * region_tag:sqladmin_v1beta4_generated_SqlFlagsService_List_async - */ + /** + * Lists all available database flags for Cloud SQL instances. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.databaseVersion + * Database type and version you want to retrieve flags for. By default, this + * method returns flags for all database types and versions. + * @param {google.cloud.sql.v1beta4.SqlFlagScope} [request.flagScope] + * Optional. Specify the scope of flags to be returned by SqlFlagsListService. + * Return list of database flags if unspecified. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.FlagsListResponse|FlagsListResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_flags_service.list.js + * region_tag:sqladmin_v1beta4_generated_SqlFlagsService_List_async + */ list( - request?: protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IFlagsListResponse, - protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IFlagsListResponse, + protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest | undefined, + {} | undefined, + ] + >; list( - request: protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IFlagsListResponse, - protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IFlagsListResponse, + protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request: protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IFlagsListResponse, - protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IFlagsListResponse, + protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request?: protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IFlagsListResponse, - protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IFlagsListResponse, - protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IFlagsListResponse, - protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IFlagsListResponse, + protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IFlagsListResponse, + protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('list request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IFlagsListResponse, - protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IFlagsListResponse, + | protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('list response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.list(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IFlagsListResponse, - protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest|undefined, - {}|undefined - ]) => { - this._log.info('list response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .list(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IFlagsListResponse, + protos.google.cloud.sql.v1beta4.ISqlFlagsListRequest | undefined, + {} | undefined, + ]) => { + this._log.info('list response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -465,12 +544,11 @@ export class SqlFlagsServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -503,7 +581,7 @@ export class SqlFlagsServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -519,7 +597,7 @@ export class SqlFlagsServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -554,7 +632,7 @@ export class SqlFlagsServiceClient { * @param {string} project * @returns {string} Resource name string. */ - projectPath(project:string) { + projectPath(project: string) { return this.pathTemplates.projectPathTemplate.render({ project: project, }); @@ -579,13 +657,15 @@ export class SqlFlagsServiceClient { */ close(): Promise { if (this.sqlFlagsServiceStub && !this._terminated) { - return this.sqlFlagsServiceStub.then(stub => { + return this.sqlFlagsServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1beta4/sql_flags_service_proto_list.json b/packages/google-cloud-sql/src/v1beta4/sql_flags_service_proto_list.json index 3d9dcd428e8..622fead68d3 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_flags_service_proto_list.json +++ b/packages/google-cloud-sql/src/v1beta4/sql_flags_service_proto_list.json @@ -1,6 +1,7 @@ [ "../../protos/google/cloud/sql/v1beta4/cloud_sql.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_connect.proto", + "../../protos/google/cloud/sql/v1beta4/cloud_sql_data.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_iam_policies.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_resources.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_tiers.proto", diff --git a/packages/google-cloud-sql/src/v1beta4/sql_instances_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_instances_service_client.ts index dbfed12b86a..8de707b190f 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_instances_service_client.ts +++ b/packages/google-cloud-sql/src/v1beta4/sql_instances_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -43,7 +50,7 @@ export class SqlInstancesServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -56,10 +63,10 @@ export class SqlInstancesServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlInstancesServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlInstancesServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlInstancesServiceClient. @@ -100,21 +107,42 @@ export class SqlInstancesServiceClient { * const client = new SqlInstancesServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlInstancesServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -139,7 +167,7 @@ export class SqlInstancesServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -153,15 +181,11 @@ export class SqlInstancesServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -183,17 +207,20 @@ export class SqlInstancesServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), projectPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}' + 'projects/{project}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1beta4.SqlInstancesService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1beta4.SqlInstancesService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -224,36 +251,84 @@ export class SqlInstancesServiceClient { // Put together the "service stub" for // google.cloud.sql.v1beta4.SqlInstancesService. this.sqlInstancesServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1beta4.SqlInstancesService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1beta4.SqlInstancesService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1beta4.SqlInstancesService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlInstancesServiceStubMethods = - ['addServerCa', 'addServerCertificate', 'addEntraIdCertificate', 'clone', 'delete', 'demoteMaster', 'demote', 'export', 'failover', 'reencrypt', 'get', 'import', 'insert', 'list', 'listServerCas', 'listServerCertificates', 'listEntraIdCertificates', 'patch', 'promoteReplica', 'switchover', 'resetSslConfig', 'restart', 'restoreBackup', 'rotateServerCa', 'rotateServerCertificate', 'rotateEntraIdCertificate', 'startReplica', 'stopReplica', 'truncateLog', 'update', 'createEphemeral', 'rescheduleMaintenance', 'verifyExternalSyncSettings', 'startExternalSync', 'performDiskShrink', 'getDiskShrinkConfig', 'resetReplicaSize', 'getLatestRecoveryTime', 'executeSql', 'acquireSsrsLease', 'releaseSsrsLease', 'preCheckMajorVersionUpgrade', 'pointInTimeRestore']; + const sqlInstancesServiceStubMethods = [ + 'addServerCa', + 'addServerCertificate', + 'addEntraIdCertificate', + 'clone', + 'delete', + 'demoteMaster', + 'demote', + 'export', + 'failover', + 'reencrypt', + 'get', + 'import', + 'insert', + 'list', + 'listServerCas', + 'listServerCertificates', + 'listEntraIdCertificates', + 'patch', + 'promoteReplica', + 'switchover', + 'resetSslConfig', + 'restart', + 'restoreBackup', + 'rotateServerCa', + 'rotateServerCertificate', + 'rotateEntraIdCertificate', + 'startReplica', + 'stopReplica', + 'truncateLog', + 'update', + 'createEphemeral', + 'rescheduleMaintenance', + 'verifyExternalSyncSettings', + 'startExternalSync', + 'performDiskShrink', + 'getDiskShrinkConfig', + 'resetReplicaSize', + 'getLatestRecoveryTime', + 'executeSql', + 'acquireSsrsLease', + 'releaseSsrsLease', + 'preCheckMajorVersionUpgrade', + 'pointInTimeRestore', + ]; for (const methodName of sqlInstancesServiceStubMethods) { const callPromise = this.sqlInstancesServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -268,8 +343,14 @@ export class SqlInstancesServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -280,8 +361,14 @@ export class SqlInstancesServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -314,7 +401,7 @@ export class SqlInstancesServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -324,8 +411,9 @@ export class SqlInstancesServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -336,4349 +424,6372 @@ export class SqlInstancesServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Add a new trusted Certificate Authority (CA) version for the specified - * instance. Required to prepare for a certificate rotation. If a CA version - * was previously added but never used in a certificate rotation, this - * operation replaces that version. There cannot be more than one CA version - * waiting to be rotated in. For instances that have enabled Certificate - * Authority Service (CAS) based server CA, use AddServerCertificate to add a - * new server certificate. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.add_server_ca.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_AddServerCa_async - */ + /** + * Add a new trusted Certificate Authority (CA) version for the specified + * instance. Required to prepare for a certificate rotation. If a CA version + * was previously added but never used in a certificate rotation, this + * operation replaces that version. There cannot be more than one CA version + * waiting to be rotated in. For instances that have enabled Certificate + * Authority Service (CAS) based server CA, use AddServerCertificate to add a + * new server certificate. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.add_server_ca.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_AddServerCa_async + */ addServerCa( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest + | undefined + ), + {} | undefined, + ] + >; addServerCa( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; addServerCa( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; addServerCa( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('addServerCa request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('addServerCa response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.addServerCa(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest|undefined, - {}|undefined - ]) => { - this._log.info('addServerCa response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .addServerCa(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCaRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('addServerCa response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Add a new trusted server certificate version for the specified instance - * using Certificate Authority Service (CAS) server CA. Required to prepare - * for a certificate rotation. If a server certificate version was previously - * added but never used in a certificate rotation, this operation replaces - * that version. There cannot be more than one certificate version waiting to - * be rotated in. For instances not using CAS server CA, use AddServerCa - * instead. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Required. Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.add_server_certificate.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_AddServerCertificate_async - */ + /** + * Add a new trusted server certificate version for the specified instance + * using Certificate Authority Service (CAS) server CA. Required to prepare + * for a certificate rotation. If a server certificate version was previously + * added but never used in a certificate rotation, this operation replaces + * that version. There cannot be more than one certificate version waiting to + * be rotated in. For instances not using CAS server CA, use AddServerCa + * instead. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Required. Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.add_server_certificate.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_AddServerCertificate_async + */ addServerCertificate( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest + | undefined + ), + {} | undefined, + ] + >; addServerCertificate( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; addServerCertificate( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; addServerCertificate( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('addServerCertificate request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('addServerCertificate response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.addServerCertificate(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest|undefined, - {}|undefined - ]) => { - this._log.info('addServerCertificate response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .addServerCertificate(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddServerCertificateRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('addServerCertificate response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Adds a new Entra ID certificate for the specified instance. If an Entra ID - * certificate was previously added but never used in a certificate rotation, - * this operation replaces that version. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Required. Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.add_entra_id_certificate.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_AddEntraIdCertificate_async - */ + /** + * Adds a new Entra ID certificate for the specified instance. If an Entra ID + * certificate was previously added but never used in a certificate rotation, + * this operation replaces that version. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Required. Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.add_entra_id_certificate.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_AddEntraIdCertificate_async + */ addEntraIdCertificate( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest + | undefined + ), + {} | undefined, + ] + >; addEntraIdCertificate( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; addEntraIdCertificate( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; addEntraIdCertificate( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('addEntraIdCertificate request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('addEntraIdCertificate response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.addEntraIdCertificate(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest|undefined, - {}|undefined - ]) => { - this._log.info('addEntraIdCertificate response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .addEntraIdCertificate(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesAddEntraIdCertificateRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('addEntraIdCertificate response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Creates a Cloud SQL instance as a clone of the source instance. Using this - * operation might cause your instance to restart. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * The ID of the Cloud SQL instance to be cloned (source). This does not - * include the project ID. - * @param {string} request.project - * Project ID of the source as well as the clone Cloud SQL instance. - * @param {google.cloud.sql.v1beta4.InstancesCloneRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.clone.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Clone_async - */ + /** + * Creates a Cloud SQL instance as a clone of the source instance. Using this + * operation might cause your instance to restart. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * The ID of the Cloud SQL instance to be cloned (source). This does not + * include the project ID. + * @param {string} request.project + * Project ID of the source Cloud SQL instance. + * @param {google.cloud.sql.v1beta4.InstancesCloneRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.clone.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Clone_async + */ clone( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest | undefined, + {} | undefined, + ] + >; clone( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest + | null + | undefined, + {} | null | undefined + >, + ): void; clone( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest + | null + | undefined, + {} | null | undefined + >, + ): void; clone( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('clone request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('clone response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.clone(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest|undefined, - {}|undefined - ]) => { - this._log.info('clone response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .clone(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesCloneRequest | undefined, + {} | undefined, + ]) => { + this._log.info('clone response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Deletes a Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance to be deleted. - * @param {boolean} request.enableFinalBackup - * Flag to opt-in for final backup. By default, it is turned off. - * @param {number} [request.finalBackupTtlDays] - * Optional. Retention period of the final backup. - * @param {google.protobuf.Timestamp} [request.finalBackupExpiryTime] - * Optional. Final Backup expiration time. - * Timestamp in UTC of when this resource is considered expired. - * @param {string} [request.finalBackupDescription] - * Optional. The description of the final backup. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.delete.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Delete_async - */ + /** + * Deletes a Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance to be deleted. + * @param {boolean} request.enableFinalBackup + * Flag to opt-in for final backup. By default, it is turned off. + * @param {number} [request.finalBackupTtlDays] + * Optional. Retention period of the final backup. + * @param {google.protobuf.Timestamp} [request.finalBackupExpiryTime] + * Optional. Final Backup expiration time. + * Timestamp in UTC of when this resource is considered expired. + * @param {string} [request.finalBackupDescription] + * Optional. The description of the final backup. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.delete.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Delete_async + */ delete( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest | undefined, + {} | undefined, + ] + >; delete( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest + | null + | undefined, + {} | null | undefined + >, + ): void; delete( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest + | null + | undefined, + {} | null | undefined + >, + ): void; delete( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('delete request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('delete response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.delete(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest|undefined, - {}|undefined - ]) => { - this._log.info('delete response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .delete(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesDeleteRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('delete response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Demotes the stand-alone instance to be a Cloud SQL read replica for an - * external database server. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance name. - * @param {string} request.project - * ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.InstancesDemoteMasterRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.demote_master.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_DemoteMaster_async - */ + /** + * Demotes the stand-alone instance to be a Cloud SQL read replica for an + * external database server. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance name. + * @param {string} request.project + * ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.InstancesDemoteMasterRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.demote_master.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_DemoteMaster_async + */ demoteMaster( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest + | undefined + ), + {} | undefined, + ] + >; demoteMaster( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest + | null + | undefined, + {} | null | undefined + >, + ): void; demoteMaster( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest + | null + | undefined, + {} | null | undefined + >, + ): void; demoteMaster( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('demoteMaster request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('demoteMaster response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.demoteMaster(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest|undefined, - {}|undefined - ]) => { - this._log.info('demoteMaster response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .demoteMaster(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteMasterRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('demoteMaster response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Demotes an existing standalone instance to be a Cloud SQL read replica - * for an external database server. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. The name of the Cloud SQL instance. - * @param {string} request.project - * Required. The project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.InstancesDemoteRequest} request.body - * The request body. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.demote.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Demote_async - */ + /** + * Demotes an existing standalone instance to be a Cloud SQL read replica + * for an external database server. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. The name of the Cloud SQL instance. + * @param {string} request.project + * Required. The project ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.InstancesDemoteRequest} request.body + * The request body. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.demote.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Demote_async + */ demote( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest | undefined, + {} | undefined, + ] + >; demote( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest + | null + | undefined, + {} | null | undefined + >, + ): void; demote( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest + | null + | undefined, + {} | null | undefined + >, + ): void; demote( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('demote request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('demote response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.demote(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest|undefined, - {}|undefined - ]) => { - this._log.info('demote response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .demote(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesDemoteRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('demote response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Exports data from a Cloud SQL instance to a Cloud Storage bucket as a SQL - * dump or CSV file. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * The Cloud SQL instance ID. This doesn't include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance to be exported. - * @param {google.cloud.sql.v1beta4.InstancesExportRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.export.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Export_async - */ + /** + * Exports data from a Cloud SQL instance to a Cloud Storage bucket as a SQL + * dump or CSV file. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * The Cloud SQL instance ID. This doesn't include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance to be exported. + * @param {google.cloud.sql.v1beta4.InstancesExportRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.export.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Export_async + */ export( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest | undefined, + {} | undefined, + ] + >; export( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest + | null + | undefined, + {} | null | undefined + >, + ): void; export( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest + | null + | undefined, + {} | null | undefined + >, + ): void; export( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('export request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('export response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.export(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest|undefined, - {}|undefined - ]) => { - this._log.info('export response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .export(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesExportRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('export response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Initiates a manual failover of a high availability (HA) primary instance - * to a standby instance, which becomes the primary instance. Users are - * then rerouted to the new primary. For more information, see the - * [Overview of high - * availability](https://cloud.google.com/sql/docs/mysql/high-availability) - * page in the Cloud SQL documentation. - * If using Legacy HA (MySQL only), this causes the instance to failover to - * its failover replica instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * ID of the project that contains the read replica. - * @param {google.cloud.sql.v1beta4.InstancesFailoverRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.failover.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Failover_async - */ + /** + * Initiates a manual failover of a high availability (HA) primary instance + * to a standby instance, which becomes the primary instance. Users are + * then rerouted to the new primary. For more information, see the + * [Overview of high + * availability](https://cloud.google.com/sql/docs/mysql/high-availability) + * page in the Cloud SQL documentation. + * If using Legacy HA (MySQL only), this causes the instance to failover to + * its failover replica instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * ID of the project that contains the read replica. + * @param {google.cloud.sql.v1beta4.InstancesFailoverRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.failover.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Failover_async + */ failover( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest | undefined, + {} | undefined, + ] + >; failover( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest + | null + | undefined, + {} | null | undefined + >, + ): void; failover( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest + | null + | undefined, + {} | null | undefined + >, + ): void; failover( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('failover request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('failover response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.failover(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest|undefined, - {}|undefined - ]) => { - this._log.info('failover response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .failover(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesFailoverRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('failover response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Reencrypt CMEK instance with latest key version. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.InstancesReencryptRequest} request.body - * Reencrypt body that users request - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.reencrypt.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Reencrypt_async - */ + /** + * Reencrypt CMEK instance with latest key version. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.InstancesReencryptRequest} request.body + * Reencrypt body that users request + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.reencrypt.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Reencrypt_async + */ reencrypt( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest | undefined, + {} | undefined, + ] + >; reencrypt( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest + | null + | undefined, + {} | null | undefined + >, + ): void; reencrypt( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest + | null + | undefined, + {} | null | undefined + >, + ): void; reencrypt( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('reencrypt request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('reencrypt response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.reencrypt(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest|undefined, - {}|undefined - ]) => { - this._log.info('reencrypt response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .reencrypt(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesReencryptRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('reencrypt response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Retrieves a resource containing information about a Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.DatabaseInstance|DatabaseInstance}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.get.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Get_async - */ + /** + * Retrieves a resource containing information about a Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.DatabaseInstance|DatabaseInstance}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.get.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Get_async + */ get( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IDatabaseInstance, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IDatabaseInstance, + protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest | undefined, + {} | undefined, + ] + >; get( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IDatabaseInstance, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IDatabaseInstance, + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest + | null + | undefined, + {} | null | undefined + >, + ): void; get( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IDatabaseInstance, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IDatabaseInstance, + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest + | null + | undefined, + {} | null | undefined + >, + ): void; get( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IDatabaseInstance, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IDatabaseInstance, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IDatabaseInstance, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IDatabaseInstance, + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IDatabaseInstance, + protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('get request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IDatabaseInstance, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IDatabaseInstance, + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('get response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.get(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IDatabaseInstance, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest|undefined, - {}|undefined - ]) => { - this._log.info('get response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .get(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IDatabaseInstance, + protos.google.cloud.sql.v1beta4.ISqlInstancesGetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('get response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Imports data into a Cloud SQL instance from a SQL dump or CSV file in - * Cloud Storage. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.InstancesImportRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.import.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Import_async - */ + /** + * Imports data into a Cloud SQL instance from a SQL dump or CSV file in + * Cloud Storage. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.InstancesImportRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.import.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Import_async + */ import( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest | undefined, + {} | undefined, + ] + >; import( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest + | null + | undefined, + {} | null | undefined + >, + ): void; import( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest + | null + | undefined, + {} | null | undefined + >, + ): void; import( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('import request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('import response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.import(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest|undefined, - {}|undefined - ]) => { - this._log.info('import response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .import(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesImportRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('import response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Creates a new Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.project - * Project ID of the project to which the newly created Cloud SQL instances - * should belong. - * @param {google.cloud.sql.v1beta4.DatabaseInstance} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.insert.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Insert_async - */ + /** + * Creates a new Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.project + * Project ID of the project to which the newly created Cloud SQL instances + * should belong. + * @param {google.cloud.sql.v1beta4.DatabaseInstance} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.insert.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Insert_async + */ insert( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest | undefined, + {} | undefined, + ] + >; insert( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest + | null + | undefined, + {} | null | undefined + >, + ): void; insert( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest + | null + | undefined, + {} | null | undefined + >, + ): void; insert( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('insert request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('insert response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.insert(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest|undefined, - {}|undefined - ]) => { - this._log.info('insert response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .insert(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesInsertRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('insert response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists instances under a given project. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.filter - * A filter expression that filters resources listed in the response. - * The expression is in the form of field:value. For example, - * 'instanceType:CLOUD_SQL_INSTANCE'. Fields can be nested as needed as per - * their JSON representation, such as 'settings.userLabels.auto_start:true'. - * - * Multiple filter queries are space-separated. For example. - * 'state:RUNNABLE instanceType:CLOUD_SQL_INSTANCE'. By default, each - * expression is an AND expression. However, you can include AND and OR - * expressions explicitly. - * @param {number} request.maxResults - * The maximum number of instances to return. The service may return fewer - * than this value. - * If unspecified, at most 500 instances are returned. - * The maximum value is 1000; values above 1000 are coerced to 1000. - * @param {string} request.pageToken - * A previously-returned page token representing part of the larger set of - * results to view. - * @param {string} request.project - * Project ID of the project for which to list Cloud SQL instances. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.InstancesListResponse|InstancesListResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.list.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_List_async - */ + /** + * Lists instances under a given project. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.filter + * A filter expression that filters resources listed in the response. + * The expression is in the form of field:value. For example, + * 'instanceType:CLOUD_SQL_INSTANCE'. Fields can be nested as needed as per + * their JSON representation, such as 'settings.userLabels.auto_start:true'. + * + * Multiple filter queries are space-separated. For example. + * 'state:RUNNABLE instanceType:CLOUD_SQL_INSTANCE'. By default, each + * expression is an AND expression. However, you can include AND and OR + * expressions explicitly. + * @param {number} request.maxResults + * The maximum number of instances to return. The service may return fewer + * than this value. + * If unspecified, at most 500 instances are returned. + * The maximum value is 1000; values above 1000 are coerced to 1000. + * @param {string} request.pageToken + * A previously-returned page token representing part of the larger set of + * results to view. + * @param {string} request.project + * Project ID of the project for which to list Cloud SQL instances. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.InstancesListResponse|InstancesListResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.list.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_List_async + */ list( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IInstancesListResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IInstancesListResponse, + protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest | undefined, + {} | undefined, + ] + >; list( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IInstancesListResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IInstancesListResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest + | null + | undefined, + {} | null | undefined + >, + ): void; list( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IInstancesListResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IInstancesListResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest + | null + | undefined, + {} | null | undefined + >, + ): void; list( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IInstancesListResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IInstancesListResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IInstancesListResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IInstancesListResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IInstancesListResponse, + protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('list request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IInstancesListResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IInstancesListResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('list response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.list(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IInstancesListResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest|undefined, - {}|undefined - ]) => { - this._log.info('list response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .list(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IInstancesListResponse, + protos.google.cloud.sql.v1beta4.ISqlInstancesListRequest | undefined, + {} | undefined, + ]) => { + this._log.info('list response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists all of the trusted Certificate Authorities (CAs) for the specified - * instance. There can be up to three CAs listed: the CA that was used to sign - * the certificate that is currently in use, a CA that has been added but not - * yet used to sign a certificate, and a CA used to sign a certificate that - * has previously rotated out. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.InstancesListServerCasResponse|InstancesListServerCasResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.list_server_cas.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_ListServerCas_async - */ + /** + * Lists all of the trusted Certificate Authorities (CAs) for the specified + * instance. There can be up to three CAs listed: the CA that was used to sign + * the certificate that is currently in use, a CA that has been added but not + * yet used to sign a certificate, and a CA used to sign a certificate that + * has previously rotated out. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.InstancesListServerCasResponse|InstancesListServerCasResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.list_server_cas.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_ListServerCas_async + */ listServerCas( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IInstancesListServerCasResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IInstancesListServerCasResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest + | undefined + ), + {} | undefined, + ] + >; listServerCas( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IInstancesListServerCasResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IInstancesListServerCasResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest + | null + | undefined, + {} | null | undefined + >, + ): void; listServerCas( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IInstancesListServerCasResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IInstancesListServerCasResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest + | null + | undefined, + {} | null | undefined + >, + ): void; listServerCas( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IInstancesListServerCasResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IInstancesListServerCasResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IInstancesListServerCasResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IInstancesListServerCasResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IInstancesListServerCasResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('listServerCas request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IInstancesListServerCasResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IInstancesListServerCasResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('listServerCas response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.listServerCas(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IInstancesListServerCasResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest|undefined, - {}|undefined - ]) => { - this._log.info('listServerCas response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .listServerCas(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IInstancesListServerCasResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCasRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('listServerCas response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists all versions of server certificates and certificate authorities (CAs) - * for the specified instance. There can be up to three sets of certs listed: - * the certificate that is currently in use, a future that has been added but - * not yet used to sign a certificate, and a certificate that has been rotated - * out. For instances not using Certificate Authority Service (CAS) server CA, - * use ListServerCas instead. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Required. Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.InstancesListServerCertificatesResponse|InstancesListServerCertificatesResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.list_server_certificates.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_ListServerCertificates_async - */ + /** + * Lists all versions of server certificates and certificate authorities (CAs) + * for the specified instance. There can be up to three sets of certs listed: + * the certificate that is currently in use, a future that has been added but + * not yet used to sign a certificate, and a certificate that has been rotated + * out. For instances not using Certificate Authority Service (CAS) server CA, + * use ListServerCas instead. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Required. Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.InstancesListServerCertificatesResponse|InstancesListServerCertificatesResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.list_server_certificates.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_ListServerCertificates_async + */ listServerCertificates( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IInstancesListServerCertificatesResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IInstancesListServerCertificatesResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest + | undefined + ), + {} | undefined, + ] + >; listServerCertificates( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IInstancesListServerCertificatesResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IInstancesListServerCertificatesResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest + | null + | undefined, + {} | null | undefined + >, + ): void; listServerCertificates( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IInstancesListServerCertificatesResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IInstancesListServerCertificatesResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest + | null + | undefined, + {} | null | undefined + >, + ): void; listServerCertificates( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IInstancesListServerCertificatesResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IInstancesListServerCertificatesResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IInstancesListServerCertificatesResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IInstancesListServerCertificatesResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IInstancesListServerCertificatesResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('listServerCertificates request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IInstancesListServerCertificatesResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IInstancesListServerCertificatesResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('listServerCertificates response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.listServerCertificates(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IInstancesListServerCertificatesResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest|undefined, - {}|undefined - ]) => { - this._log.info('listServerCertificates response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .listServerCertificates(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IInstancesListServerCertificatesResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesListServerCertificatesRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('listServerCertificates response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists all versions of EntraID certificates for the specified instance. - * There can be up to three sets of certificates listed: the certificate that - * is currently in use, a future that has been added but not yet used to sign - * a certificate, and a certificate that has been rotated out. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Required. Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.InstancesListEntraIdCertificatesResponse|InstancesListEntraIdCertificatesResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.list_entra_id_certificates.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_ListEntraIdCertificates_async - */ + /** + * Lists all versions of EntraID certificates for the specified instance. + * There can be up to three sets of certificates listed: the certificate that + * is currently in use, a future that has been added but not yet used to sign + * a certificate, and a certificate that has been rotated out. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Required. Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.InstancesListEntraIdCertificatesResponse|InstancesListEntraIdCertificatesResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.list_entra_id_certificates.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_ListEntraIdCertificates_async + */ listEntraIdCertificates( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IInstancesListEntraIdCertificatesResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IInstancesListEntraIdCertificatesResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest + | undefined + ), + {} | undefined, + ] + >; listEntraIdCertificates( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IInstancesListEntraIdCertificatesResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IInstancesListEntraIdCertificatesResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest + | null + | undefined, + {} | null | undefined + >, + ): void; listEntraIdCertificates( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IInstancesListEntraIdCertificatesResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IInstancesListEntraIdCertificatesResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest + | null + | undefined, + {} | null | undefined + >, + ): void; listEntraIdCertificates( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IInstancesListEntraIdCertificatesResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IInstancesListEntraIdCertificatesResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IInstancesListEntraIdCertificatesResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IInstancesListEntraIdCertificatesResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IInstancesListEntraIdCertificatesResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('listEntraIdCertificates request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IInstancesListEntraIdCertificatesResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IInstancesListEntraIdCertificatesResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('listEntraIdCertificates response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.listEntraIdCertificates(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IInstancesListEntraIdCertificatesResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest|undefined, - {}|undefined - ]) => { - this._log.info('listEntraIdCertificates response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .listEntraIdCertificates(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IInstancesListEntraIdCertificatesResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesListEntraIdCertificatesRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('listEntraIdCertificates response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Partially updates settings of a Cloud SQL instance by merging the request - * with the current configuration. This method supports patch semantics. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.DatabaseInstance} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.patch.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Patch_async - */ + /** + * Partially updates settings of a Cloud SQL instance by merging the request + * with the current configuration. This method supports patch semantics. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {boolean} [request.reconcilePscNetworking] + * Optional. Set PSC config to the same value as the existing config to + * reconcile the PSC networking. + * @param {boolean} [request.reconcilePscNetworkingForce] + * Optional. Set PSC config to the same value as the existing config and force + * reconcile the PSC networking. + * @param {google.cloud.sql.v1beta4.DatabaseInstance} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.patch.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Patch_async + */ patch( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest | undefined, + {} | undefined, + ] + >; patch( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest + | null + | undefined, + {} | null | undefined + >, + ): void; patch( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest + | null + | undefined, + {} | null | undefined + >, + ): void; patch( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('patch request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('patch response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.patch(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest|undefined, - {}|undefined - ]) => { - this._log.info('patch response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .patch(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesPatchRequest | undefined, + {} | undefined, + ]) => { + this._log.info('patch response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Promotes the read replica instance to be an independent Cloud SQL - * primary instance. - * Using this operation might cause your instance to restart. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL read replica instance name. - * @param {string} request.project - * ID of the project that contains the read replica. - * @param {boolean} request.failover - * Set to true to invoke a replica failover to the DR replica. - * As part of replica failover, the promote operation attempts - * to add the original primary instance as a replica of the promoted - * DR replica when the original primary instance comes back online. - * If set to false or not specified, then the original primary - * instance becomes an independent Cloud SQL primary instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.promote_replica.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_PromoteReplica_async - */ + /** + * Promotes the read replica instance to be an independent Cloud SQL + * primary instance. + * Using this operation might cause your instance to restart. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL read replica instance name. + * @param {string} request.project + * ID of the project that contains the read replica. + * @param {boolean} request.failover + * Set to true to invoke a replica failover to the DR replica. + * As part of replica failover, the promote operation attempts + * to add the original primary instance as a replica of the promoted + * DR replica when the original primary instance comes back online. + * If set to false or not specified, then the original primary + * instance becomes an independent Cloud SQL primary instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.promote_replica.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_PromoteReplica_async + */ promoteReplica( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest + | undefined + ), + {} | undefined, + ] + >; promoteReplica( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; promoteReplica( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; promoteReplica( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('promoteReplica request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('promoteReplica response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.promoteReplica(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest|undefined, - {}|undefined - ]) => { - this._log.info('promoteReplica response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .promoteReplica(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesPromoteReplicaRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('promoteReplica response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Switches over from the primary instance to the DR replica - * instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL read replica instance name. - * @param {string} request.project - * ID of the project that contains the replica. - * @param {google.protobuf.Duration} [request.dbTimeout] - * Optional. (MySQL and PostgreSQL only) Cloud SQL instance operations - * timeout, which is a sum of all database operations. Default value is 10 - * minutes and can be modified to a maximum value of 24 hours. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.switchover.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Switchover_async - */ + /** + * Switches over from the primary instance to the DR replica + * instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL read replica instance name. + * @param {string} request.project + * ID of the project that contains the replica. + * @param {google.protobuf.Duration} [request.dbTimeout] + * Optional. (MySQL and PostgreSQL only) Cloud SQL instance operations + * timeout, which is a sum of all database operations. Default value is 10 + * minutes and can be modified to a maximum value of 24 hours. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.switchover.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Switchover_async + */ switchover( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest + | undefined + ), + {} | undefined, + ] + >; switchover( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest + | null + | undefined, + {} | null | undefined + >, + ): void; switchover( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest + | null + | undefined, + {} | null | undefined + >, + ): void; switchover( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('switchover request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('switchover response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.switchover(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest|undefined, - {}|undefined - ]) => { - this._log.info('switchover response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .switchover(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesSwitchoverRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('switchover response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Deletes all client certificates and generates a new server SSL certificate - * for the instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest.ResetSslMode} [request.mode] - * Optional. Reset SSL mode to use. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.reset_ssl_config.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_ResetSslConfig_async - */ + /** + * Deletes all client certificates and generates a new server SSL certificate + * for the instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest.ResetSslMode} [request.mode] + * Optional. Reset SSL mode to use. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.reset_ssl_config.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_ResetSslConfig_async + */ resetSslConfig( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest + | undefined + ), + {} | undefined, + ] + >; resetSslConfig( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; resetSslConfig( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; resetSslConfig( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('resetSslConfig request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('resetSslConfig response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.resetSslConfig(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest|undefined, - {}|undefined - ]) => { - this._log.info('resetSslConfig response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .resetSslConfig(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesResetSslConfigRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('resetSslConfig response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Restarts a Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance to be restarted. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.restart.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Restart_async - */ + /** + * Restarts a Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance to be restarted. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.restart.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Restart_async + */ restart( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest | undefined, + {} | undefined, + ] + >; restart( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest + | null + | undefined, + {} | null | undefined + >, + ): void; restart( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest + | null + | undefined, + {} | null | undefined + >, + ): void; restart( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('restart request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('restart response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.restart(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest|undefined, - {}|undefined - ]) => { - this._log.info('restart response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .restart(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesRestartRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('restart response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Restores a backup of a Cloud SQL instance. Using this operation might cause - * your instance to restart. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.InstancesRestoreBackupRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.restore_backup.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_RestoreBackup_async - */ + /** + * Restores a backup of a Cloud SQL instance. Using this operation might cause + * your instance to restart. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.InstancesRestoreBackupRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.restore_backup.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_RestoreBackup_async + */ restoreBackup( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest + | undefined + ), + {} | undefined, + ] + >; restoreBackup( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest + | null + | undefined, + {} | null | undefined + >, + ): void; restoreBackup( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest + | null + | undefined, + {} | null | undefined + >, + ): void; restoreBackup( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('restoreBackup request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('restoreBackup response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.restoreBackup(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest|undefined, - {}|undefined - ]) => { - this._log.info('restoreBackup response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .restoreBackup(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesRestoreBackupRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('restoreBackup response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Rotates the server certificate to one signed by the Certificate Authority - * (CA) version previously added with the addServerCA method. For instances - * that have enabled Certificate Authority Service (CAS) based server CA, - * use RotateServerCertificate to rotate the server certificate. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.InstancesRotateServerCaRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.rotate_server_ca.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_RotateServerCa_async - */ + /** + * Rotates the server certificate to one signed by the Certificate Authority + * (CA) version previously added with the addServerCA method. For instances + * that have enabled Certificate Authority Service (CAS) based server CA, + * use RotateServerCertificate to rotate the server certificate. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.InstancesRotateServerCaRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.rotate_server_ca.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_RotateServerCa_async + */ rotateServerCa( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest + | undefined + ), + {} | undefined, + ] + >; rotateServerCa( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; rotateServerCa( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; rotateServerCa( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('rotateServerCa request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('rotateServerCa response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.rotateServerCa(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest|undefined, - {}|undefined - ]) => { - this._log.info('rotateServerCa response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .rotateServerCa(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCaRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('rotateServerCa response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Rotates the server certificate version to one previously added with the - * addServerCertificate method. For instances not using Certificate Authority - * Service (CAS) server CA, use RotateServerCa instead. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Required. Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest} request.body - * Required. Rotate server certificate request body. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.rotate_server_certificate.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_RotateServerCertificate_async - */ + /** + * Rotates the server certificate version to one previously added with the + * addServerCertificate method. For instances not using Certificate Authority + * Service (CAS) server CA, use RotateServerCa instead. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Required. Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest} request.body + * Required. Rotate server certificate request body. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.rotate_server_certificate.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_RotateServerCertificate_async + */ rotateServerCertificate( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest + | undefined + ), + {} | undefined, + ] + >; rotateServerCertificate( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; rotateServerCertificate( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; rotateServerCertificate( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('rotateServerCertificate request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('rotateServerCertificate response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.rotateServerCertificate(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest|undefined, - {}|undefined - ]) => { - this._log.info('rotateServerCertificate response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .rotateServerCertificate(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateServerCertificateRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('rotateServerCertificate response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Rotates the Entra Id certificate version to one previously added with the - * addEntraIdCertificate method. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Required. Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest} request.body - * Required. Rotate Entra ID certificate request body. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.rotate_entra_id_certificate.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_RotateEntraIdCertificate_async - */ + /** + * Rotates the Entra Id certificate version to one previously added with the + * addEntraIdCertificate method. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Required. Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest} request.body + * Required. Rotate Entra ID certificate request body. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.rotate_entra_id_certificate.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_RotateEntraIdCertificate_async + */ rotateEntraIdCertificate( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest + | undefined + ), + {} | undefined, + ] + >; rotateEntraIdCertificate( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; rotateEntraIdCertificate( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; rotateEntraIdCertificate( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('rotateEntraIdCertificate request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('rotateEntraIdCertificate response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.rotateEntraIdCertificate(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest|undefined, - {}|undefined - ]) => { - this._log.info('rotateEntraIdCertificate response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .rotateEntraIdCertificate(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesRotateEntraIdCertificateRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('rotateEntraIdCertificate response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Starts the replication in the read replica instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL read replica instance name. - * @param {string} request.project - * ID of the project that contains the read replica. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.start_replica.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_StartReplica_async - */ + /** + * Starts the replication in the read replica instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL read replica instance name. + * @param {string} request.project + * ID of the project that contains the read replica. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.start_replica.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_StartReplica_async + */ startReplica( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest + | undefined + ), + {} | undefined, + ] + >; startReplica( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; startReplica( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; startReplica( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('startReplica request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('startReplica response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.startReplica(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest|undefined, - {}|undefined - ]) => { - this._log.info('startReplica response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .startReplica(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesStartReplicaRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('startReplica response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Stops the replication in the read replica instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL read replica instance name. - * @param {string} request.project - * ID of the project that contains the read replica. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.stop_replica.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_StopReplica_async - */ + /** + * Stops the replication in the read replica instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL read replica instance name. + * @param {string} request.project + * ID of the project that contains the read replica. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.stop_replica.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_StopReplica_async + */ stopReplica( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest + | undefined + ), + {} | undefined, + ] + >; stopReplica( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; stopReplica( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): void; stopReplica( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('stopReplica request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('stopReplica response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.stopReplica(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest|undefined, - {}|undefined - ]) => { - this._log.info('stopReplica response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .stopReplica(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesStopReplicaRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('stopReplica response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Truncate MySQL general and slow query log tables - * MySQL only. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the Cloud SQL project. - * @param {google.cloud.sql.v1beta4.InstancesTruncateLogRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.truncate_log.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_TruncateLog_async - */ + /** + * Truncate MySQL general and slow query log tables + * MySQL only. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the Cloud SQL project. + * @param {google.cloud.sql.v1beta4.InstancesTruncateLogRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.truncate_log.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_TruncateLog_async + */ truncateLog( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest + | undefined + ), + {} | undefined, + ] + >; truncateLog( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest + | null + | undefined, + {} | null | undefined + >, + ): void; truncateLog( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest + | null + | undefined, + {} | null | undefined + >, + ): void; truncateLog( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('truncateLog request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('truncateLog response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.truncateLog(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest|undefined, - {}|undefined - ]) => { - this._log.info('truncateLog response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .truncateLog(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesTruncateLogRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('truncateLog response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Updates settings of a Cloud SQL instance. Using this operation might cause - * your instance to restart. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.DatabaseInstance} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.update.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Update_async - */ + /** + * Updates settings of a Cloud SQL instance. Using this operation might cause + * your instance to restart. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.DatabaseInstance} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.update.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_Update_async + */ update( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest | undefined, + {} | undefined, + ] + >; update( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; update( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest + | null + | undefined, + {} | null | undefined + >, + ): void; update( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('update request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('update response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.update(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest|undefined, - {}|undefined - ]) => { - this._log.info('update response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .update(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesUpdateRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('update response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Generates a short-lived X509 certificate containing the provided public key - * and signed by a private key specific to the target instance. Users may use - * the certificate to authenticate as themselves when connecting to the - * database. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the Cloud SQL project. - * @param {google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SslCert|SslCert}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.create_ephemeral.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_CreateEphemeral_async - */ + /** + * Generates a short-lived X509 certificate containing the provided public key + * and signed by a private key specific to the target instance. Users may use + * the certificate to authenticate as themselves when connecting to the + * database. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the Cloud SQL project. + * @param {google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SslCert|SslCert}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.create_ephemeral.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_CreateEphemeral_async + */ createEphemeral( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.ISslCert, - protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISslCert, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest + | undefined + ), + {} | undefined, + ] + >; createEphemeral( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISslCert, - protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISslCert, + | protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + >, + ): void; createEphemeral( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISslCert, - protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISslCert, + | protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + >, + ): void; createEphemeral( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.ISslCert, - protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.ISslCert, - protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.ISslCert, - protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.ISslCert, + | protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISslCert, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('createEphemeral request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.ISslCert, - protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.ISslCert, + | protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('createEphemeral response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.createEphemeral(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.ISslCert, - protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest|undefined, - {}|undefined - ]) => { - this._log.info('createEphemeral response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .createEphemeral(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.ISslCert, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesCreateEphemeralCertRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('createEphemeral response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Reschedules the maintenance on the given instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.reschedule_maintenance.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_RescheduleMaintenance_async - */ + /** + * Reschedules the maintenance on the given instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.reschedule_maintenance.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_RescheduleMaintenance_async + */ rescheduleMaintenance( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest + | undefined + ), + {} | undefined, + ] + >; rescheduleMaintenance( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest + | null + | undefined, + {} | null | undefined + >, + ): void; rescheduleMaintenance( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest + | null + | undefined, + {} | null | undefined + >, + ): void; rescheduleMaintenance( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('rescheduleMaintenance request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('rescheduleMaintenance response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.rescheduleMaintenance(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest|undefined, - {}|undefined - ]) => { - this._log.info('rescheduleMaintenance response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .rescheduleMaintenance(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesRescheduleMaintenanceRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('rescheduleMaintenance response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Verify External primary instance external sync settings. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {boolean} request.verifyConnectionOnly - * Flag to enable verifying connection only - * @param {google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode} request.syncMode - * External sync mode - * @param {boolean} [request.verifyReplicationOnly] - * Optional. Flag to verify settings required by replication setup only - * @param {google.cloud.sql.v1beta4.MySqlSyncConfig} [request.mysqlSyncConfig] - * Optional. MySQL-specific settings for start external sync. - * @param {google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType} [request.migrationType] - * Optional. MigrationType configures the migration to use physical files or - * logical dump files. If not set, then the logical dump file configuration is - * used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL. - * @param {google.cloud.sql.v1beta4.ExternalSyncParallelLevel} [request.syncParallelLevel] - * Optional. Parallel level for initial data sync. Only applicable for - * PostgreSQL. - * @param {number[]} [request.selectedObjects] - * Optional. Migrate only the specified objects from the source instance. If - * this field is empty, then migrate all objects. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsResponse|SqlInstancesVerifyExternalSyncSettingsResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.verify_external_sync_settings.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_VerifyExternalSyncSettings_async - */ + /** + * Verify External primary instance external sync settings. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {boolean} request.verifyConnectionOnly + * Flag to enable verifying connection only + * @param {google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode} request.syncMode + * External sync mode + * @param {boolean} [request.verifyReplicationOnly] + * Optional. Flag to verify settings required by replication setup only + * @param {google.cloud.sql.v1beta4.MySqlSyncConfig} [request.mysqlSyncConfig] + * Optional. MySQL-specific settings for start external sync. + * @param {google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType} [request.migrationType] + * Optional. MigrationType configures the migration to use physical files or + * logical dump files. If not set, then the logical dump file configuration is + * used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL. + * @param {google.cloud.sql.v1beta4.ExternalSyncParallelLevel} [request.syncParallelLevel] + * Optional. Parallel level for initial data sync. Only applicable for + * PostgreSQL. + * @param {number[]} [request.selectedObjects] + * Optional. Migrate only the specified objects from the source instance. If + * this field is empty, then migrate all objects. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsResponse|SqlInstancesVerifyExternalSyncSettingsResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.verify_external_sync_settings.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_VerifyExternalSyncSettings_async + */ verifyExternalSyncSettings( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest + | undefined + ), + {} | undefined, + ] + >; verifyExternalSyncSettings( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest + | null + | undefined, + {} | null | undefined + >, + ): void; verifyExternalSyncSettings( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest + | null + | undefined, + {} | null | undefined + >, + ): void; verifyExternalSyncSettings( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('verifyExternalSyncSettings request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('verifyExternalSyncSettings response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.verifyExternalSyncSettings(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest|undefined, - {}|undefined - ]) => { - this._log.info('verifyExternalSyncSettings response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .verifyExternalSyncSettings(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('verifyExternalSyncSettings response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Start External primary instance migration. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode} request.syncMode - * External sync mode. - * @param {boolean} request.skipVerification - * Whether to skip the verification step (VESS). - * @param {google.cloud.sql.v1beta4.MySqlSyncConfig} request.mysqlSyncConfig - * MySQL-specific settings for start external sync. - * @param {google.cloud.sql.v1beta4.ExternalSyncParallelLevel} [request.syncParallelLevel] - * Optional. Parallel level for initial data sync. Currently only applicable - * for MySQL. - * @param {google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType} [request.migrationType] - * Optional. MigrationType configures the migration to use physical files or - * logical dump files. If not set, then the logical dump file configuration is - * used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL. - * @param {boolean} [request.replicaOverwriteEnabled] - * Optional. MySQL only. True if end-user has confirmed that this SES call - * will wipe replica databases overlapping with the proposed selected_objects. - * If this field is not set and there are both overlapping and additional - * databases proposed, an error will be returned. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.start_external_sync.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_StartExternalSync_async - */ + /** + * Start External primary instance migration. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode} request.syncMode + * External sync mode. + * @param {boolean} request.skipVerification + * Whether to skip the verification step (VESS). + * @param {google.cloud.sql.v1beta4.MySqlSyncConfig} request.mysqlSyncConfig + * MySQL-specific settings for start external sync. + * @param {google.cloud.sql.v1beta4.ExternalSyncParallelLevel} [request.syncParallelLevel] + * Optional. Parallel level for initial data sync. Currently only applicable + * for MySQL. + * @param {google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType} [request.migrationType] + * Optional. MigrationType configures the migration to use physical files or + * logical dump files. If not set, then the logical dump file configuration is + * used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL. + * @param {boolean} [request.replicaOverwriteEnabled] + * Optional. MySQL only. True if end-user has confirmed that this SES call + * will wipe replica databases overlapping with the proposed selected_objects. + * If this field is not set and there are both overlapping and additional + * databases proposed, an error will be returned. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.start_external_sync.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_StartExternalSync_async + */ startExternalSync( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest + | undefined + ), + {} | undefined, + ] + >; startExternalSync( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest + | null + | undefined, + {} | null | undefined + >, + ): void; startExternalSync( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest + | null + | undefined, + {} | null | undefined + >, + ): void; startExternalSync( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('startExternalSync request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('startExternalSync response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.startExternalSync(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest|undefined, - {}|undefined - ]) => { - this._log.info('startExternalSync response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .startExternalSync(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesStartExternalSyncRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('startExternalSync response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Perform Disk Shrink on primary instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.PerformDiskShrinkContext} request.body - * Perform disk shrink context. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.perform_disk_shrink.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_PerformDiskShrink_async - */ + /** + * Perform Disk Shrink on primary instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.PerformDiskShrinkContext} request.body + * Perform disk shrink context. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.perform_disk_shrink.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_PerformDiskShrink_async + */ performDiskShrink( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest + | undefined + ), + {} | undefined, + ] + >; performDiskShrink( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest + | null + | undefined, + {} | null | undefined + >, + ): void; performDiskShrink( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest + | null + | undefined, + {} | null | undefined + >, + ): void; performDiskShrink( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('performDiskShrink request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('performDiskShrink response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.performDiskShrink(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest|undefined, - {}|undefined - ]) => { - this._log.info('performDiskShrink response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .performDiskShrink(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesPerformDiskShrinkRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('performDiskShrink response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Get Disk Shrink Config for a given instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigResponse|SqlInstancesGetDiskShrinkConfigResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.get_disk_shrink_config.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_GetDiskShrinkConfig_async - */ + /** + * Get Disk Shrink Config for a given instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigResponse|SqlInstancesGetDiskShrinkConfigResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.get_disk_shrink_config.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_GetDiskShrinkConfig_async + */ getDiskShrinkConfig( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest + | undefined + ), + {} | undefined, + ] + >; getDiskShrinkConfig( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getDiskShrinkConfig( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getDiskShrinkConfig( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('getDiskShrinkConfig request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getDiskShrinkConfig response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getDiskShrinkConfig(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest|undefined, - {}|undefined - ]) => { - this._log.info('getDiskShrinkConfig response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getDiskShrinkConfig(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('getDiskShrinkConfig response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Reset Replica Size to primary instance disk size. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL read replica instance name. - * @param {string} request.project - * ID of the project that contains the read replica. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.reset_replica_size.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_ResetReplicaSize_async - */ + /** + * Reset Replica Size to primary instance disk size. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL read replica instance name. + * @param {string} request.project + * ID of the project that contains the read replica. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.reset_replica_size.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_ResetReplicaSize_async + */ resetReplicaSize( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest + | undefined + ), + {} | undefined, + ] + >; resetReplicaSize( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest + | null + | undefined, + {} | null | undefined + >, + ): void; resetReplicaSize( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest + | null + | undefined, + {} | null | undefined + >, + ): void; resetReplicaSize( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('resetReplicaSize request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('resetReplicaSize response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.resetReplicaSize(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest|undefined, - {}|undefined - ]) => { - this._log.info('resetReplicaSize response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .resetReplicaSize(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesResetReplicaSizeRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('resetReplicaSize response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Get Latest Recovery Time for a given instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.protobuf.Timestamp} request.sourceInstanceDeletionTime - * The timestamp used to identify the time when the source instance is - * deleted. If this instance is deleted, then you must set the timestamp. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeResponse|SqlInstancesGetLatestRecoveryTimeResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.get_latest_recovery_time.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_GetLatestRecoveryTime_async - */ + /** + * Get Latest Recovery Time for a given instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.protobuf.Timestamp} request.sourceInstanceDeletionTime + * The timestamp used to identify the time when the source instance is + * deleted. If this instance is deleted, then you must set the timestamp. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeResponse|SqlInstancesGetLatestRecoveryTimeResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.get_latest_recovery_time.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_GetLatestRecoveryTime_async + */ getLatestRecoveryTime( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest + | undefined + ), + {} | undefined, + ] + >; getLatestRecoveryTime( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getLatestRecoveryTime( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getLatestRecoveryTime( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('getLatestRecoveryTime request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getLatestRecoveryTime response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getLatestRecoveryTime(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest|undefined, - {}|undefined - ]) => { - this._log.info('getLatestRecoveryTime response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getLatestRecoveryTime(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('getLatestRecoveryTime response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Execute SQL statements. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Database instance ID. This does not include the project ID. - * @param {string} request.project - * Required. Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.ExecuteSqlPayload} request.body - * The request body. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse|SqlInstancesExecuteSqlResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.execute_sql.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_ExecuteSql_async - */ + /** + * Execute SQL statements. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Database instance ID. This does not include the project ID. + * @param {string} request.project + * Required. Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.ExecuteSqlPayload} request.body + * The request body. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse|SqlInstancesExecuteSqlResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.execute_sql.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_ExecuteSql_async + */ executeSql( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest + | undefined + ), + {} | undefined, + ] + >; executeSql( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest + | null + | undefined, + {} | null | undefined + >, + ): void; executeSql( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest + | null + | undefined, + {} | null | undefined + >, + ): void; executeSql( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('executeSql request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('executeSql response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.executeSql(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest|undefined, - {}|undefined - ]) => { - this._log.info('executeSql response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .executeSql(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('executeSql response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Acquire a lease for the setup of SQL Server Reporting Services (SSRS). - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Cloud SQL instance ID. This doesn't include the project ID. It's - * composed of lowercase letters, numbers, and hyphens, and it must start with - * a letter. The total length must be 98 characters or less (Example: - * instance-id). - * @param {string} request.project - * Required. ID of the project that contains the instance (Example: - * project-id). - * @param {google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest} request.body - * The body for request to acquire an SSRS lease. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseResponse|SqlInstancesAcquireSsrsLeaseResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.acquire_ssrs_lease.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_AcquireSsrsLease_async - */ + /** + * Acquire a lease for the setup of SQL Server Reporting Services (SSRS). + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Cloud SQL instance ID. This doesn't include the project ID. It's + * composed of lowercase letters, numbers, and hyphens, and it must start with + * a letter. The total length must be 98 characters or less (Example: + * instance-id). + * @param {string} request.project + * Required. ID of the project that contains the instance (Example: + * project-id). + * @param {google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest} request.body + * The body for request to acquire an SSRS lease. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseResponse|SqlInstancesAcquireSsrsLeaseResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.acquire_ssrs_lease.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_AcquireSsrsLease_async + */ acquireSsrsLease( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest + | undefined + ), + {} | undefined, + ] + >; acquireSsrsLease( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + >, + ): void; acquireSsrsLease( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + >, + ): void; acquireSsrsLease( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('acquireSsrsLease request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('acquireSsrsLease response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.acquireSsrsLease(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest|undefined, - {}|undefined - ]) => { - this._log.info('acquireSsrsLease response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .acquireSsrsLease(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('acquireSsrsLease response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Release a lease for the setup of SQL Server Reporting Services (SSRS). - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. The Cloud SQL instance ID. This doesn't include the project ID. - * It's composed of lowercase letters, numbers, and hyphens, and it must start - * with a letter. The total length must be 98 characters or less (Example: - * instance-id). - * @param {string} request.project - * Required. The ID of the project that contains the instance (Example: - * project-id). - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseResponse|SqlInstancesReleaseSsrsLeaseResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.release_ssrs_lease.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_ReleaseSsrsLease_async - */ + /** + * Release a lease for the setup of SQL Server Reporting Services (SSRS). + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. The Cloud SQL instance ID. This doesn't include the project ID. + * It's composed of lowercase letters, numbers, and hyphens, and it must start + * with a letter. The total length must be 98 characters or less (Example: + * instance-id). + * @param {string} request.project + * Required. The ID of the project that contains the instance (Example: + * project-id). + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseResponse|SqlInstancesReleaseSsrsLeaseResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.release_ssrs_lease.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_ReleaseSsrsLease_async + */ releaseSsrsLease( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest + | undefined + ), + {} | undefined, + ] + >; releaseSsrsLease( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + >, + ): void; releaseSsrsLease( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + >, + ): void; releaseSsrsLease( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('releaseSsrsLease request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseResponse, + | protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('releaseSsrsLease response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.releaseSsrsLease(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseResponse, - protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest|undefined, - {}|undefined - ]) => { - this._log.info('releaseSsrsLease response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .releaseSsrsLease(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseResponse, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('releaseSsrsLease response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Execute MVU Pre-checks - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Required. Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Required. Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest} request.body - * Required. The context for request to perform the pre-check major version - * upgrade operation. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.pre_check_major_version_upgrade.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_PreCheckMajorVersionUpgrade_async - */ + /** + * Execute MVU Pre-checks + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Required. Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Required. Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest} request.body + * Required. The context for request to perform the pre-check major version + * upgrade operation. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.pre_check_major_version_upgrade.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_PreCheckMajorVersionUpgrade_async + */ preCheckMajorVersionUpgrade( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest + | undefined + ), + {} | undefined, + ] + >; preCheckMajorVersionUpgrade( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest + | null + | undefined, + {} | null | undefined + >, + ): void; preCheckMajorVersionUpgrade( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest + | null + | undefined, + {} | null | undefined + >, + ): void; preCheckMajorVersionUpgrade( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('preCheckMajorVersionUpgrade request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('preCheckMajorVersionUpgrade response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.preCheckMajorVersionUpgrade(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest|undefined, - {}|undefined - ]) => { - this._log.info('preCheckMajorVersionUpgrade response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .preCheckMajorVersionUpgrade(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesPreCheckMajorVersionUpgradeRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('preCheckMajorVersionUpgrade response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Point in time restore for an instance managed by Google Cloud Backup and - * Disaster Recovery. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent resource where you created this instance. - * Format: projects/{project} - * @param {google.cloud.sql.v1beta4.PointInTimeRestoreContext} request.context - * Required. The context for request to perform a PITR on a Google Cloud - * Backup and Disaster Recovery managed instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_instances_service.point_in_time_restore.js - * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_PointInTimeRestore_async - */ + /** + * Point in time restore for an instance managed by Google Cloud Backup and + * Disaster Recovery. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent resource where you created this instance. + * Format: projects/{project} + * @param {google.cloud.sql.v1beta4.PointInTimeRestoreContext} request.context + * Required. The context for request to perform a PITR on a Google Cloud + * Backup and Disaster Recovery managed instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_instances_service.point_in_time_restore.js + * region_tag:sqladmin_v1beta4_generated_SqlInstancesService_PointInTimeRestore_async + */ pointInTimeRestore( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest + | undefined + ), + {} | undefined, + ] + >; pointInTimeRestore( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest + | null + | undefined, + {} | null | undefined + >, + ): void; pointInTimeRestore( - request: protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest + | null + | undefined, + {} | null | undefined + >, + ): void; pointInTimeRestore( - request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'parent': request.parent ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + parent: request.parent ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('pointInTimeRestore request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('pointInTimeRestore response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.pointInTimeRestore(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest|undefined, - {}|undefined - ]) => { - this._log.info('pointInTimeRestore response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .pointInTimeRestore(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + ( + | protos.google.cloud.sql.v1beta4.ISqlInstancesPointInTimeRestoreRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('pointInTimeRestore response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -4713,12 +6824,11 @@ export class SqlInstancesServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -4751,7 +6861,7 @@ export class SqlInstancesServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -4767,7 +6877,7 @@ export class SqlInstancesServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -4802,7 +6912,7 @@ export class SqlInstancesServiceClient { * @param {string} project * @returns {string} Resource name string. */ - projectPath(project:string) { + projectPath(project: string) { return this.pathTemplates.projectPathTemplate.render({ project: project, }); @@ -4827,13 +6937,15 @@ export class SqlInstancesServiceClient { */ close(): Promise { if (this.sqlInstancesServiceStub && !this._terminated) { - return this.sqlInstancesServiceStub.then(stub => { + return this.sqlInstancesServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1beta4/sql_instances_service_proto_list.json b/packages/google-cloud-sql/src/v1beta4/sql_instances_service_proto_list.json index 3d9dcd428e8..622fead68d3 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_instances_service_proto_list.json +++ b/packages/google-cloud-sql/src/v1beta4/sql_instances_service_proto_list.json @@ -1,6 +1,7 @@ [ "../../protos/google/cloud/sql/v1beta4/cloud_sql.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_connect.proto", + "../../protos/google/cloud/sql/v1beta4/cloud_sql_data.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_iam_policies.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_resources.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_tiers.proto", diff --git a/packages/google-cloud-sql/src/v1beta4/sql_operations_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_operations_service_client.ts index 8889aa76f6d..ceb1fa38119 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_operations_service_client.ts +++ b/packages/google-cloud-sql/src/v1beta4/sql_operations_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -43,7 +50,7 @@ export class SqlOperationsServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -56,10 +63,10 @@ export class SqlOperationsServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlOperationsServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlOperationsServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlOperationsServiceClient. @@ -100,21 +107,42 @@ export class SqlOperationsServiceClient { * const client = new SqlOperationsServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlOperationsServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -139,7 +167,7 @@ export class SqlOperationsServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -153,15 +181,11 @@ export class SqlOperationsServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -183,17 +207,20 @@ export class SqlOperationsServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), projectPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}' + 'projects/{project}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1beta4.SqlOperationsService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1beta4.SqlOperationsService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -224,36 +251,40 @@ export class SqlOperationsServiceClient { // Put together the "service stub" for // google.cloud.sql.v1beta4.SqlOperationsService. this.sqlOperationsServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1beta4.SqlOperationsService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1beta4.SqlOperationsService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1beta4.SqlOperationsService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlOperationsServiceStubMethods = - ['get', 'list', 'cancel']; + const sqlOperationsServiceStubMethods = ['get', 'list', 'cancel']; for (const methodName of sqlOperationsServiceStubMethods) { const callPromise = this.sqlOperationsServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -268,8 +299,14 @@ export class SqlOperationsServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -280,8 +317,14 @@ export class SqlOperationsServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -314,7 +357,7 @@ export class SqlOperationsServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -324,8 +367,9 @@ export class SqlOperationsServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -336,305 +380,428 @@ export class SqlOperationsServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Retrieves an instance operation that has been performed on an instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.operation - * Instance operation ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_operations_service.get.js - * region_tag:sqladmin_v1beta4_generated_SqlOperationsService_Get_async - */ + /** + * Retrieves an instance operation that has been performed on an instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.operation + * Instance operation ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_operations_service.get.js + * region_tag:sqladmin_v1beta4_generated_SqlOperationsService_Get_async + */ get( - request?: protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest | undefined, + {} | undefined, + ] + >; get( - request: protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest + | null + | undefined, + {} | null | undefined + >, + ): void; get( - request: protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest + | null + | undefined, + {} | null | undefined + >, + ): void; get( - request?: protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'operation': request.operation ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + operation: request.operation ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('get request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('get response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.get(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest|undefined, - {}|undefined - ]) => { - this._log.info('get response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .get(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlOperationsGetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('get response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists all instance operations that have been performed on the given Cloud - * SQL instance in the reverse chronological order of the start time. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {number} request.maxResults - * Maximum number of operations per response. - * @param {string} request.pageToken - * A previously-returned page token representing part of the larger set of - * results to view. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.OperationsListResponse|OperationsListResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_operations_service.list.js - * region_tag:sqladmin_v1beta4_generated_SqlOperationsService_List_async - */ + /** + * Lists all instance operations that have been performed on the given Cloud + * SQL instance in the reverse chronological order of the start time. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {number} request.maxResults + * Maximum number of operations per response. + * @param {string} request.pageToken + * A previously-returned page token representing part of the larger set of + * results to view. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.OperationsListResponse|OperationsListResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_operations_service.list.js + * region_tag:sqladmin_v1beta4_generated_SqlOperationsService_List_async + */ list( - request?: protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperationsListResponse, - protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperationsListResponse, + protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest | undefined, + {} | undefined, + ] + >; list( - request: protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperationsListResponse, - protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperationsListResponse, + | protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest + | null + | undefined, + {} | null | undefined + >, + ): void; list( - request: protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperationsListResponse, - protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperationsListResponse, + | protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest + | null + | undefined, + {} | null | undefined + >, + ): void; list( - request?: protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperationsListResponse, - protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperationsListResponse, - protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperationsListResponse, - protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperationsListResponse, + | protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperationsListResponse, + protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('list request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperationsListResponse, - protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperationsListResponse, + | protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('list response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.list(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperationsListResponse, - protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest|undefined, - {}|undefined - ]) => { - this._log.info('list response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .list(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperationsListResponse, + protos.google.cloud.sql.v1beta4.ISqlOperationsListRequest | undefined, + {} | undefined, + ]) => { + this._log.info('list response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Cancels an instance operation that has been performed on an instance. - * Ordinarily, this method name should be `CancelSqlOperation`. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.operation - * Instance operation ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.protobuf.Empty|Empty}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_operations_service.cancel.js - * region_tag:sqladmin_v1beta4_generated_SqlOperationsService_Cancel_async - */ + /** + * Cancels an instance operation that has been performed on an instance. + * Ordinarily, this method name should be `CancelSqlOperation`. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.operation + * Instance operation ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.protobuf.Empty|Empty}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_operations_service.cancel.js + * region_tag:sqladmin_v1beta4_generated_SqlOperationsService_Cancel_async + */ cancel( - request?: protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest, - options?: CallOptions): - Promise<[ - protos.google.protobuf.IEmpty, - protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.protobuf.IEmpty, + protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest | undefined, + {} | undefined, + ] + >; cancel( - request: protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest, - options: CallOptions, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest, + options: CallOptions, + callback: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest + | null + | undefined, + {} | null | undefined + >, + ): void; cancel( - request: protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest, + callback: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest + | null + | undefined, + {} | null | undefined + >, + ): void; cancel( - request?: protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.protobuf.IEmpty, - protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.protobuf.IEmpty, - protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.protobuf.IEmpty, + protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'operation': request.operation ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + operation: request.operation ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('cancel request %j', request); - const wrappedCallback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('cancel response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.cancel(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.protobuf.IEmpty, - protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest|undefined, - {}|undefined - ]) => { - this._log.info('cancel response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .cancel(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.protobuf.IEmpty, + ( + | protos.google.cloud.sql.v1beta4.ISqlOperationsCancelRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('cancel response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -669,12 +836,11 @@ export class SqlOperationsServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -707,7 +873,7 @@ export class SqlOperationsServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -723,7 +889,7 @@ export class SqlOperationsServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -758,7 +924,7 @@ export class SqlOperationsServiceClient { * @param {string} project * @returns {string} Resource name string. */ - projectPath(project:string) { + projectPath(project: string) { return this.pathTemplates.projectPathTemplate.render({ project: project, }); @@ -783,13 +949,15 @@ export class SqlOperationsServiceClient { */ close(): Promise { if (this.sqlOperationsServiceStub && !this._terminated) { - return this.sqlOperationsServiceStub.then(stub => { + return this.sqlOperationsServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1beta4/sql_operations_service_proto_list.json b/packages/google-cloud-sql/src/v1beta4/sql_operations_service_proto_list.json index 3d9dcd428e8..622fead68d3 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_operations_service_proto_list.json +++ b/packages/google-cloud-sql/src/v1beta4/sql_operations_service_proto_list.json @@ -1,6 +1,7 @@ [ "../../protos/google/cloud/sql/v1beta4/cloud_sql.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_connect.proto", + "../../protos/google/cloud/sql/v1beta4/cloud_sql_data.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_iam_policies.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_resources.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_tiers.proto", diff --git a/packages/google-cloud-sql/src/v1beta4/sql_ssl_certs_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_ssl_certs_service_client.ts index 017e4fb3668..aeb3ba6c3aa 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_ssl_certs_service_client.ts +++ b/packages/google-cloud-sql/src/v1beta4/sql_ssl_certs_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -43,7 +50,7 @@ export class SqlSslCertsServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -56,10 +63,10 @@ export class SqlSslCertsServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlSslCertsServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlSslCertsServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlSslCertsServiceClient. @@ -100,21 +107,42 @@ export class SqlSslCertsServiceClient { * const client = new SqlSslCertsServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlSslCertsServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -139,7 +167,7 @@ export class SqlSslCertsServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -153,15 +181,11 @@ export class SqlSslCertsServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -183,17 +207,20 @@ export class SqlSslCertsServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), projectPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}' + 'projects/{project}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1beta4.SqlSslCertsService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1beta4.SqlSslCertsService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -224,36 +251,40 @@ export class SqlSslCertsServiceClient { // Put together the "service stub" for // google.cloud.sql.v1beta4.SqlSslCertsService. this.sqlSslCertsServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1beta4.SqlSslCertsService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1beta4.SqlSslCertsService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1beta4.SqlSslCertsService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlSslCertsServiceStubMethods = - ['delete', 'get', 'insert', 'list']; + const sqlSslCertsServiceStubMethods = ['delete', 'get', 'insert', 'list']; for (const methodName of sqlSslCertsServiceStubMethods) { const callPromise = this.sqlSslCertsServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -268,8 +299,14 @@ export class SqlSslCertsServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -280,8 +317,14 @@ export class SqlSslCertsServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -314,7 +357,7 @@ export class SqlSslCertsServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -324,8 +367,9 @@ export class SqlSslCertsServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -336,408 +380,562 @@ export class SqlSslCertsServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Deletes the SSL certificate. For First Generation instances, the - * certificate remains valid until the instance is restarted. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {string} request.sha1Fingerprint - * Sha1 FingerPrint. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_ssl_certs_service.delete.js - * region_tag:sqladmin_v1beta4_generated_SqlSslCertsService_Delete_async - */ + /** + * Deletes the SSL certificate. For First Generation instances, the + * certificate remains valid until the instance is restarted. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {string} request.sha1Fingerprint + * Sha1 FingerPrint. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_ssl_certs_service.delete.js + * region_tag:sqladmin_v1beta4_generated_SqlSslCertsService_Delete_async + */ delete( - request?: protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest | undefined, + {} | undefined, + ] + >; delete( - request: protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest + | null + | undefined, + {} | null | undefined + >, + ): void; delete( - request: protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest + | null + | undefined, + {} | null | undefined + >, + ): void; delete( - request?: protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'sha1_fingerprint': request.sha1Fingerprint ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + sha1_fingerprint: request.sha1Fingerprint ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('delete request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('delete response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.delete(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest|undefined, - {}|undefined - ]) => { - this._log.info('delete response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .delete(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlSslCertsDeleteRequest | undefined, + {} | undefined, + ]) => { + this._log.info('delete response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Retrieves a particular SSL certificate. Does not include the private key - * (required for usage). The private key must be saved from the response to - * initial creation. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {string} request.sha1Fingerprint - * Sha1 FingerPrint. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SslCert|SslCert}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_ssl_certs_service.get.js - * region_tag:sqladmin_v1beta4_generated_SqlSslCertsService_Get_async - */ + /** + * Retrieves a particular SSL certificate. Does not include the private key + * (required for usage). The private key must be saved from the response to + * initial creation. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {string} request.sha1Fingerprint + * Sha1 FingerPrint. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SslCert|SslCert}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_ssl_certs_service.get.js + * region_tag:sqladmin_v1beta4_generated_SqlSslCertsService_Get_async + */ get( - request?: protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.ISslCert, - protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISslCert, + protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest | undefined, + {} | undefined, + ] + >; get( - request: protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISslCert, - protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISslCert, + protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest | null | undefined, + {} | null | undefined + >, + ): void; get( - request: protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISslCert, - protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISslCert, + protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest | null | undefined, + {} | null | undefined + >, + ): void; get( - request?: protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.ISslCert, - protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.ISslCert, - protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.ISslCert, - protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.ISslCert, + protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISslCert, + protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'sha1_fingerprint': request.sha1Fingerprint ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + sha1_fingerprint: request.sha1Fingerprint ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('get request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.ISslCert, - protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.ISslCert, + | protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('get response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.get(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.ISslCert, - protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest|undefined, - {}|undefined - ]) => { - this._log.info('get response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .get(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.ISslCert, + protos.google.cloud.sql.v1beta4.ISqlSslCertsGetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('get response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Creates an SSL certificate and returns it along with the private key and - * server certificate authority. The new certificate will not be usable until - * the instance is restarted. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.SslCertsInsertRequest} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SslCertsInsertResponse|SslCertsInsertResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_ssl_certs_service.insert.js - * region_tag:sqladmin_v1beta4_generated_SqlSslCertsService_Insert_async - */ + /** + * Creates an SSL certificate and returns it along with the private key and + * server certificate authority. The new certificate will not be usable until + * the instance is restarted. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.SslCertsInsertRequest} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SslCertsInsertResponse|SslCertsInsertResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_ssl_certs_service.insert.js + * region_tag:sqladmin_v1beta4_generated_SqlSslCertsService_Insert_async + */ insert( - request?: protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.ISslCertsInsertResponse, - protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISslCertsInsertResponse, + protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest | undefined, + {} | undefined, + ] + >; insert( - request: protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISslCertsInsertResponse, - protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISslCertsInsertResponse, + | protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest + | null + | undefined, + {} | null | undefined + >, + ): void; insert( - request: protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISslCertsInsertResponse, - protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISslCertsInsertResponse, + | protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest + | null + | undefined, + {} | null | undefined + >, + ): void; insert( - request?: protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.ISslCertsInsertResponse, - protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.ISslCertsInsertResponse, - protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.ISslCertsInsertResponse, - protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.ISslCertsInsertResponse, + | protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISslCertsInsertResponse, + protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('insert request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.ISslCertsInsertResponse, - protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.ISslCertsInsertResponse, + | protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('insert response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.insert(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.ISslCertsInsertResponse, - protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest|undefined, - {}|undefined - ]) => { - this._log.info('insert response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .insert(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.ISslCertsInsertResponse, + protos.google.cloud.sql.v1beta4.ISqlSslCertsInsertRequest | undefined, + {} | undefined, + ]) => { + this._log.info('insert response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists all of the current SSL certificates for the instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Cloud SQL instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SslCertsListResponse|SslCertsListResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_ssl_certs_service.list.js - * region_tag:sqladmin_v1beta4_generated_SqlSslCertsService_List_async - */ + /** + * Lists all of the current SSL certificates for the instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Cloud SQL instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.SslCertsListResponse|SslCertsListResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_ssl_certs_service.list.js + * region_tag:sqladmin_v1beta4_generated_SqlSslCertsService_List_async + */ list( - request?: protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.ISslCertsListResponse, - protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISslCertsListResponse, + protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest | undefined, + {} | undefined, + ] + >; list( - request: protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISslCertsListResponse, - protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISslCertsListResponse, + | protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest + | null + | undefined, + {} | null | undefined + >, + ): void; list( - request: protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.ISslCertsListResponse, - protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.ISslCertsListResponse, + | protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest + | null + | undefined, + {} | null | undefined + >, + ): void; list( - request?: protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.ISslCertsListResponse, - protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.ISslCertsListResponse, - protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.ISslCertsListResponse, - protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.ISslCertsListResponse, + | protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ISslCertsListResponse, + protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('list request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.ISslCertsListResponse, - protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.ISslCertsListResponse, + | protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('list response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.list(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.ISslCertsListResponse, - protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest|undefined, - {}|undefined - ]) => { - this._log.info('list response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .list(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.ISslCertsListResponse, + protos.google.cloud.sql.v1beta4.ISqlSslCertsListRequest | undefined, + {} | undefined, + ]) => { + this._log.info('list response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -772,12 +970,11 @@ export class SqlSslCertsServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -810,7 +1007,7 @@ export class SqlSslCertsServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -826,7 +1023,7 @@ export class SqlSslCertsServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -861,7 +1058,7 @@ export class SqlSslCertsServiceClient { * @param {string} project * @returns {string} Resource name string. */ - projectPath(project:string) { + projectPath(project: string) { return this.pathTemplates.projectPathTemplate.render({ project: project, }); @@ -886,13 +1083,15 @@ export class SqlSslCertsServiceClient { */ close(): Promise { if (this.sqlSslCertsServiceStub && !this._terminated) { - return this.sqlSslCertsServiceStub.then(stub => { + return this.sqlSslCertsServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1beta4/sql_ssl_certs_service_proto_list.json b/packages/google-cloud-sql/src/v1beta4/sql_ssl_certs_service_proto_list.json index 3d9dcd428e8..622fead68d3 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_ssl_certs_service_proto_list.json +++ b/packages/google-cloud-sql/src/v1beta4/sql_ssl_certs_service_proto_list.json @@ -1,6 +1,7 @@ [ "../../protos/google/cloud/sql/v1beta4/cloud_sql.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_connect.proto", + "../../protos/google/cloud/sql/v1beta4/cloud_sql_data.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_iam_policies.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_resources.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_tiers.proto", diff --git a/packages/google-cloud-sql/src/v1beta4/sql_tiers_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_tiers_service_client.ts index 3491ba057e4..599f74109a0 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_tiers_service_client.ts +++ b/packages/google-cloud-sql/src/v1beta4/sql_tiers_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -44,7 +51,7 @@ export class SqlTiersServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -57,10 +64,10 @@ export class SqlTiersServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlTiersServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlTiersServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlTiersServiceClient. @@ -101,21 +108,42 @@ export class SqlTiersServiceClient { * const client = new SqlTiersServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlTiersServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -140,7 +168,7 @@ export class SqlTiersServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -154,15 +182,11 @@ export class SqlTiersServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -184,14 +208,17 @@ export class SqlTiersServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1beta4.SqlTiersService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1beta4.SqlTiersService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -222,36 +249,40 @@ export class SqlTiersServiceClient { // Put together the "service stub" for // google.cloud.sql.v1beta4.SqlTiersService. this.sqlTiersServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1beta4.SqlTiersService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1beta4.SqlTiersService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1beta4.SqlTiersService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlTiersServiceStubMethods = - ['list']; + const sqlTiersServiceStubMethods = ['list']; for (const methodName of sqlTiersServiceStubMethods) { const callPromise = this.sqlTiersServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -266,8 +297,14 @@ export class SqlTiersServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -278,8 +315,14 @@ export class SqlTiersServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -312,7 +355,7 @@ export class SqlTiersServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -322,8 +365,9 @@ export class SqlTiersServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -334,103 +378,137 @@ export class SqlTiersServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Lists all available machine types (tiers) for Cloud SQL, for example, - * `db-custom-1-3840`. For related information, see [Pricing](/sql/pricing). - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.project - * Project ID of the project for which to list tiers. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.TiersListResponse|TiersListResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_tiers_service.list.js - * region_tag:sqladmin_v1beta4_generated_SqlTiersService_List_async - */ + /** + * Lists all available machine types (tiers) for Cloud SQL, for example, + * `db-custom-1-3840`. For related information, see [Pricing](/sql/pricing). + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.project + * Project ID of the project for which to list tiers. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.TiersListResponse|TiersListResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_tiers_service.list.js + * region_tag:sqladmin_v1beta4_generated_SqlTiersService_List_async + */ list( - request?: protos.google.cloud.sql.v1beta4.ISqlTiersListRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.ITiersListResponse, - protos.google.cloud.sql.v1beta4.ISqlTiersListRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlTiersListRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ITiersListResponse, + protos.google.cloud.sql.v1beta4.ISqlTiersListRequest | undefined, + {} | undefined, + ] + >; list( - request: protos.google.cloud.sql.v1beta4.ISqlTiersListRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.ITiersListResponse, - protos.google.cloud.sql.v1beta4.ISqlTiersListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlTiersListRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.ITiersListResponse, + protos.google.cloud.sql.v1beta4.ISqlTiersListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request: protos.google.cloud.sql.v1beta4.ISqlTiersListRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.ITiersListResponse, - protos.google.cloud.sql.v1beta4.ISqlTiersListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlTiersListRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.ITiersListResponse, + protos.google.cloud.sql.v1beta4.ISqlTiersListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request?: protos.google.cloud.sql.v1beta4.ISqlTiersListRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.ITiersListResponse, - protos.google.cloud.sql.v1beta4.ISqlTiersListRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlTiersListRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.ITiersListResponse, - protos.google.cloud.sql.v1beta4.ISqlTiersListRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.ITiersListResponse, - protos.google.cloud.sql.v1beta4.ISqlTiersListRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlTiersListRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.ITiersListResponse, + protos.google.cloud.sql.v1beta4.ISqlTiersListRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.ITiersListResponse, + protos.google.cloud.sql.v1beta4.ISqlTiersListRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('list request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.ITiersListResponse, - protos.google.cloud.sql.v1beta4.ISqlTiersListRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.ITiersListResponse, + | protos.google.cloud.sql.v1beta4.ISqlTiersListRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('list response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.list(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.ITiersListResponse, - protos.google.cloud.sql.v1beta4.ISqlTiersListRequest|undefined, - {}|undefined - ]) => { - this._log.info('list response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .list(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.ITiersListResponse, + protos.google.cloud.sql.v1beta4.ISqlTiersListRequest | undefined, + {} | undefined, + ]) => { + this._log.info('list response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -465,12 +543,11 @@ export class SqlTiersServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -503,7 +580,7 @@ export class SqlTiersServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -519,7 +596,7 @@ export class SqlTiersServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -556,13 +633,15 @@ export class SqlTiersServiceClient { */ close(): Promise { if (this.sqlTiersServiceStub && !this._terminated) { - return this.sqlTiersServiceStub.then(stub => { + return this.sqlTiersServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1beta4/sql_tiers_service_proto_list.json b/packages/google-cloud-sql/src/v1beta4/sql_tiers_service_proto_list.json index 3d9dcd428e8..622fead68d3 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_tiers_service_proto_list.json +++ b/packages/google-cloud-sql/src/v1beta4/sql_tiers_service_proto_list.json @@ -1,6 +1,7 @@ [ "../../protos/google/cloud/sql/v1beta4/cloud_sql.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_connect.proto", + "../../protos/google/cloud/sql/v1beta4/cloud_sql_data.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_iam_policies.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_resources.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_tiers.proto", diff --git a/packages/google-cloud-sql/src/v1beta4/sql_users_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_users_service_client.ts index 0f2b6060558..2f95c603fe5 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_users_service_client.ts +++ b/packages/google-cloud-sql/src/v1beta4/sql_users_service_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, LocationsClient, LocationProtos} from 'google-gax'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + LocationsClient, + LocationProtos, +} from 'google-gax'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -43,7 +50,7 @@ export class SqlUsersServiceClient { private _gaxModule: typeof gax | typeof gax.fallback; private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; + private _defaults: { [method: string]: gax.CallSettings }; private _universeDomain: string; private _servicePath: string; private _log = logging.log('sql'); @@ -56,10 +63,10 @@ export class SqlUsersServiceClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; - sqlUsersServiceStub?: Promise<{[name: string]: Function}>; + pathTemplates: { [name: string]: gax.PathTemplate }; + sqlUsersServiceStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SqlUsersServiceClient. @@ -100,21 +107,42 @@ export class SqlUsersServiceClient { * const client = new SqlUsersServiceClient({fallback: true}, gax); * ``` */ - constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) { + constructor( + opts?: ClientOptions, + gaxInstance?: typeof gax | typeof gax.fallback, + ) { // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof SqlUsersServiceClient; - if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) { - throw new Error('Please set either universe_domain or universeDomain, but not both.'); + if ( + opts?.universe_domain && + opts?.universeDomain && + opts?.universe_domain !== opts?.universeDomain + ) { + throw new Error( + 'Please set either universe_domain or universeDomain, but not both.', + ); } - const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined; - this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com'; + const universeDomainEnvVar = + typeof process === 'object' && typeof process.env === 'object' + ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] + : undefined; + this._universeDomain = + opts?.universeDomain ?? + opts?.universe_domain ?? + universeDomainEnvVar ?? + 'googleapis.com'; this._servicePath = 'sqladmin.' + this._universeDomain; - const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint); + const servicePath = + opts?.servicePath || opts?.apiEndpoint || this._servicePath; + this._providedCustomServicePath = !!( + opts?.servicePath || opts?.apiEndpoint + ); const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); + opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); // Request numeric enum values if REST transport is used. opts.numericEnums = true; @@ -139,7 +167,7 @@ export class SqlUsersServiceClient { this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Set useJWTAccessWithScope on the auth object. this.auth.useJWTAccessWithScope = true; @@ -153,15 +181,11 @@ export class SqlUsersServiceClient { } this.locationsClient = new this._gaxModule.LocationsClient( this._gaxGrpc, - opts + opts, ); - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process === 'object' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -183,14 +207,17 @@ export class SqlUsersServiceClient { // Create useful helper objects for these. this.pathTemplates = { backupPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/backups/{backup}' + 'projects/{project}/backups/{backup}', ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.sql.v1beta4.SqlUsersService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.sql.v1beta4.SqlUsersService', + gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, + { 'x-goog-api-client': clientHeader.join(' ') }, + ); // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code @@ -221,36 +248,46 @@ export class SqlUsersServiceClient { // Put together the "service stub" for // google.cloud.sql.v1beta4.SqlUsersService. this.sqlUsersServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.sql.v1beta4.SqlUsersService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.sql.v1beta4.SqlUsersService', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.sql.v1beta4.SqlUsersService, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts, + this._providedCustomServicePath, + ) as Promise<{ [method: string]: Function }>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const sqlUsersServiceStubMethods = - ['delete', 'get', 'insert', 'list', 'update']; + const sqlUsersServiceStubMethods = [ + 'delete', + 'get', + 'insert', + 'list', + 'update', + ]; for (const methodName of sqlUsersServiceStubMethods) { const callPromise = this.sqlUsersServiceStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); - const descriptor = - undefined; + const descriptor = undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -265,8 +302,14 @@ export class SqlUsersServiceClient { * @returns {string} The DNS address for this service. */ static get servicePath() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static servicePath is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -277,8 +320,14 @@ export class SqlUsersServiceClient { * @returns {string} The DNS address for this service. */ static get apiEndpoint() { - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + process.emitWarning( + 'Static apiEndpoint is deprecated, please use the instance method instead.', + 'DeprecationWarning', + ); } return 'sqladmin.googleapis.com'; } @@ -311,7 +360,7 @@ export class SqlUsersServiceClient { static get scopes() { return [ 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/sqlservice.admin' + 'https://www.googleapis.com/auth/sqlservice.admin', ]; } @@ -321,8 +370,9 @@ export class SqlUsersServiceClient { * Return the project ID used by this class. * @returns {Promise} A promise that resolves to string containing the project ID. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback, + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -333,515 +383,685 @@ export class SqlUsersServiceClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Deletes a user from a Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.host - * Host of the user in the instance. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.name - * Name of the user in the instance. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_users_service.delete.js - * region_tag:sqladmin_v1beta4_generated_SqlUsersService_Delete_async - */ + /** + * Deletes a user from a Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.host + * Host of the user in the instance. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.name + * Name of the user in the instance. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_users_service.delete.js + * region_tag:sqladmin_v1beta4_generated_SqlUsersService_Delete_async + */ delete( - request?: protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest | undefined, + {} | undefined, + ] + >; delete( - request: protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest | null | undefined, + {} | null | undefined + >, + ): void; delete( - request: protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest | null | undefined, + {} | null | undefined + >, + ): void; delete( - request?: protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('delete request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('delete response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.delete(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest|undefined, - {}|undefined - ]) => { - this._log.info('delete response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .delete(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersDeleteRequest | undefined, + {} | undefined, + ]) => { + this._log.info('delete response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Retrieves a resource containing information about a user. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.name - * User of the instance. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {string} request.host - * Host of a user of the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.User|User}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_users_service.get.js - * region_tag:sqladmin_v1beta4_generated_SqlUsersService_Get_async - */ + /** + * Retrieves a resource containing information about a user. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.name + * User of the instance. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {string} request.host + * Host of a user of the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.User|User}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_users_service.get.js + * region_tag:sqladmin_v1beta4_generated_SqlUsersService_Get_async + */ get( - request?: protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IUser, - protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IUser, + protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest | undefined, + {} | undefined, + ] + >; get( - request: protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IUser, - protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IUser, + protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest | null | undefined, + {} | null | undefined + >, + ): void; get( - request: protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IUser, - protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IUser, + protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest | null | undefined, + {} | null | undefined + >, + ): void; get( - request?: protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IUser, - protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IUser, - protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IUser, - protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IUser, + protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IUser, + protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', - 'name': request.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + name: request.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('get request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IUser, - protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IUser, + | protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('get response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.get(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IUser, - protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest|undefined, - {}|undefined - ]) => { - this._log.info('get response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .get(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IUser, + protos.google.cloud.sql.v1beta4.ISqlUsersGetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('get response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Creates a new user in a Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {google.cloud.sql.v1beta4.User} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_users_service.insert.js - * region_tag:sqladmin_v1beta4_generated_SqlUsersService_Insert_async - */ + /** + * Creates a new user in a Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {google.cloud.sql.v1beta4.User} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_users_service.insert.js + * region_tag:sqladmin_v1beta4_generated_SqlUsersService_Insert_async + */ insert( - request?: protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest | undefined, + {} | undefined, + ] + >; insert( - request: protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest | null | undefined, + {} | null | undefined + >, + ): void; insert( - request: protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest | null | undefined, + {} | null | undefined + >, + ): void; insert( - request?: protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('insert request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('insert response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.insert(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest|undefined, - {}|undefined - ]) => { - this._log.info('insert response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .insert(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersInsertRequest | undefined, + {} | undefined, + ]) => { + this._log.info('insert response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Lists users in the specified Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.UsersListResponse|UsersListResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_users_service.list.js - * region_tag:sqladmin_v1beta4_generated_SqlUsersService_List_async - */ + /** + * Lists users in the specified Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.UsersListResponse|UsersListResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_users_service.list.js + * region_tag:sqladmin_v1beta4_generated_SqlUsersService_List_async + */ list( - request?: protos.google.cloud.sql.v1beta4.ISqlUsersListRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IUsersListResponse, - protos.google.cloud.sql.v1beta4.ISqlUsersListRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlUsersListRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IUsersListResponse, + protos.google.cloud.sql.v1beta4.ISqlUsersListRequest | undefined, + {} | undefined, + ] + >; list( - request: protos.google.cloud.sql.v1beta4.ISqlUsersListRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IUsersListResponse, - protos.google.cloud.sql.v1beta4.ISqlUsersListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlUsersListRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IUsersListResponse, + protos.google.cloud.sql.v1beta4.ISqlUsersListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request: protos.google.cloud.sql.v1beta4.ISqlUsersListRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IUsersListResponse, - protos.google.cloud.sql.v1beta4.ISqlUsersListRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlUsersListRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IUsersListResponse, + protos.google.cloud.sql.v1beta4.ISqlUsersListRequest | null | undefined, + {} | null | undefined + >, + ): void; list( - request?: protos.google.cloud.sql.v1beta4.ISqlUsersListRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IUsersListResponse, - protos.google.cloud.sql.v1beta4.ISqlUsersListRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlUsersListRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IUsersListResponse, - protos.google.cloud.sql.v1beta4.ISqlUsersListRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IUsersListResponse, - protos.google.cloud.sql.v1beta4.ISqlUsersListRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlUsersListRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IUsersListResponse, + protos.google.cloud.sql.v1beta4.ISqlUsersListRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IUsersListResponse, + protos.google.cloud.sql.v1beta4.ISqlUsersListRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('list request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IUsersListResponse, - protos.google.cloud.sql.v1beta4.ISqlUsersListRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IUsersListResponse, + | protos.google.cloud.sql.v1beta4.ISqlUsersListRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('list response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.list(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IUsersListResponse, - protos.google.cloud.sql.v1beta4.ISqlUsersListRequest|undefined, - {}|undefined - ]) => { - this._log.info('list response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .list(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IUsersListResponse, + protos.google.cloud.sql.v1beta4.ISqlUsersListRequest | undefined, + {} | undefined, + ]) => { + this._log.info('list response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Updates an existing user in a Cloud SQL instance. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} [request.host] - * Optional. Host of the user in the instance. - * @param {string} request.instance - * Database instance ID. This does not include the project ID. - * @param {string} request.name - * Name of the user in the instance. - * @param {string} request.project - * Project ID of the project that contains the instance. - * @param {string[]} [request.databaseRoles] - * Optional. List of database roles to grant to the user. body.database_roles - * will be ignored for update request. - * @param {boolean} [request.revokeExistingRoles] - * Optional. Specifies whether to revoke existing roles that are not present - * in the `database_roles` field. If `false` or unset, the database roles - * specified in `database_roles` are added to the user's existing roles. - * @param {google.cloud.sql.v1beta4.User} request.body - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta4/sql_users_service.update.js - * region_tag:sqladmin_v1beta4_generated_SqlUsersService_Update_async - */ + /** + * Updates an existing user in a Cloud SQL instance. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} [request.host] + * Optional. Host of the user in the instance. + * @param {string} request.instance + * Database instance ID. This does not include the project ID. + * @param {string} request.name + * Name of the user in the instance. + * @param {string} request.project + * Project ID of the project that contains the instance. + * @param {string[]} [request.databaseRoles] + * Optional. List of database roles to grant to the user. body.database_roles + * will be ignored for update request. + * @param {boolean} [request.revokeExistingRoles] + * Optional. Specifies whether to revoke existing roles that are not present + * in the `database_roles` field. If `false` or unset, the database roles + * specified in `database_roles` are added to the user's existing roles. + * @param {google.cloud.sql.v1beta4.User} request.body + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.sql.v1beta4.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta4/sql_users_service.update.js + * region_tag:sqladmin_v1beta4_generated_SqlUsersService_Update_async + */ update( - request?: protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest | undefined, + {} | undefined, + ] + >; update( - request: protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest | null | undefined, + {} | null | undefined + >, + ): void; update( - request: protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest, - callback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest, + callback: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest | null | undefined, + {} | null | undefined + >, + ): void; update( - request?: protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'project': request.project ?? '', - 'instance': request.instance ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + project: request.project ?? '', + instance: request.instance ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('update request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.sql.v1beta4.IOperation, + | protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('update response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.update(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.sql.v1beta4.IOperation, - protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest|undefined, - {}|undefined - ]) => { - this._log.info('update response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .update(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.sql.v1beta4.IOperation, + protos.google.cloud.sql.v1beta4.ISqlUsersUpdateRequest | undefined, + {} | undefined, + ]) => { + this._log.info('update response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** + /** * Gets information about a location. * * @param {Object} request @@ -876,12 +1096,11 @@ export class SqlUsersServiceClient { | null | undefined, {} | null | undefined - > + >, ): Promise { return this.locationsClient.getLocation(request, options, callback); } - -/** + /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. @@ -914,7 +1133,7 @@ export class SqlUsersServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -930,7 +1149,7 @@ export class SqlUsersServiceClient { * @param {string} backup * @returns {string} Resource name string. */ - backupPath(project:string,backup:string) { + backupPath(project: string, backup: string) { return this.pathTemplates.backupPathTemplate.render({ project: project, backup: backup, @@ -967,13 +1186,15 @@ export class SqlUsersServiceClient { */ close(): Promise { if (this.sqlUsersServiceStub && !this._terminated) { - return this.sqlUsersServiceStub.then(stub => { + return this.sqlUsersServiceStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); - this.locationsClient.close().catch(err => {throw err}); + this.locationsClient.close().catch((err) => { + throw err; + }); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-sql/src/v1beta4/sql_users_service_proto_list.json b/packages/google-cloud-sql/src/v1beta4/sql_users_service_proto_list.json index 3d9dcd428e8..622fead68d3 100644 --- a/packages/google-cloud-sql/src/v1beta4/sql_users_service_proto_list.json +++ b/packages/google-cloud-sql/src/v1beta4/sql_users_service_proto_list.json @@ -1,6 +1,7 @@ [ "../../protos/google/cloud/sql/v1beta4/cloud_sql.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_connect.proto", + "../../protos/google/cloud/sql/v1beta4/cloud_sql_data.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_iam_policies.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_resources.proto", "../../protos/google/cloud/sql/v1beta4/cloud_sql_tiers.proto", diff --git a/packages/google-cloud-sql/system-test/fixtures/sample/src/index.js b/packages/google-cloud-sql/system-test/fixtures/sample/src/index.js index 261a7ea9869..89632ed5b0b 100644 --- a/packages/google-cloud-sql/system-test/fixtures/sample/src/index.js +++ b/packages/google-cloud-sql/system-test/fixtures/sample/src/index.js @@ -16,19 +16,24 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** + /* eslint-disable node/no-missing-require, no-unused-vars */ const sql = require('@google-cloud/sql'); function main() { + const sqlAvailableDatabaseVersionsServiceClient = new sql.SqlAvailableDatabaseVersionsServiceClient(); const sqlBackupRunsServiceClient = new sql.SqlBackupRunsServiceClient(); + const sqlBackupsServiceClient = new sql.SqlBackupsServiceClient(); const sqlConnectServiceClient = new sql.SqlConnectServiceClient(); const sqlDatabasesServiceClient = new sql.SqlDatabasesServiceClient(); - + + const sqlFeatureEligibilityServiceClient = new sql.SqlFeatureEligibilityServiceClient(); const sqlFlagsServiceClient = new sql.SqlFlagsServiceClient(); - + + const sqlInstancesServiceClient = new sql.SqlInstancesServiceClient(); const sqlOperationsServiceClient = new sql.SqlOperationsServiceClient(); - + const sqlSslCertsServiceClient = new sql.SqlSslCertsServiceClient(); const sqlTiersServiceClient = new sql.SqlTiersServiceClient(); const sqlUsersServiceClient = new sql.SqlUsersServiceClient(); diff --git a/packages/google-cloud-sql/system-test/fixtures/sample/src/index.ts b/packages/google-cloud-sql/system-test/fixtures/sample/src/index.ts index e5e6f4a2689..f72bd706886 100644 --- a/packages/google-cloud-sql/system-test/fixtures/sample/src/index.ts +++ b/packages/google-cloud-sql/system-test/fixtures/sample/src/index.ts @@ -17,44 +17,72 @@ // ** All changes to this file may be overwritten. ** import { + SqlBackupRunsServiceClient, + SqlBackupsServiceClient, SqlConnectServiceClient, SqlDatabasesServiceClient, + + SqlFeatureEligibilityServiceClient, SqlFlagsServiceClient, + + SqlInstancesServiceClient, SqlOperationsServiceClient, + SqlSslCertsServiceClient, SqlTiersServiceClient, SqlUsersServiceClient, } from '@google-cloud/sql'; // check that the client class type name can be used - +function doStuffWithSqlAvailableDatabaseVersionsServiceClient( + client: +) { + client.close(); +} function doStuffWithSqlBackupRunsServiceClient( - client: SqlBackupRunsServiceClient + client: SqlBackupRunsServiceClient, ) { client.close(); } +function doStuffWithSqlBackupsServiceClient(client: SqlBackupsServiceClient) { + client.close(); +} function doStuffWithSqlConnectServiceClient(client: SqlConnectServiceClient) { client.close(); } function doStuffWithSqlDatabasesServiceClient( - client: SqlDatabasesServiceClient + client: SqlDatabasesServiceClient, ) { client.close(); } +function doStuffWithSqlFeatureEligibilityServiceClient( + client: SqlFeatureEligibilityServiceClient, +) { + client.close(); +} function doStuffWithSqlFlagsServiceClient(client: SqlFlagsServiceClient) { client.close(); } - +function doStuffWithSqlIamPoliciesServiceClient( + client: +) { + client.close(); +} +function doStuffWithSqlInstanceNamesServiceClient( + client: +) { + client.close(); +} function doStuffWithSqlInstancesServiceClient( - client: SqlInstancesServiceClient + client: SqlInstancesServiceClient, ) { client.close(); } function doStuffWithSqlOperationsServiceClient( - client: SqlOperationsServiceClient + client: SqlOperationsServiceClient, ) { client.close(); } @@ -71,24 +99,38 @@ function doStuffWithSqlUsersServiceClient(client: SqlUsersServiceClient) { function main() { // check that the client instance can be created + const sqlAvailableDatabaseVersionsServiceClient = + new SqlAvailableDatabaseVersionsServiceClient(); + doStuffWithSqlAvailableDatabaseVersionsServiceClient( + sqlAvailableDatabaseVersionsServiceClient, + ); // check that the client instance can be created const sqlBackupRunsServiceClient = new SqlBackupRunsServiceClient(); doStuffWithSqlBackupRunsServiceClient(sqlBackupRunsServiceClient); // check that the client instance can be created + const sqlBackupsServiceClient = new SqlBackupsServiceClient(); + doStuffWithSqlBackupsServiceClient(sqlBackupsServiceClient); + // check that the client instance can be created const sqlConnectServiceClient = new SqlConnectServiceClient(); doStuffWithSqlConnectServiceClient(sqlConnectServiceClient); // check that the client instance can be created const sqlDatabasesServiceClient = new SqlDatabasesServiceClient(); doStuffWithSqlDatabasesServiceClient(sqlDatabasesServiceClient); // check that the client instance can be created - + + // check that the client instance can be created + const sqlFeatureEligibilityServiceClient = + new SqlFeatureEligibilityServiceClient(); + doStuffWithSqlFeatureEligibilityServiceClient( + sqlFeatureEligibilityServiceClient, + ); // check that the client instance can be created const sqlFlagsServiceClient = new SqlFlagsServiceClient(); doStuffWithSqlFlagsServiceClient(sqlFlagsServiceClient); // check that the client instance can be created - + // check that the client instance can be created - + // check that the client instance can be created const sqlInstancesServiceClient = new SqlInstancesServiceClient(); doStuffWithSqlInstancesServiceClient(sqlInstancesServiceClient); @@ -96,7 +138,7 @@ function main() { const sqlOperationsServiceClient = new SqlOperationsServiceClient(); doStuffWithSqlOperationsServiceClient(sqlOperationsServiceClient); // check that the client instance can be created - + // check that the client instance can be created const sqlSslCertsServiceClient = new SqlSslCertsServiceClient(); doStuffWithSqlSslCertsServiceClient(sqlSslCertsServiceClient); diff --git a/packages/google-cloud-sql/system-test/install.ts b/packages/google-cloud-sql/system-test/install.ts index f66069aa394..ccf167042d2 100644 --- a/packages/google-cloud-sql/system-test/install.ts +++ b/packages/google-cloud-sql/system-test/install.ts @@ -16,34 +16,36 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** -import {packNTest} from 'pack-n-play'; -import {readFileSync} from 'fs'; -import {describe, it} from 'mocha'; +import { packNTest } from 'pack-n-play'; +import { readFileSync } from 'fs'; +import { describe, it } from 'mocha'; describe('📦 pack-n-play test', () => { - - it('TypeScript code', async function() { + it('TypeScript code', async function () { this.timeout(300000); const options = { packageDir: process.cwd(), sample: { description: 'TypeScript user can use the type definitions', - ts: readFileSync('./system-test/fixtures/sample/src/index.ts').toString() - } + ts: readFileSync( + './system-test/fixtures/sample/src/index.ts', + ).toString(), + }, }; await packNTest(options); }); - it('JavaScript code', async function() { + it('JavaScript code', async function () { this.timeout(300000); const options = { packageDir: process.cwd(), sample: { description: 'JavaScript user can use the library', - cjs: readFileSync('./system-test/fixtures/sample/src/index.js').toString() - } + cjs: readFileSync( + './system-test/fixtures/sample/src/index.js', + ).toString(), + }, }; await packNTest(options); }); - }); diff --git a/packages/google-cloud-sql/test/gapic_sql_backup_runs_service_v1.ts b/packages/google-cloud-sql/test/gapic_sql_backup_runs_service_v1.ts index ef97c1615c7..39a4cbb474b 100644 --- a/packages/google-cloud-sql/test/gapic_sql_backup_runs_service_v1.ts +++ b/packages/google-cloud-sql/test/gapic_sql_backup_runs_service_v1.ts @@ -19,927 +19,1174 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqlbackuprunsserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1.SqlBackupRunsServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); - - it('has universeDomain', () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); - - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); - - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); - - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); + it('has universeDomain', () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); + + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + universeDomain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('has port', () => { - const port = sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient.port; - assert(port); - assert(typeof port === 'number'); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + universe_domain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('should create a client with no option', () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient(); - assert(client); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - it('should create a client with gRPC fallback', () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - fallback: true, + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + universeDomain: 'configured.example.com', }); - assert(client); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } + }); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlBackupRunsServiceStub, undefined); - await client.initialize(); - assert(client.sqlBackupRunsServiceStub); + it('has port', () => { + const port = + sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); + + it('should create a client with no option', () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient(); + assert(client); + }); + + it('should create a client with gRPC fallback', () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + fallback: true, }); + assert(client); + }); - it('has close method for the initialized client', done => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlBackupRunsServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has initialize method and supports deferred initialization', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + assert.strictEqual(client.sqlBackupRunsServiceStub, undefined); + await client.initialize(); + assert(client.sqlBackupRunsServiceStub); + }); - it('has close method for the non-initialized client', done => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlBackupRunsServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the initialized client', (done) => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlBackupRunsServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has close method for the non-initialized client', (done) => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + assert.strictEqual(client.sqlBackupRunsServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; + }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); }); - describe('delete', () => { - it('invokes delete without error', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlBackupRunsDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', ['id']); - request.id = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&id=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.delete = stubSimpleCall(expectedResponse); - const [response] = await client.delete(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes delete without error using callback', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlBackupRunsDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', ['id']); - request.id = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&id=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.delete = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.delete( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes delete with error', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlBackupRunsDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', ['id']); - request.id = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&id=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.delete(request), expectedError); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes delete with closed client', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlBackupRunsDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', ['id']); - request.id = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.delete(request), expectedError); - }); - }); - - describe('get', () => { - it('invokes get without error', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlBackupRunsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsGetRequest', ['id']); - request.id = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&id=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.BackupRun() - ); - client.innerApiCalls.get = stubSimpleCall(expectedResponse); - const [response] = await client.get(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get without error using callback', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlBackupRunsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsGetRequest', ['id']); - request.id = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&id=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.BackupRun() - ); - client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.get( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IBackupRun|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get with error', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlBackupRunsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsGetRequest', ['id']); - request.id = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&id=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.get(request), expectedError); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get with closed client', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlBackupRunsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsGetRequest', ['id']); - request.id = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.get(request), expectedError); - }); - }); - - describe('insert', () => { - it('invokes insert without error', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlBackupRunsInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.insert = stubSimpleCall(expectedResponse); - const [response] = await client.insert(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes insert without error using callback', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlBackupRunsInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.insert = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.insert( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes insert with error', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlBackupRunsInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.insert(request), expectedError); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes insert with closed client', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlBackupRunsInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.insert(request), expectedError); - }); - }); - - describe('list', () => { - it('invokes list without error', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlBackupRunsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.BackupRunsListResponse() - ); - client.innerApiCalls.list = stubSimpleCall(expectedResponse); - const [response] = await client.list(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list without error using callback', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlBackupRunsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.BackupRunsListResponse() - ); - client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.list( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IBackupRunsListResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list with error', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlBackupRunsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.list(request), expectedError); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list with closed client', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlBackupRunsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlBackupRunsListRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.list(request), expectedError); - }); - }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } + }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); + }); + }); + + describe('delete', () => { + it('invokes delete without error', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlBackupRunsDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', + ['id'], + ); + request.id = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&id=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.delete = stubSimpleCall(expectedResponse); + const [response] = await client.delete(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes delete without error using callback', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlBackupRunsDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', + ['id'], + ); + request.id = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&id=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.delete = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.delete( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - }); - - describe('Path templates', () => { - - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('invokes delete with error', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlBackupRunsDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', + ['id'], + ); + request.id = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&id=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.delete(request), expectedError); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('invokes delete with closed client', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlBackupRunsDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsDeleteRequest', + ['id'], + ); + request.id = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.delete(request), expectedError); + }); + }); + + describe('get', () => { + it('invokes get without error', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlBackupRunsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsGetRequest', + ['id'], + ); + request.id = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&id=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.BackupRun(), + ); + client.innerApiCalls.get = stubSimpleCall(expectedResponse); + const [response] = await client.get(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes get without error using callback', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlBackupRunsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsGetRequest', + ['id'], + ); + request.id = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&id=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.BackupRun(), + ); + client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.get( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IBackupRun | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes get with error', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlBackupRunsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsGetRequest', + ['id'], + ); + request.id = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&id=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.get(request), expectedError); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes get with closed client', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlBackupRunsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsGetRequest', + ['id'], + ); + request.id = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.get(request), expectedError); + }); + }); + + describe('insert', () => { + it('invokes insert without error', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlBackupRunsInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.insert = stubSimpleCall(expectedResponse); + const [response] = await client.insert(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes insert without error using callback', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlBackupRunsInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.insert = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.insert( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes insert with error', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlBackupRunsInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.insert(request), expectedError); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes insert with closed client', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlBackupRunsInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.insert(request), expectedError); + }); + }); + + describe('list', () => { + it('invokes list without error', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlBackupRunsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.BackupRunsListResponse(), + ); + client.innerApiCalls.list = stubSimpleCall(expectedResponse); + const [response] = await client.list(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes list without error using callback', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlBackupRunsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.BackupRunsListResponse(), + ); + client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.list( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IBackupRunsListResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes list with error', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlBackupRunsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.list(request), expectedError); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes list with closed client', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlBackupRunsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlBackupRunsListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.list(request), expectedError); + }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + it('invokes getLocation without error using callback', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); + }); + it('invokes getLocation with error', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); + + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = + new sqlbackuprunsserviceModule.v1.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_backup_runs_service_v1beta4.ts b/packages/google-cloud-sql/test/gapic_sql_backup_runs_service_v1beta4.ts index e6f331aed7d..31018716d40 100644 --- a/packages/google-cloud-sql/test/gapic_sql_backup_runs_service_v1beta4.ts +++ b/packages/google-cloud-sql/test/gapic_sql_backup_runs_service_v1beta4.ts @@ -19,957 +19,1215 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqlbackuprunsserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1beta4.SqlBackupRunsServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); - - it('has universeDomain', () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); - - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); - - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); - - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); + it('has universeDomain', () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); + + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient + .servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient + .apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + universeDomain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('has port', () => { - const port = sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient.port; - assert(port); - assert(typeof port === 'number'); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + universe_domain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('should create a client with no option', () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient(); - assert(client); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - it('should create a client with gRPC fallback', () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - fallback: true, + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + universeDomain: 'configured.example.com', }); - assert(client); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', + }); + }); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlBackupRunsServiceStub, undefined); - await client.initialize(); - assert(client.sqlBackupRunsServiceStub); + it('has port', () => { + const port = + sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); + + it('should create a client with no option', () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient(); + assert(client); + }); + + it('should create a client with gRPC fallback', () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + fallback: true, }); + assert(client); + }); - it('has close method for the initialized client', done => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlBackupRunsServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has initialize method and supports deferred initialization', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + assert.strictEqual(client.sqlBackupRunsServiceStub, undefined); + await client.initialize(); + assert(client.sqlBackupRunsServiceStub); + }); - it('has close method for the non-initialized client', done => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlBackupRunsServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the initialized client', (done) => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlBackupRunsServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has close method for the non-initialized client', (done) => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + assert.strictEqual(client.sqlBackupRunsServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; + }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); }); - describe('delete', () => { - it('invokes delete without error', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', ['id']); - request.id = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&id=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.delete = stubSimpleCall(expectedResponse); - const [response] = await client.delete(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes delete without error using callback', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', ['id']); - request.id = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&id=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.delete = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.delete( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes delete with error', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', ['id']); - request.id = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&id=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.delete(request), expectedError); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes delete with closed client', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', ['id']); - request.id = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.delete(request), expectedError); - }); - }); - - describe('get', () => { - it('invokes get without error', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', ['id']); - request.id = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&id=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.BackupRun() - ); - client.innerApiCalls.get = stubSimpleCall(expectedResponse); - const [response] = await client.get(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get without error using callback', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', ['id']); - request.id = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&id=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.BackupRun() - ); - client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.get( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IBackupRun|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get with error', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', ['id']); - request.id = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&id=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.get(request), expectedError); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get with closed client', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', ['id']); - request.id = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.get(request), expectedError); - }); - }); - - describe('insert', () => { - it('invokes insert without error', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.insert = stubSimpleCall(expectedResponse); - const [response] = await client.insert(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes insert without error using callback', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.insert = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.insert( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes insert with error', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.insert(request), expectedError); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes insert with closed client', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.insert(request), expectedError); - }); - }); - - describe('list', () => { - it('invokes list without error', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlBackupRunsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.BackupRunsListResponse() - ); - client.innerApiCalls.list = stubSimpleCall(expectedResponse); - const [response] = await client.list(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list without error using callback', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlBackupRunsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.BackupRunsListResponse() - ); - client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.list( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IBackupRunsListResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list with error', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlBackupRunsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.list(request), expectedError); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list with closed client', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlBackupRunsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlBackupRunsListRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.list(request), expectedError); - }); - }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } + }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); + }); + }); + + describe('delete', () => { + it('invokes delete without error', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', + ['id'], + ); + request.id = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&id=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.delete = stubSimpleCall(expectedResponse); + const [response] = await client.delete(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes delete without error using callback', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', + ['id'], + ); + request.id = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&id=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.delete = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.delete( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - }); - - describe('Path templates', () => { - - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('invokes delete with error', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', + ['id'], + ); + request.id = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&id=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.delete(request), expectedError); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('invokes delete with closed client', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsDeleteRequest', + ['id'], + ); + request.id = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.delete(request), expectedError); + }); + }); - describe('project', async () => { - const fakePath = "/rendered/path/project"; - const expectedParameters = { - project: "projectValue", - }; - const client = new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.projectPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.projectPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('projectPath', () => { - const result = client.projectPath("projectValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.projectPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + describe('get', () => { + it('invokes get without error', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', + ['id'], + ); + request.id = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&id=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.BackupRun(), + ); + client.innerApiCalls.get = stubSimpleCall(expectedResponse); + const [response] = await client.get(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchProjectFromProjectName', () => { - const result = client.matchProjectFromProjectName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.projectPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('invokes get without error using callback', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', + ['id'], + ); + request.id = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&id=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.BackupRun(), + ); + client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.get( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IBackupRun | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes get with error', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', + ['id'], + ); + request.id = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&id=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.get(request), expectedError); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes get with closed client', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsGetRequest', + ['id'], + ); + request.id = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.get(request), expectedError); + }); + }); + + describe('insert', () => { + it('invokes insert without error', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.insert = stubSimpleCall(expectedResponse); + const [response] = await client.insert(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes insert without error using callback', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.insert = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.insert( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes insert with error', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.insert(request), expectedError); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes insert with closed client', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.insert(request), expectedError); + }); + }); + + describe('list', () => { + it('invokes list without error', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlBackupRunsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.BackupRunsListResponse(), + ); + client.innerApiCalls.list = stubSimpleCall(expectedResponse); + const [response] = await client.list(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes list without error using callback', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlBackupRunsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.BackupRunsListResponse(), + ); + client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.list( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IBackupRunsListResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes list with error', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlBackupRunsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.list(request), expectedError); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes list with closed client', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlBackupRunsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlBackupRunsListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.list(request), expectedError); + }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + it('invokes getLocation without error using callback', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); + }); + it('invokes getLocation with error', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); + + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); + + describe('project', async () => { + const fakePath = '/rendered/path/project'; + const expectedParameters = { + project: 'projectValue', + }; + const client = + new sqlbackuprunsserviceModule.v1beta4.SqlBackupRunsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.projectPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.projectPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('projectPath', () => { + const result = client.projectPath('projectValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.projectPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromProjectName', () => { + const result = client.matchProjectFromProjectName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.projectPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_backups_service_v1.ts b/packages/google-cloud-sql/test/gapic_sql_backups_service_v1.ts index 7cd5fd68314..42a04ddd837 100644 --- a/packages/google-cloud-sql/test/gapic_sql_backups_service_v1.ts +++ b/packages/google-cloud-sql/test/gapic_sql_backups_service_v1.ts @@ -19,1161 +19,1417 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqlbackupsserviceModule from '../src'; -import {PassThrough} from 'stream'; +import { PassThrough } from 'stream'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubPageStreamingCall(responses?: ResponseType[], error?: Error) { - const pagingStub = sinon.stub(); - if (responses) { - for (let i = 0; i < responses.length; ++i) { - pagingStub.onCall(i).callsArgWith(2, null, responses[i]); - } +function stubPageStreamingCall( + responses?: ResponseType[], + error?: Error, +) { + const pagingStub = sinon.stub(); + if (responses) { + for (let i = 0; i < responses.length; ++i) { + pagingStub.onCall(i).callsArgWith(2, null, responses[i]); } - const transformStub = error ? sinon.stub().callsArgWith(2, error) : pagingStub; - const mockStream = new PassThrough({ - objectMode: true, - transform: transformStub, - }); - // trigger as many responses as needed - if (responses) { - for (let i = 0; i < responses.length; ++i) { - setImmediate(() => { mockStream.write({}); }); - } - setImmediate(() => { mockStream.end(); }); - } else { - setImmediate(() => { mockStream.write({}); }); - setImmediate(() => { mockStream.end(); }); + } + const transformStub = error + ? sinon.stub().callsArgWith(2, error) + : pagingStub; + const mockStream = new PassThrough({ + objectMode: true, + transform: transformStub, + }); + // trigger as many responses as needed + if (responses) { + for (let i = 0; i < responses.length; ++i) { + setImmediate(() => { + mockStream.write({}); + }); } - return sinon.stub().returns(mockStream); + setImmediate(() => { + mockStream.end(); + }); + } else { + setImmediate(() => { + mockStream.write({}); + }); + setImmediate(() => { + mockStream.end(); + }); + } + return sinon.stub().returns(mockStream); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1.SqlBackupsServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); - - it('has universeDomain', () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); - - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqlbackupsserviceModule.v1.SqlBackupsServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqlbackupsserviceModule.v1.SqlBackupsServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); + it('has universeDomain', () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqlbackupsserviceModule.v1.SqlBackupsServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); - }); + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqlbackupsserviceModule.v1.SqlBackupsServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + universeDomain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('has port', () => { - const port = sqlbackupsserviceModule.v1.SqlBackupsServiceClient.port; - assert(port); - assert(typeof port === 'number'); - }); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + universe_domain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('should create a client with no option', () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient(); - assert(client); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlbackupsserviceModule.v1.SqlBackupsServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - it('should create a client with gRPC fallback', () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - fallback: true, - }); - assert(client); + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient( + { universeDomain: 'configured.example.com' }, + ); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - - it('has initialize method and supports deferred initialization', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlBackupsServiceStub, undefined); - await client.initialize(); - assert(client.sqlBackupsServiceStub); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('has close method for the initialized client', done => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlBackupsServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('has port', () => { + const port = sqlbackupsserviceModule.v1.SqlBackupsServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('has close method for the non-initialized client', done => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlBackupsServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('should create a client with no option', () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient(); + assert(client); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); - }); + it('should create a client with gRPC fallback', () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + fallback: true, + }); + assert(client); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); - }); + it('has initialize method and supports deferred initialization', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlBackupsServiceStub, undefined); + await client.initialize(); + assert(client.sqlBackupsServiceStub); }); - describe('createBackup', () => { - it('invokes createBackup without error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.CreateBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.CreateBackupRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.createBackup = stubSimpleCall(expectedResponse); - const [response] = await client.createBackup(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('has close method for the initialized client', (done) => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlBackupsServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('invokes createBackup without error using callback', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.CreateBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.CreateBackupRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.createBackup = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.createBackup( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('has close method for the non-initialized client', (done) => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlBackupsServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('invokes createBackup with error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.CreateBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.CreateBackupRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createBackup = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.createBackup(request), expectedError); - const actualRequest = (client.innerApiCalls.createBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + }); - it('invokes createBackup with closed client', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.CreateBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.CreateBackupRequest', ['parent']); - request.parent = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.createBackup(request), expectedError); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); }); + }); - describe('getBackup', () => { - it('invokes getBackup without error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.GetBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.GetBackupRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Backup() - ); - client.innerApiCalls.getBackup = stubSimpleCall(expectedResponse); - const [response] = await client.getBackup(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('createBackup', () => { + it('invokes createBackup without error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.CreateBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.CreateBackupRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.createBackup = stubSimpleCall(expectedResponse); + const [response] = await client.createBackup(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getBackup without error using callback', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.GetBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.GetBackupRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Backup() - ); - client.innerApiCalls.getBackup = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getBackup( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IBackup|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createBackup without error using callback', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.CreateBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.CreateBackupRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.createBackup = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.createBackup( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getBackup with error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.GetBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.GetBackupRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getBackup = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getBackup(request), expectedError); - const actualRequest = (client.innerApiCalls.getBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createBackup with error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.CreateBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.CreateBackupRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createBackup = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.createBackup(request), expectedError); + const actualRequest = ( + client.innerApiCalls.createBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getBackup with closed client', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.GetBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.GetBackupRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getBackup(request), expectedError); - }); + it('invokes createBackup with closed client', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.CreateBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.CreateBackupRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.createBackup(request), expectedError); }); + }); - describe('updateBackup', () => { - it('invokes updateBackup without error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.UpdateBackupRequest() - ); - request.backup ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.UpdateBackupRequest', ['backup', 'name']); - request.backup.name = defaultValue1; - const expectedHeaderRequestParams = `backup.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.updateBackup = stubSimpleCall(expectedResponse); - const [response] = await client.updateBackup(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('getBackup', () => { + it('invokes getBackup without error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.GetBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.GetBackupRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Backup(), + ); + client.innerApiCalls.getBackup = stubSimpleCall(expectedResponse); + const [response] = await client.getBackup(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateBackup without error using callback', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.UpdateBackupRequest() - ); - request.backup ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.UpdateBackupRequest', ['backup', 'name']); - request.backup.name = defaultValue1; - const expectedHeaderRequestParams = `backup.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.updateBackup = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.updateBackup( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getBackup without error using callback', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.GetBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.GetBackupRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Backup(), + ); + client.innerApiCalls.getBackup = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getBackup( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IBackup | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateBackup with error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.UpdateBackupRequest() - ); - request.backup ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.UpdateBackupRequest', ['backup', 'name']); - request.backup.name = defaultValue1; - const expectedHeaderRequestParams = `backup.name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.updateBackup = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.updateBackup(request), expectedError); - const actualRequest = (client.innerApiCalls.updateBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getBackup with error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.GetBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.GetBackupRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getBackup = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.getBackup(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateBackup with closed client', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.UpdateBackupRequest() - ); - request.backup ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.UpdateBackupRequest', ['backup', 'name']); - request.backup.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.updateBackup(request), expectedError); - }); + it('invokes getBackup with closed client', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.GetBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.GetBackupRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getBackup(request), expectedError); }); + }); - describe('deleteBackup', () => { - it('invokes deleteBackup without error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.DeleteBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.DeleteBackupRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.deleteBackup = stubSimpleCall(expectedResponse); - const [response] = await client.deleteBackup(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deleteBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('updateBackup', () => { + it('invokes updateBackup without error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.UpdateBackupRequest(), + ); + request.backup ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.UpdateBackupRequest', + ['backup', 'name'], + ); + request.backup.name = defaultValue1; + const expectedHeaderRequestParams = `backup.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.updateBackup = stubSimpleCall(expectedResponse); + const [response] = await client.updateBackup(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteBackup without error using callback', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.DeleteBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.DeleteBackupRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.deleteBackup = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.deleteBackup( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deleteBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updateBackup without error using callback', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.UpdateBackupRequest(), + ); + request.backup ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.UpdateBackupRequest', + ['backup', 'name'], + ); + request.backup.name = defaultValue1; + const expectedHeaderRequestParams = `backup.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.updateBackup = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.updateBackup( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteBackup with error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.DeleteBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.DeleteBackupRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.deleteBackup = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.deleteBackup(request), expectedError); - const actualRequest = (client.innerApiCalls.deleteBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updateBackup with error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.UpdateBackupRequest(), + ); + request.backup ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.UpdateBackupRequest', + ['backup', 'name'], + ); + request.backup.name = defaultValue1; + const expectedHeaderRequestParams = `backup.name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.updateBackup = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.updateBackup(request), expectedError); + const actualRequest = ( + client.innerApiCalls.updateBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteBackup with closed client', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.DeleteBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.DeleteBackupRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.deleteBackup(request), expectedError); - }); + it('invokes updateBackup with closed client', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.UpdateBackupRequest(), + ); + request.backup ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.UpdateBackupRequest', + ['backup', 'name'], + ); + request.backup.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.updateBackup(request), expectedError); }); + }); - describe('listBackups', () => { - it('invokes listBackups without error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.ListBackupsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.ListBackupsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), - generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), - generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), - ]; - client.innerApiCalls.listBackups = stubSimpleCall(expectedResponse); - const [response] = await client.listBackups(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listBackups as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listBackups as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('deleteBackup', () => { + it('invokes deleteBackup without error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.DeleteBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.DeleteBackupRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.deleteBackup = stubSimpleCall(expectedResponse); + const [response] = await client.deleteBackup(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes listBackups without error using callback', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.ListBackupsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.ListBackupsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), - generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), - generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), - ]; - client.innerApiCalls.listBackups = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listBackups( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IBackup[]|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listBackups as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listBackups as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deleteBackup without error using callback', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.DeleteBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.DeleteBackupRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.deleteBackup = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.deleteBackup( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes listBackups with error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.ListBackupsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.ListBackupsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listBackups = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listBackups(request), expectedError); - const actualRequest = (client.innerApiCalls.listBackups as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listBackups as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deleteBackup with error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.DeleteBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.DeleteBackupRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteBackup = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.deleteBackup(request), expectedError); + const actualRequest = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes listBackupsStream without error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.ListBackupsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.ListBackupsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), - generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), - generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), - ]; - client.descriptors.page.listBackups.createStream = stubPageStreamingCall(expectedResponse); - const stream = client.listBackupsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.sql.v1.Backup[] = []; - stream.on('data', (response: protos.google.cloud.sql.v1.Backup) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - const responses = await promise; - assert.deepStrictEqual(responses, expectedResponse); - assert((client.descriptors.page.listBackups.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listBackups, request)); - assert( - (client.descriptors.page.listBackups.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('invokes deleteBackup with closed client', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.DeleteBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.DeleteBackupRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.deleteBackup(request), expectedError); + }); + }); - it('invokes listBackupsStream with error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.ListBackupsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.ListBackupsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listBackups.createStream = stubPageStreamingCall(undefined, expectedError); - const stream = client.listBackupsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.sql.v1.Backup[] = []; - stream.on('data', (response: protos.google.cloud.sql.v1.Backup) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert((client.descriptors.page.listBackups.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listBackups, request)); - assert( - (client.descriptors.page.listBackups.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + describe('listBackups', () => { + it('invokes listBackups without error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.ListBackupsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.ListBackupsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), + generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), + generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), + ]; + client.innerApiCalls.listBackups = stubSimpleCall(expectedResponse); + const [response] = await client.listBackups(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('uses async iteration with listBackups without error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.ListBackupsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.ListBackupsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), - generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), - generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), - ]; - client.descriptors.page.listBackups.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.sql.v1.IBackup[] = []; - const iterable = client.listBackupsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('invokes listBackups without error using callback', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.ListBackupsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.ListBackupsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), + generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), + generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), + ]; + client.innerApiCalls.listBackups = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listBackups( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IBackup[] | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listBackups.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listBackups.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('uses async iteration with listBackups with error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.ListBackupsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.ListBackupsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listBackups.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listBackupsAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.sql.v1.IBackup[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listBackups.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listBackups.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('invokes listBackups with error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.ListBackupsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.ListBackupsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listBackups = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.listBackups(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); + + it('invokes listBackupsStream without error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.ListBackupsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.ListBackupsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), + generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), + generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), + ]; + client.descriptors.page.listBackups.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listBackupsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.sql.v1.Backup[] = []; + stream.on('data', (response: protos.google.cloud.sql.v1.Backup) => { + responses.push(response); }); - it('invokes getLocation without error using callback', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); + stream.on('end', () => { + resolve(responses); }); - it('invokes getLocation with error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); + stream.on('error', (err: Error) => { + reject(err); }); + }); + const responses = await promise; + assert.deepStrictEqual(responses, expectedResponse); + assert( + (client.descriptors.page.listBackups.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listBackups, request), + ); + assert( + (client.descriptors.page.listBackups.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); + + it('invokes listBackupsStream with error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.ListBackupsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.ListBackupsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listBackups.createStream = stubPageStreamingCall( + undefined, + expectedError, + ); + const stream = client.listBackupsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.sql.v1.Backup[] = []; + stream.on('data', (response: protos.google.cloud.sql.v1.Backup) => { + responses.push(response); + }); + stream.on('end', () => { + resolve(responses); }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); + stream.on('error', (err: Error) => { + reject(err); }); + }); + await assert.rejects(promise, expectedError); + assert( + (client.descriptors.page.listBackups.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listBackups, request), + ); + assert( + (client.descriptors.page.listBackups.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); }); - describe('Path templates', () => { + it('uses async iteration with listBackups without error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.ListBackupsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.ListBackupsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), + generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), + generateSampleMessage(new protos.google.cloud.sql.v1.Backup()), + ]; + client.descriptors.page.listBackups.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.sql.v1.IBackup[] = []; + const iterable = client.listBackupsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + (client.descriptors.page.listBackups.asyncIterate as SinonStub).getCall( + 0, + ).args[1], + request, + ); + assert( + (client.descriptors.page.listBackups.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); + it('uses async iteration with listBackups with error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.ListBackupsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.ListBackupsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listBackups.asyncIterate = stubAsyncIterationCall( + undefined, + expectedError, + ); + const iterable = client.listBackupsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.sql.v1.IBackup[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + (client.descriptors.page.listBackups.asyncIterate as SinonStub).getCall( + 0, + ).args[1], + request, + ); + assert( + (client.descriptors.page.listBackups.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + it('invokes getLocation without error using callback', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); + }); + it('invokes getLocation with error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); - describe('project', async () => { - const fakePath = "/rendered/path/project"; - const expectedParameters = { - project: "projectValue", - }; - const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.projectPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.projectPathTemplate.match = - sinon.stub().returns(expectedParameters); + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); - it('projectPath', () => { - const result = client.projectPath("projectValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.projectPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + describe('project', async () => { + const fakePath = '/rendered/path/project'; + const expectedParameters = { + project: 'projectValue', + }; + const client = new sqlbackupsserviceModule.v1.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.projectPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.projectPathTemplate.match = sinon + .stub() + .returns(expectedParameters); - it('matchProjectFromProjectName', () => { - const result = client.matchProjectFromProjectName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.projectPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('projectPath', () => { + const result = client.projectPath('projectValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.projectPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromProjectName', () => { + const result = client.matchProjectFromProjectName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.projectPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_backups_service_v1beta4.ts b/packages/google-cloud-sql/test/gapic_sql_backups_service_v1beta4.ts index 7284e1063b1..80358e559af 100644 --- a/packages/google-cloud-sql/test/gapic_sql_backups_service_v1beta4.ts +++ b/packages/google-cloud-sql/test/gapic_sql_backups_service_v1beta4.ts @@ -19,1161 +19,1465 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqlbackupsserviceModule from '../src'; -import {PassThrough} from 'stream'; +import { PassThrough } from 'stream'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubPageStreamingCall(responses?: ResponseType[], error?: Error) { - const pagingStub = sinon.stub(); - if (responses) { - for (let i = 0; i < responses.length; ++i) { - pagingStub.onCall(i).callsArgWith(2, null, responses[i]); - } +function stubPageStreamingCall( + responses?: ResponseType[], + error?: Error, +) { + const pagingStub = sinon.stub(); + if (responses) { + for (let i = 0; i < responses.length; ++i) { + pagingStub.onCall(i).callsArgWith(2, null, responses[i]); } - const transformStub = error ? sinon.stub().callsArgWith(2, error) : pagingStub; - const mockStream = new PassThrough({ - objectMode: true, - transform: transformStub, - }); - // trigger as many responses as needed - if (responses) { - for (let i = 0; i < responses.length; ++i) { - setImmediate(() => { mockStream.write({}); }); - } - setImmediate(() => { mockStream.end(); }); - } else { - setImmediate(() => { mockStream.write({}); }); - setImmediate(() => { mockStream.end(); }); + } + const transformStub = error + ? sinon.stub().callsArgWith(2, error) + : pagingStub; + const mockStream = new PassThrough({ + objectMode: true, + transform: transformStub, + }); + // trigger as many responses as needed + if (responses) { + for (let i = 0; i < responses.length; ++i) { + setImmediate(() => { + mockStream.write({}); + }); } - return sinon.stub().returns(mockStream); + setImmediate(() => { + mockStream.end(); + }); + } else { + setImmediate(() => { + mockStream.write({}); + }); + setImmediate(() => { + mockStream.end(); + }); + } + return sinon.stub().returns(mockStream); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1beta4.SqlBackupsServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('has universeDomain', () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); + it('has universeDomain', () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + universeDomain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + universe_domain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } + }); - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + universeDomain: 'configured.example.com', }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - - it('has port', () => { - const port = sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient.port; - assert(port); - assert(typeof port === 'number'); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('should create a client with no option', () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient(); - assert(client); - }); + it('has port', () => { + const port = sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('should create a client with gRPC fallback', () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - fallback: true, - }); - assert(client); + it('should create a client with no option', () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient(); + assert(client); + }); + + it('should create a client with gRPC fallback', () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + fallback: true, }); + assert(client); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlBackupsServiceStub, undefined); - await client.initialize(); - assert(client.sqlBackupsServiceStub); + it('has initialize method and supports deferred initialization', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + assert.strictEqual(client.sqlBackupsServiceStub, undefined); + await client.initialize(); + assert(client.sqlBackupsServiceStub); + }); - it('has close method for the initialized client', done => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlBackupsServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the initialized client', (done) => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlBackupsServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; + }); + }); - it('has close method for the non-initialized client', done => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlBackupsServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the non-initialized client', (done) => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlBackupsServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); }); + }); - describe('createBackup', () => { - it('invokes createBackup without error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.CreateBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.CreateBackupRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.createBackup = stubSimpleCall(expectedResponse); - const [response] = await client.createBackup(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + describe('createBackup', () => { + it('invokes createBackup without error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.CreateBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.CreateBackupRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.createBackup = stubSimpleCall(expectedResponse); + const [response] = await client.createBackup(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createBackup without error using callback', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.CreateBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.CreateBackupRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.createBackup = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.createBackup( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes createBackup without error using callback', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.CreateBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.CreateBackupRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.createBackup = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.createBackup( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createBackup with error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.CreateBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.CreateBackupRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createBackup = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.createBackup(request), expectedError); - const actualRequest = (client.innerApiCalls.createBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes createBackup with error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.CreateBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.CreateBackupRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createBackup = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.createBackup(request), expectedError); + const actualRequest = ( + client.innerApiCalls.createBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createBackup with closed client', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.CreateBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.CreateBackupRequest', ['parent']); - request.parent = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.createBackup(request), expectedError); + it('invokes createBackup with closed client', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.CreateBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.CreateBackupRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.createBackup(request), expectedError); }); + }); - describe('getBackup', () => { - it('invokes getBackup without error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.GetBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GetBackupRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Backup() - ); - client.innerApiCalls.getBackup = stubSimpleCall(expectedResponse); - const [response] = await client.getBackup(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + describe('getBackup', () => { + it('invokes getBackup without error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.GetBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GetBackupRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Backup(), + ); + client.innerApiCalls.getBackup = stubSimpleCall(expectedResponse); + const [response] = await client.getBackup(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getBackup without error using callback', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.GetBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GetBackupRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Backup() - ); - client.innerApiCalls.getBackup = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getBackup( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IBackup|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes getBackup without error using callback', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.GetBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GetBackupRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Backup(), + ); + client.innerApiCalls.getBackup = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getBackup( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IBackup | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getBackup with error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.GetBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GetBackupRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getBackup = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getBackup(request), expectedError); - const actualRequest = (client.innerApiCalls.getBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes getBackup with error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.GetBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GetBackupRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getBackup = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.getBackup(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getBackup with closed client', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.GetBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GetBackupRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getBackup(request), expectedError); + it('invokes getBackup with closed client', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.GetBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GetBackupRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getBackup(request), expectedError); }); + }); - describe('updateBackup', () => { - it('invokes updateBackup without error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.UpdateBackupRequest() - ); - request.backup ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.UpdateBackupRequest', ['backup', 'name']); - request.backup.name = defaultValue1; - const expectedHeaderRequestParams = `backup.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.updateBackup = stubSimpleCall(expectedResponse); - const [response] = await client.updateBackup(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + describe('updateBackup', () => { + it('invokes updateBackup without error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.UpdateBackupRequest(), + ); + request.backup ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.UpdateBackupRequest', + ['backup', 'name'], + ); + request.backup.name = defaultValue1; + const expectedHeaderRequestParams = `backup.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.updateBackup = stubSimpleCall(expectedResponse); + const [response] = await client.updateBackup(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateBackup without error using callback', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.UpdateBackupRequest() - ); - request.backup ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.UpdateBackupRequest', ['backup', 'name']); - request.backup.name = defaultValue1; - const expectedHeaderRequestParams = `backup.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.updateBackup = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.updateBackup( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes updateBackup without error using callback', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.UpdateBackupRequest(), + ); + request.backup ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.UpdateBackupRequest', + ['backup', 'name'], + ); + request.backup.name = defaultValue1; + const expectedHeaderRequestParams = `backup.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.updateBackup = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.updateBackup( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateBackup with error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.UpdateBackupRequest() - ); - request.backup ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.UpdateBackupRequest', ['backup', 'name']); - request.backup.name = defaultValue1; - const expectedHeaderRequestParams = `backup.name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.updateBackup = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.updateBackup(request), expectedError); - const actualRequest = (client.innerApiCalls.updateBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes updateBackup with error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.UpdateBackupRequest(), + ); + request.backup ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.UpdateBackupRequest', + ['backup', 'name'], + ); + request.backup.name = defaultValue1; + const expectedHeaderRequestParams = `backup.name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.updateBackup = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.updateBackup(request), expectedError); + const actualRequest = ( + client.innerApiCalls.updateBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateBackup with closed client', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.UpdateBackupRequest() - ); - request.backup ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.UpdateBackupRequest', ['backup', 'name']); - request.backup.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.updateBackup(request), expectedError); + it('invokes updateBackup with closed client', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.UpdateBackupRequest(), + ); + request.backup ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.UpdateBackupRequest', + ['backup', 'name'], + ); + request.backup.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.updateBackup(request), expectedError); }); + }); - describe('deleteBackup', () => { - it('invokes deleteBackup without error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.DeleteBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.DeleteBackupRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.deleteBackup = stubSimpleCall(expectedResponse); - const [response] = await client.deleteBackup(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deleteBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + describe('deleteBackup', () => { + it('invokes deleteBackup without error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.DeleteBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.DeleteBackupRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.deleteBackup = stubSimpleCall(expectedResponse); + const [response] = await client.deleteBackup(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteBackup without error using callback', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.DeleteBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.DeleteBackupRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.deleteBackup = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.deleteBackup( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deleteBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes deleteBackup without error using callback', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.DeleteBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.DeleteBackupRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.deleteBackup = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.deleteBackup( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteBackup with error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.DeleteBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.DeleteBackupRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.deleteBackup = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.deleteBackup(request), expectedError); - const actualRequest = (client.innerApiCalls.deleteBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes deleteBackup with error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.DeleteBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.DeleteBackupRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteBackup = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.deleteBackup(request), expectedError); + const actualRequest = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteBackup with closed client', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.DeleteBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.DeleteBackupRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.deleteBackup(request), expectedError); + it('invokes deleteBackup with closed client', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.DeleteBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.DeleteBackupRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.deleteBackup(request), expectedError); }); + }); - describe('listBackups', () => { - it('invokes listBackups without error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.ListBackupsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.ListBackupsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), - generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), - generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), - ]; - client.innerApiCalls.listBackups = stubSimpleCall(expectedResponse); - const [response] = await client.listBackups(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listBackups as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listBackups as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + describe('listBackups', () => { + it('invokes listBackups without error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.ListBackupsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.ListBackupsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), + generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), + generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), + ]; + client.innerApiCalls.listBackups = stubSimpleCall(expectedResponse); + const [response] = await client.listBackups(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes listBackups without error using callback', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.ListBackupsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.ListBackupsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), - generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), - generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), - ]; - client.innerApiCalls.listBackups = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listBackups( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IBackup[]|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listBackups as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listBackups as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes listBackups without error using callback', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.ListBackupsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.ListBackupsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), + generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), + generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), + ]; + client.innerApiCalls.listBackups = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listBackups( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IBackup[] | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes listBackups with error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.ListBackupsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.ListBackupsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listBackups = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listBackups(request), expectedError); - const actualRequest = (client.innerApiCalls.listBackups as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listBackups as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes listBackups with error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.ListBackupsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.ListBackupsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listBackups = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.listBackups(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBackups as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes listBackupsStream without error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.ListBackupsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.ListBackupsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), - generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), - generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), - ]; - client.descriptors.page.listBackups.createStream = stubPageStreamingCall(expectedResponse); - const stream = client.listBackupsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.sql.v1beta4.Backup[] = []; - stream.on('data', (response: protos.google.cloud.sql.v1beta4.Backup) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - const responses = await promise; - assert.deepStrictEqual(responses, expectedResponse); - assert((client.descriptors.page.listBackups.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listBackups, request)); - assert( - (client.descriptors.page.listBackups.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); + it('invokes listBackupsStream without error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.ListBackupsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.ListBackupsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), + generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), + generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), + ]; + client.descriptors.page.listBackups.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listBackupsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.sql.v1beta4.Backup[] = []; + stream.on( + 'data', + (response: protos.google.cloud.sql.v1beta4.Backup) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + const responses = await promise; + assert.deepStrictEqual(responses, expectedResponse); + assert( + (client.descriptors.page.listBackups.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listBackups, request), + ); + assert( + (client.descriptors.page.listBackups.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); - it('invokes listBackupsStream with error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.ListBackupsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.ListBackupsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listBackups.createStream = stubPageStreamingCall(undefined, expectedError); - const stream = client.listBackupsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.sql.v1beta4.Backup[] = []; - stream.on('data', (response: protos.google.cloud.sql.v1beta4.Backup) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert((client.descriptors.page.listBackups.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listBackups, request)); - assert( - (client.descriptors.page.listBackups.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); + it('invokes listBackupsStream with error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.ListBackupsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.ListBackupsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listBackups.createStream = stubPageStreamingCall( + undefined, + expectedError, + ); + const stream = client.listBackupsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.sql.v1beta4.Backup[] = []; + stream.on( + 'data', + (response: protos.google.cloud.sql.v1beta4.Backup) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); }); + }); + await assert.rejects(promise, expectedError); + assert( + (client.descriptors.page.listBackups.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listBackups, request), + ); + assert( + (client.descriptors.page.listBackups.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); - it('uses async iteration with listBackups without error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.ListBackupsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.ListBackupsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), - generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), - generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), - ]; - client.descriptors.page.listBackups.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.sql.v1beta4.IBackup[] = []; - const iterable = client.listBackupsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listBackups.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listBackups.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); + it('uses async iteration with listBackups without error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.ListBackupsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.ListBackupsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), + generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), + generateSampleMessage(new protos.google.cloud.sql.v1beta4.Backup()), + ]; + client.descriptors.page.listBackups.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.sql.v1beta4.IBackup[] = []; + const iterable = client.listBackupsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + (client.descriptors.page.listBackups.asyncIterate as SinonStub).getCall( + 0, + ).args[1], + request, + ); + assert( + (client.descriptors.page.listBackups.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); - it('uses async iteration with listBackups with error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.ListBackupsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.ListBackupsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listBackups.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listBackupsAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.sql.v1beta4.IBackup[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listBackups.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listBackups.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); + it('uses async iteration with listBackups with error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.ListBackupsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.ListBackupsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listBackups.asyncIterate = stubAsyncIterationCall( + undefined, + expectedError, + ); + const iterable = client.listBackupsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.sql.v1beta4.IBackup[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + (client.descriptors.page.listBackups.asyncIterate as SinonStub).getCall( + 0, + ).args[1], + request, + ); + assert( + (client.descriptors.page.listBackups.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); - it('invokes getLocation without error using callback', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + it('invokes getLocation without error using callback', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); - it('invokes getLocation with error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); + }); + it('invokes getLocation with error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); }); + }); - describe('Path templates', () => { + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + describe('project', async () => { + const fakePath = '/rendered/path/project'; + const expectedParameters = { + project: 'projectValue', + }; + const client = + new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + client.pathTemplates.projectPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.projectPathTemplate.match = sinon + .stub() + .returns(expectedParameters); - describe('project', async () => { - const fakePath = "/rendered/path/project"; - const expectedParameters = { - project: "projectValue", - }; - const client = new sqlbackupsserviceModule.v1beta4.SqlBackupsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.projectPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.projectPathTemplate.match = - sinon.stub().returns(expectedParameters); + it('projectPath', () => { + const result = client.projectPath('projectValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.projectPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); - it('projectPath', () => { - const result = client.projectPath("projectValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.projectPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromProjectName', () => { - const result = client.matchProjectFromProjectName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.projectPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('matchProjectFromProjectName', () => { + const result = client.matchProjectFromProjectName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.projectPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_connect_service_v1.ts b/packages/google-cloud-sql/test/gapic_sql_connect_service_v1.ts index 6871c0b454d..b60949338fd 100644 --- a/packages/google-cloud-sql/test/gapic_sql_connect_service_v1.ts +++ b/packages/google-cloud-sql/test/gapic_sql_connect_service_v1.ts @@ -19,663 +19,823 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqlconnectserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1.SqlConnectServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('has universeDomain', () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); + it('has universeDomain', () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqlconnectserviceModule.v1.SqlConnectServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqlconnectserviceModule.v1.SqlConnectServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqlconnectserviceModule.v1.SqlConnectServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqlconnectserviceModule.v1.SqlConnectServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + universeDomain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + universe_domain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqlconnectserviceModule.v1.SqlConnectServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlconnectserviceModule.v1.SqlConnectServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - it('has port', () => { - const port = sqlconnectserviceModule.v1.SqlConnectServiceClient.port; - assert(port); - assert(typeof port === 'number'); + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient( + { universeDomain: 'configured.example.com' }, + ); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - - it('should create a client with no option', () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient(); - assert(client); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('should create a client with gRPC fallback', () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - fallback: true, - }); - assert(client); - }); + it('has port', () => { + const port = sqlconnectserviceModule.v1.SqlConnectServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlConnectServiceStub, undefined); - await client.initialize(); - assert(client.sqlConnectServiceStub); - }); + it('should create a client with no option', () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient(); + assert(client); + }); - it('has close method for the initialized client', done => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlConnectServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('should create a client with gRPC fallback', () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + fallback: true, + }); + assert(client); + }); - it('has close method for the non-initialized client', done => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlConnectServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('has initialize method and supports deferred initialization', async () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlConnectServiceStub, undefined); + await client.initialize(); + assert(client.sqlConnectServiceStub); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has close method for the initialized client', (done) => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlConnectServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); + it('has close method for the non-initialized client', (done) => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlConnectServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); }); - describe('getConnectSettings', () => { - it('invokes getConnectSettings without error', async () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.GetConnectSettingsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.GetConnectSettingsRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.GetConnectSettingsRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.ConnectSettings() - ); - client.innerApiCalls.getConnectSettings = stubSimpleCall(expectedResponse); - const [response] = await client.getConnectSettings(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getConnectSettings as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getConnectSettings as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + }); - it('invokes getConnectSettings without error using callback', async () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.GetConnectSettingsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.GetConnectSettingsRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.GetConnectSettingsRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.ConnectSettings() - ); - client.innerApiCalls.getConnectSettings = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getConnectSettings( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IConnectSettings|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getConnectSettings as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getConnectSettings as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); + }); + }); + + describe('getConnectSettings', () => { + it('invokes getConnectSettings without error', async () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.GetConnectSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.GetConnectSettingsRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.GetConnectSettingsRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.ConnectSettings(), + ); + client.innerApiCalls.getConnectSettings = + stubSimpleCall(expectedResponse); + const [response] = await client.getConnectSettings(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getConnectSettings as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getConnectSettings as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getConnectSettings with error', async () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.GetConnectSettingsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.GetConnectSettingsRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.GetConnectSettingsRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getConnectSettings = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getConnectSettings(request), expectedError); - const actualRequest = (client.innerApiCalls.getConnectSettings as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getConnectSettings as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getConnectSettings without error using callback', async () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.GetConnectSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.GetConnectSettingsRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.GetConnectSettingsRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.ConnectSettings(), + ); + client.innerApiCalls.getConnectSettings = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getConnectSettings( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IConnectSettings | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getConnectSettings as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getConnectSettings as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getConnectSettings with closed client', async () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.GetConnectSettingsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.GetConnectSettingsRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.GetConnectSettingsRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getConnectSettings(request), expectedError); - }); + it('invokes getConnectSettings with error', async () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.GetConnectSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.GetConnectSettingsRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.GetConnectSettingsRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getConnectSettings = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.getConnectSettings(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getConnectSettings as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getConnectSettings as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('generateEphemeralCert', () => { - it('invokes generateEphemeralCert without error', async () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.GenerateEphemeralCertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.GenerateEphemeralCertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.GenerateEphemeralCertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.GenerateEphemeralCertResponse() - ); - client.innerApiCalls.generateEphemeralCert = stubSimpleCall(expectedResponse); - const [response] = await client.generateEphemeralCert(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.generateEphemeralCert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.generateEphemeralCert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getConnectSettings with closed client', async () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.GetConnectSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.GetConnectSettingsRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.GetConnectSettingsRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getConnectSettings(request), expectedError); + }); + }); + + describe('generateEphemeralCert', () => { + it('invokes generateEphemeralCert without error', async () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.GenerateEphemeralCertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.GenerateEphemeralCertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.GenerateEphemeralCertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.GenerateEphemeralCertResponse(), + ); + client.innerApiCalls.generateEphemeralCert = + stubSimpleCall(expectedResponse); + const [response] = await client.generateEphemeralCert(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.generateEphemeralCert as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.generateEphemeralCert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes generateEphemeralCert without error using callback', async () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.GenerateEphemeralCertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.GenerateEphemeralCertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.GenerateEphemeralCertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.GenerateEphemeralCertResponse() - ); - client.innerApiCalls.generateEphemeralCert = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.generateEphemeralCert( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IGenerateEphemeralCertResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.generateEphemeralCert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.generateEphemeralCert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes generateEphemeralCert without error using callback', async () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.GenerateEphemeralCertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.GenerateEphemeralCertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.GenerateEphemeralCertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.GenerateEphemeralCertResponse(), + ); + client.innerApiCalls.generateEphemeralCert = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.generateEphemeralCert( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IGenerateEphemeralCertResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.generateEphemeralCert as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.generateEphemeralCert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes generateEphemeralCert with error', async () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.GenerateEphemeralCertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.GenerateEphemeralCertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.GenerateEphemeralCertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.generateEphemeralCert = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.generateEphemeralCert(request), expectedError); - const actualRequest = (client.innerApiCalls.generateEphemeralCert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.generateEphemeralCert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes generateEphemeralCert with error', async () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.GenerateEphemeralCertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.GenerateEphemeralCertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.GenerateEphemeralCertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.generateEphemeralCert = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.generateEphemeralCert(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.generateEphemeralCert as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.generateEphemeralCert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes generateEphemeralCert with closed client', async () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.GenerateEphemeralCertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.GenerateEphemeralCertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.GenerateEphemeralCertRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.generateEphemeralCert(request), expectedError); - }); + it('invokes generateEphemeralCert with closed client', async () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.GenerateEphemeralCertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.GenerateEphemeralCertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.GenerateEphemeralCertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.generateEphemeralCert(request), + expectedError, + ); }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('invokes getLocation without error using callback', async () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); }); - - describe('Path templates', () => { - - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('invokes getLocation with error', async () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); + + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = new sqlconnectserviceModule.v1.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_connect_service_v1beta4.ts b/packages/google-cloud-sql/test/gapic_sql_connect_service_v1beta4.ts index cf1df12ba74..3862b63c336 100644 --- a/packages/google-cloud-sql/test/gapic_sql_connect_service_v1beta4.ts +++ b/packages/google-cloud-sql/test/gapic_sql_connect_service_v1beta4.ts @@ -19,663 +19,1012 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqlconnectserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1beta4.SqlConnectServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); - - it('has universeDomain', () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); - - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqlconnectserviceModule.v1beta4.SqlConnectServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqlconnectserviceModule.v1beta4.SqlConnectServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); - - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); - - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); + it('has universeDomain', () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); + + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqlconnectserviceModule.v1beta4.SqlConnectServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqlconnectserviceModule.v1beta4.SqlConnectServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + universeDomain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('has port', () => { - const port = sqlconnectserviceModule.v1beta4.SqlConnectServiceClient.port; - assert(port); - assert(typeof port === 'number'); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + universe_domain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('should create a client with no option', () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient(); - assert(client); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - it('should create a client with gRPC fallback', () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - fallback: true, + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + universeDomain: 'configured.example.com', }); - assert(client); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } + }); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlConnectServiceStub, undefined); - await client.initialize(); - assert(client.sqlConnectServiceStub); + it('has port', () => { + const port = sqlconnectserviceModule.v1beta4.SqlConnectServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); + + it('should create a client with no option', () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient(); + assert(client); + }); + + it('should create a client with gRPC fallback', () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + fallback: true, }); + assert(client); + }); - it('has close method for the initialized client', done => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlConnectServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has initialize method and supports deferred initialization', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + assert.strictEqual(client.sqlConnectServiceStub, undefined); + await client.initialize(); + assert(client.sqlConnectServiceStub); + }); - it('has close method for the non-initialized client', done => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlConnectServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the initialized client', (done) => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlConnectServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has close method for the non-initialized client', (done) => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + assert.strictEqual(client.sqlConnectServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; + }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); }); - describe('getConnectSettings', () => { - it('invokes getConnectSettings without error', async () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.GetConnectSettingsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GetConnectSettingsRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GetConnectSettingsRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.ConnectSettings() - ); - client.innerApiCalls.getConnectSettings = stubSimpleCall(expectedResponse); - const [response] = await client.getConnectSettings(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getConnectSettings as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getConnectSettings as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getConnectSettings without error using callback', async () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.GetConnectSettingsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GetConnectSettingsRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GetConnectSettingsRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.ConnectSettings() - ); - client.innerApiCalls.getConnectSettings = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getConnectSettings( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IConnectSettings|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getConnectSettings as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getConnectSettings as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getConnectSettings with error', async () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.GetConnectSettingsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GetConnectSettingsRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GetConnectSettingsRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getConnectSettings = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getConnectSettings(request), expectedError); - const actualRequest = (client.innerApiCalls.getConnectSettings as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getConnectSettings as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getConnectSettings with closed client', async () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.GetConnectSettingsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GetConnectSettingsRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GetConnectSettingsRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getConnectSettings(request), expectedError); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } + }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); }); + }); - describe('generateEphemeralCert', () => { - it('invokes generateEphemeralCert without error', async () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.GenerateEphemeralCertResponse() - ); - client.innerApiCalls.generateEphemeralCert = stubSimpleCall(expectedResponse); - const [response] = await client.generateEphemeralCert(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.generateEphemeralCert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.generateEphemeralCert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes generateEphemeralCert without error using callback', async () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.GenerateEphemeralCertResponse() - ); - client.innerApiCalls.generateEphemeralCert = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.generateEphemeralCert( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.generateEphemeralCert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.generateEphemeralCert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes generateEphemeralCert with error', async () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.generateEphemeralCert = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.generateEphemeralCert(request), expectedError); - const actualRequest = (client.innerApiCalls.generateEphemeralCert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.generateEphemeralCert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes generateEphemeralCert with closed client', async () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.generateEphemeralCert(request), expectedError); + describe('getConnectSettings', () => { + it('invokes getConnectSettings without error', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.GetConnectSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GetConnectSettingsRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GetConnectSettingsRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.ConnectSettings(), + ); + client.innerApiCalls.getConnectSettings = + stubSimpleCall(expectedResponse); + const [response] = await client.getConnectSettings(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getConnectSettings as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getConnectSettings as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); + + it('invokes getConnectSettings without error using callback', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.GetConnectSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GetConnectSettingsRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GetConnectSettingsRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.ConnectSettings(), + ); + client.innerApiCalls.getConnectSettings = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getConnectSettings( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IConnectSettings | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getConnectSettings as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getConnectSettings as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + + it('invokes getConnectSettings with error', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.GetConnectSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GetConnectSettingsRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GetConnectSettingsRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getConnectSettings = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.getConnectSettings(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getConnectSettings as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getConnectSettings as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getConnectSettings with closed client', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.GetConnectSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GetConnectSettingsRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GetConnectSettingsRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getConnectSettings(request), expectedError); + }); + }); + + describe('resolveConnectSettings', () => { + it('invokes resolveConnectSettings without error', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.ResolveConnectSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.ResolveConnectSettingsRequest', + ['location'], + ); + request.location = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.ResolveConnectSettingsRequest', + ['dnsName'], + ); + request.dnsName = defaultValue2; + const expectedHeaderRequestParams = `location=${defaultValue1 ?? ''}&dns_name=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.ConnectSettings(), + ); + client.innerApiCalls.resolveConnectSettings = + stubSimpleCall(expectedResponse); + const [response] = await client.resolveConnectSettings(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.resolveConnectSettings as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resolveConnectSettings as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes resolveConnectSettings without error using callback', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.ResolveConnectSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.ResolveConnectSettingsRequest', + ['location'], + ); + request.location = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.ResolveConnectSettingsRequest', + ['dnsName'], + ); + request.dnsName = defaultValue2; + const expectedHeaderRequestParams = `location=${defaultValue1 ?? ''}&dns_name=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.ConnectSettings(), + ); + client.innerApiCalls.resolveConnectSettings = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.resolveConnectSettings( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IConnectSettings | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.resolveConnectSettings as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resolveConnectSettings as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes resolveConnectSettings with error', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.ResolveConnectSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.ResolveConnectSettingsRequest', + ['location'], + ); + request.location = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.ResolveConnectSettingsRequest', + ['dnsName'], + ); + request.dnsName = defaultValue2; + const expectedHeaderRequestParams = `location=${defaultValue1 ?? ''}&dns_name=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.resolveConnectSettings = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.resolveConnectSettings(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.resolveConnectSettings as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resolveConnectSettings as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('Path templates', () => { - - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + it('invokes resolveConnectSettings with closed client', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.ResolveConnectSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.ResolveConnectSettingsRequest', + ['location'], + ); + request.location = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.ResolveConnectSettingsRequest', + ['dnsName'], + ); + request.dnsName = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.resolveConnectSettings(request), + expectedError, + ); + }); + }); - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + describe('generateEphemeralCert', () => { + it('invokes generateEphemeralCert without error', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.GenerateEphemeralCertResponse(), + ); + client.innerApiCalls.generateEphemeralCert = + stubSimpleCall(expectedResponse); + const [response] = await client.generateEphemeralCert(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.generateEphemeralCert as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.generateEphemeralCert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('invokes generateEphemeralCert without error using callback', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.GenerateEphemeralCertResponse(), + ); + client.innerApiCalls.generateEphemeralCert = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.generateEphemeralCert( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IGenerateEphemeralCertResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.generateEphemeralCert as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.generateEphemeralCert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes generateEphemeralCert with error', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.generateEphemeralCert = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.generateEphemeralCert(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.generateEphemeralCert as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.generateEphemeralCert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes generateEphemeralCert with closed client', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.GenerateEphemeralCertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.generateEphemeralCert(request), + expectedError, + ); + }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + it('invokes getLocation without error using callback', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); + }); + it('invokes getLocation with error', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); + + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_data_service_v1beta4.ts b/packages/google-cloud-sql/test/gapic_sql_data_service_v1beta4.ts new file mode 100644 index 00000000000..3ddff25ac95 --- /dev/null +++ b/packages/google-cloud-sql/test/gapic_sql_data_service_v1beta4.ts @@ -0,0 +1,671 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +import * as protos from '../protos/protos'; +import * as assert from 'assert'; +import * as sinon from 'sinon'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; +import * as sqldataserviceModule from '../src'; + +import { PassThrough } from 'stream'; + +import { protobuf, LocationProtos } from 'google-gax'; + +// Dynamically loaded proto JSON is needed to get the type information +// to fill in default values for request objects +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function getTypeDefaultValue(typeName: string, fields: string[]) { + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; +} + +function generateSampleMessage(instance: T) { + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; +} + +function stubSimpleCall(response?: ResponseType, error?: Error) { + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); +} + +function stubBidiStreamingCall( + response?: ResponseType, + error?: Error, +) { + const transformStub = error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); + const mockStream = new PassThrough({ + objectMode: true, + transform: transformStub, + }); + return sinon.stub().returns(mockStream); +} + +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); +} + +describe('v1beta4.SqlDataServiceClient', () => { + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); + + it('has universeDomain', () => { + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); + + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqldataserviceModule.v1beta4.SqlDataServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqldataserviceModule.v1beta4.SqlDataServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + universeDomain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); + + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + universe_domain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); + + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqldataserviceModule.v1beta4.SqlDataServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } + }); + + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + universeDomain: 'configured.example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } + }); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', + }); + }); + }); + + it('has port', () => { + const port = sqldataserviceModule.v1beta4.SqlDataServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); + + it('should create a client with no option', () => { + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient(); + assert(client); + }); + + it('should create a client with gRPC fallback', () => { + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + fallback: true, + }); + assert(client); + }); + + it('has initialize method and supports deferred initialization', async () => { + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlDataServiceStub, undefined); + await client.initialize(); + assert(client.sqlDataServiceStub); + }); + + it('has close method for the initialized client', (done) => { + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlDataServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; + }); + }); + + it('has close method for the non-initialized client', (done) => { + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlDataServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; + }); + }); + + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + }); + + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } + }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); + }); + }); + + describe('streamSqlData', () => { + it('invokes streamSqlData without error', async () => { + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.StreamSqlDataRequest(), + ); + + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.StreamSqlDataResponse(), + ); + client.innerApiCalls.streamSqlData = + stubBidiStreamingCall(expectedResponse); + const stream = client.streamSqlData(); + const promise = new Promise((resolve, reject) => { + stream.on( + 'data', + (response: protos.google.cloud.sql.v1beta4.StreamSqlDataResponse) => { + resolve(response); + }, + ); + stream.on('error', (err: Error) => { + reject(err); + }); + stream.write(request); + stream.end(); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.streamSqlData as SinonStub) + .getCall(0) + .calledWith(null), + ); + assert.deepStrictEqual( + ((stream as unknown as PassThrough)._transform as SinonStub).getCall(0) + .args[0], + request, + ); + }); + + it('invokes streamSqlData with error', async () => { + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.StreamSqlDataRequest(), + ); + const expectedError = new Error('expected'); + client.innerApiCalls.streamSqlData = stubBidiStreamingCall( + undefined, + expectedError, + ); + const stream = client.streamSqlData(); + const promise = new Promise((resolve, reject) => { + stream.on( + 'data', + (response: protos.google.cloud.sql.v1beta4.StreamSqlDataResponse) => { + resolve(response); + }, + ); + stream.on('error', (err: Error) => { + reject(err); + }); + stream.write(request); + stream.end(); + }); + await assert.rejects(promise, expectedError); + assert( + (client.innerApiCalls.streamSqlData as SinonStub) + .getCall(0) + .calledWith(null), + ); + assert.deepStrictEqual( + ((stream as unknown as PassThrough)._transform as SinonStub).getCall(0) + .args[0], + request, + ); + }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + it('invokes getLocation without error using callback', async () => { + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); + }); + it('invokes getLocation with error', async () => { + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); + + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); + + describe('instance', async () => { + const fakePath = '/rendered/path/instance'; + const expectedParameters = { + project: 'projectValue', + instance: 'instanceValue', + }; + const client = new sqldataserviceModule.v1beta4.SqlDataServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.instancePathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.instancePathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('instancePath', () => { + const result = client.instancePath('projectValue', 'instanceValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.instancePathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromInstanceName', () => { + const result = client.matchProjectFromInstanceName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.instancePathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchInstanceFromInstanceName', () => { + const result = client.matchInstanceFromInstanceName(fakePath); + assert.strictEqual(result, 'instanceValue'); + assert( + (client.pathTemplates.instancePathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); + }); +}); diff --git a/packages/google-cloud-sql/test/gapic_sql_databases_service_v1.ts b/packages/google-cloud-sql/test/gapic_sql_databases_service_v1.ts index cca0b07a3c6..15097fddb20 100644 --- a/packages/google-cloud-sql/test/gapic_sql_databases_service_v1.ts +++ b/packages/google-cloud-sql/test/gapic_sql_databases_service_v1.ts @@ -19,1191 +19,1549 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqldatabasesserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1.SqlDatabasesServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = + new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('has universeDomain', () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); + it('has universeDomain', () => { + const client = + new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqldatabasesserviceModule.v1.SqlDatabasesServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqldatabasesserviceModule.v1.SqlDatabasesServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqldatabasesserviceModule.v1.SqlDatabasesServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqldatabasesserviceModule.v1.SqlDatabasesServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { universeDomain: 'example.com' }, + ); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { universe_domain: 'example.com' }, + ); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } + }); - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ + universeDomain: 'configured.example.com', }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - - it('has port', () => { - const port = sqldatabasesserviceModule.v1.SqlDatabasesServiceClient.port; - assert(port); - assert(typeof port === 'number'); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('should create a client with no option', () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient(); - assert(client); - }); + it('has port', () => { + const port = sqldatabasesserviceModule.v1.SqlDatabasesServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('should create a client with gRPC fallback', () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - fallback: true, - }); - assert(client); - }); + it('should create a client with no option', () => { + const client = + new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient(); + assert(client); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlDatabasesServiceStub, undefined); - await client.initialize(); - assert(client.sqlDatabasesServiceStub); - }); + it('should create a client with gRPC fallback', () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + fallback: true, + }, + ); + assert(client); + }); - it('has close method for the initialized client', done => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlDatabasesServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('has initialize method and supports deferred initialization', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + assert.strictEqual(client.sqlDatabasesServiceStub, undefined); + await client.initialize(); + assert(client.sqlDatabasesServiceStub); + }); - it('has close method for the non-initialized client', done => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlDatabasesServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the initialized client', (done) => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlDatabasesServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has close method for the non-initialized client', (done) => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + assert.strictEqual(client.sqlDatabasesServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); - }); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); }); - describe('delete', () => { - it('invokes delete without error', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesDeleteRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.delete = stubSimpleCall(expectedResponse); - const [response] = await client.delete(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); + }); + }); - it('invokes delete without error using callback', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesDeleteRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.delete = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.delete( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('delete', () => { + it('invokes delete without error', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesDeleteRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.delete = stubSimpleCall(expectedResponse); + const [response] = await client.delete(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes delete with error', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesDeleteRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.delete(request), expectedError); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes delete without error using callback', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesDeleteRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.delete = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.delete( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes delete with closed client', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesDeleteRequest', ['database']); - request.database = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.delete(request), expectedError); - }); + it('invokes delete with error', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesDeleteRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.delete(request), expectedError); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('get', () => { - it('invokes get without error', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesGetRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Database() - ); - client.innerApiCalls.get = stubSimpleCall(expectedResponse); - const [response] = await client.get(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes delete with closed client', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesDeleteRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.delete(request), expectedError); + }); + }); - it('invokes get without error using callback', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesGetRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Database() - ); - client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.get( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IDatabase|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('get', () => { + it('invokes get without error', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesGetRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Database(), + ); + client.innerApiCalls.get = stubSimpleCall(expectedResponse); + const [response] = await client.get(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes get with error', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesGetRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.get(request), expectedError); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes get without error using callback', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesGetRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Database(), + ); + client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.get( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IDatabase | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes get with closed client', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesGetRequest', ['database']); - request.database = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.get(request), expectedError); - }); + it('invokes get with error', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesGetRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.get(request), expectedError); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('insert', () => { - it('invokes insert without error', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.insert = stubSimpleCall(expectedResponse); - const [response] = await client.insert(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes get with closed client', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesGetRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.get(request), expectedError); + }); + }); - it('invokes insert without error using callback', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.insert = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.insert( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('insert', () => { + it('invokes insert without error', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.insert = stubSimpleCall(expectedResponse); + const [response] = await client.insert(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes insert with error', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.insert(request), expectedError); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes insert without error using callback', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.insert = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.insert( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes insert with closed client', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.insert(request), expectedError); - }); + it('invokes insert with error', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.insert(request), expectedError); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('list', () => { - it('invokes list without error', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.DatabasesListResponse() - ); - client.innerApiCalls.list = stubSimpleCall(expectedResponse); - const [response] = await client.list(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes insert with closed client', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.insert(request), expectedError); + }); + }); - it('invokes list without error using callback', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.DatabasesListResponse() - ); - client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.list( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IDatabasesListResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('list', () => { + it('invokes list without error', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.DatabasesListResponse(), + ); + client.innerApiCalls.list = stubSimpleCall(expectedResponse); + const [response] = await client.list(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list with error', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.list(request), expectedError); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes list without error using callback', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.DatabasesListResponse(), + ); + client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.list( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IDatabasesListResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list with closed client', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesListRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.list(request), expectedError); - }); + it('invokes list with error', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.list(request), expectedError); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('patch', () => { - it('invokes patch without error', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.patch = stubSimpleCall(expectedResponse); - const [response] = await client.patch(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes list with closed client', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.list(request), expectedError); + }); + }); - it('invokes patch without error using callback', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.patch = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.patch( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('patch', () => { + it('invokes patch without error', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.patch = stubSimpleCall(expectedResponse); + const [response] = await client.patch(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.patch as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.patch as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes patch with error', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.patch = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.patch(request), expectedError); - const actualRequest = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes patch without error using callback', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.patch = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.patch( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.patch as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.patch as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes patch with closed client', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['database']); - request.database = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.patch(request), expectedError); - }); + it('invokes patch with error', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.patch = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.patch(request), expectedError); + const actualRequest = (client.innerApiCalls.patch as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.patch as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('update', () => { - it('invokes update without error', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.update = stubSimpleCall(expectedResponse); - const [response] = await client.update(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes patch with closed client', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.patch(request), expectedError); + }); + }); - it('invokes update without error using callback', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.update = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.update( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('update', () => { + it('invokes update without error', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.update = stubSimpleCall(expectedResponse); + const [response] = await client.update(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes update with error', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.update = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.update(request), expectedError); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes update without error using callback', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.update = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.update( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes update with closed client', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlDatabasesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlDatabasesUpdateRequest', ['database']); - request.database = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.update(request), expectedError); - }); + it('invokes update with error', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.update = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.update(request), expectedError); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + + it('invokes update with closed client', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlDatabasesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlDatabasesUpdateRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.update(request), expectedError); }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + it('invokes getLocation without error using callback', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); }); + it('invokes getLocation with error', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); - describe('Path templates', () => { - - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = new sqldatabasesserviceModule.v1.SqlDatabasesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_databases_service_v1beta4.ts b/packages/google-cloud-sql/test/gapic_sql_databases_service_v1beta4.ts index 888634ab024..3f9edfa3300 100644 --- a/packages/google-cloud-sql/test/gapic_sql_databases_service_v1beta4.ts +++ b/packages/google-cloud-sql/test/gapic_sql_databases_service_v1beta4.ts @@ -19,1221 +19,1557 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqldatabasesserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1beta4.SqlDatabasesServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('has universeDomain', () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); + it('has universeDomain', () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient + .servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient + .apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + universeDomain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + universe_domain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } + }); - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + universeDomain: 'configured.example.com', }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - - it('has port', () => { - const port = sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient.port; - assert(port); - assert(typeof port === 'number'); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('should create a client with no option', () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient(); - assert(client); - }); + it('has port', () => { + const port = + sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('should create a client with gRPC fallback', () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - fallback: true, - }); - assert(client); + it('should create a client with no option', () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient(); + assert(client); + }); + + it('should create a client with gRPC fallback', () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + fallback: true, }); + assert(client); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlDatabasesServiceStub, undefined); - await client.initialize(); - assert(client.sqlDatabasesServiceStub); + it('has initialize method and supports deferred initialization', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + assert.strictEqual(client.sqlDatabasesServiceStub, undefined); + await client.initialize(); + assert(client.sqlDatabasesServiceStub); + }); - it('has close method for the initialized client', done => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlDatabasesServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the initialized client', (done) => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlDatabasesServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; + }); + }); - it('has close method for the non-initialized client', done => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlDatabasesServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the non-initialized client', (done) => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + assert.strictEqual(client.sqlDatabasesServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; + }); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); }); + }); - describe('delete', () => { - it('invokes delete without error', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.delete = stubSimpleCall(expectedResponse); - const [response] = await client.delete(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + describe('delete', () => { + it('invokes delete without error', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.delete = stubSimpleCall(expectedResponse); + const [response] = await client.delete(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes delete without error using callback', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.delete = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.delete( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes delete without error using callback', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.delete = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.delete( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes delete with error', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.delete(request), expectedError); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes delete with error', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.delete(request), expectedError); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes delete with closed client', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', ['database']); - request.database = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.delete(request), expectedError); + it('invokes delete with closed client', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesDeleteRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.delete(request), expectedError); }); + }); - describe('get', () => { - it('invokes get without error', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Database() - ); - client.innerApiCalls.get = stubSimpleCall(expectedResponse); - const [response] = await client.get(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + describe('get', () => { + it('invokes get without error', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Database(), + ); + client.innerApiCalls.get = stubSimpleCall(expectedResponse); + const [response] = await client.get(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes get without error using callback', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Database() - ); - client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.get( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IDatabase|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes get without error using callback', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Database(), + ); + client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.get( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IDatabase | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes get with error', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.get(request), expectedError); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes get with error', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.get(request), expectedError); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes get with closed client', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', ['database']); - request.database = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.get(request), expectedError); + it('invokes get with closed client', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesGetRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.get(request), expectedError); }); + }); - describe('insert', () => { - it('invokes insert without error', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.insert = stubSimpleCall(expectedResponse); - const [response] = await client.insert(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + describe('insert', () => { + it('invokes insert without error', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.insert = stubSimpleCall(expectedResponse); + const [response] = await client.insert(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes insert without error using callback', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.insert = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.insert( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes insert without error using callback', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.insert = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.insert( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes insert with error', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.insert(request), expectedError); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes insert with error', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.insert(request), expectedError); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes insert with closed client', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.insert(request), expectedError); + it('invokes insert with closed client', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.insert(request), expectedError); }); + }); - describe('list', () => { - it('invokes list without error', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.DatabasesListResponse() - ); - client.innerApiCalls.list = stubSimpleCall(expectedResponse); - const [response] = await client.list(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + describe('list', () => { + it('invokes list without error', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.DatabasesListResponse(), + ); + client.innerApiCalls.list = stubSimpleCall(expectedResponse); + const [response] = await client.list(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list without error using callback', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.DatabasesListResponse() - ); - client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.list( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IDatabasesListResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes list without error using callback', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.DatabasesListResponse(), + ); + client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.list( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IDatabasesListResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list with error', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.list(request), expectedError); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes list with error', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.list(request), expectedError); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list with closed client', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesListRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.list(request), expectedError); + it('invokes list with closed client', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.list(request), expectedError); }); + }); - describe('patch', () => { - it('invokes patch without error', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.patch = stubSimpleCall(expectedResponse); - const [response] = await client.patch(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + describe('patch', () => { + it('invokes patch without error', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.patch = stubSimpleCall(expectedResponse); + const [response] = await client.patch(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.patch as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.patch as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes patch without error using callback', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.patch = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.patch( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes patch without error using callback', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.patch = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.patch( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.patch as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.patch as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes patch with error', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.patch = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.patch(request), expectedError); - const actualRequest = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes patch with error', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.patch = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.patch(request), expectedError); + const actualRequest = (client.innerApiCalls.patch as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.patch as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes patch with closed client', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['database']); - request.database = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.patch(request), expectedError); + it('invokes patch with closed client', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.patch(request), expectedError); }); + }); - describe('update', () => { - it('invokes update without error', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.update = stubSimpleCall(expectedResponse); - const [response] = await client.update(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + describe('update', () => { + it('invokes update without error', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.update = stubSimpleCall(expectedResponse); + const [response] = await client.update(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes update without error using callback', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.update = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.update( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes update without error using callback', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.update = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.update( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes update with error', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['database']); - request.database = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&database=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.update = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.update(request), expectedError); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes update with error', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&database=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.update = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.update(request), expectedError); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes update with closed client', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', ['database']); - request.database = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.update(request), expectedError); + it('invokes update with closed client', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlDatabasesUpdateRequest', + ['database'], + ); + request.database = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.update(request), expectedError); }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); - it('invokes getLocation without error using callback', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + it('invokes getLocation without error using callback', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); - it('invokes getLocation with error', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); + }); + it('invokes getLocation with error', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); }); + }); - describe('Path templates', () => { + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + describe('project', async () => { + const fakePath = '/rendered/path/project'; + const expectedParameters = { + project: 'projectValue', + }; + const client = + new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + client.pathTemplates.projectPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.projectPathTemplate.match = sinon + .stub() + .returns(expectedParameters); - describe('project', async () => { - const fakePath = "/rendered/path/project"; - const expectedParameters = { - project: "projectValue", - }; - const client = new sqldatabasesserviceModule.v1beta4.SqlDatabasesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.projectPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.projectPathTemplate.match = - sinon.stub().returns(expectedParameters); + it('projectPath', () => { + const result = client.projectPath('projectValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.projectPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); - it('projectPath', () => { - const result = client.projectPath("projectValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.projectPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromProjectName', () => { - const result = client.matchProjectFromProjectName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.projectPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('matchProjectFromProjectName', () => { + const result = client.matchProjectFromProjectName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.projectPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_feature_eligibility_service_v1.ts b/packages/google-cloud-sql/test/gapic_sql_feature_eligibility_service_v1.ts index 1b943f35d8e..b8f469f7bc3 100644 --- a/packages/google-cloud-sql/test/gapic_sql_feature_eligibility_service_v1.ts +++ b/packages/google-cloud-sql/test/gapic_sql_feature_eligibility_service_v1.ts @@ -19,419 +19,547 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqlfeatureeligibilityserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1.SqlFeatureEligibilityServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('has universeDomain', () => { - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); + it('has universeDomain', () => { + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqlfeatureeligibilityserviceModule.v1 + .SqlFeatureEligibilityServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); - - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqlfeatureeligibilityserviceModule.v1 + .SqlFeatureEligibilityServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient( + { universeDomain: 'example.com' }, + ); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient( + { universe_domain: 'example.com' }, + ); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - it('has port', () => { - const port = sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient.port; - assert(port); - assert(typeof port === 'number'); + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient( + { universeDomain: 'configured.example.com' }, + ); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient( + { universe_domain: 'example.com', universeDomain: 'example.net' }, + ); + }); + }); - it('should create a client with no option', () => { - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient(); - assert(client); - }); + it('has port', () => { + const port = + sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient + .port; + assert(port); + assert(typeof port === 'number'); + }); - it('should create a client with gRPC fallback', () => { - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient({ - fallback: true, - }); - assert(client); - }); + it('should create a client with no option', () => { + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient(); + assert(client); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlFeatureEligibilityServiceStub, undefined); - await client.initialize(); - assert(client.sqlFeatureEligibilityServiceStub); - }); + it('should create a client with gRPC fallback', () => { + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient( + { + fallback: true, + }, + ); + assert(client); + }); - it('has close method for the initialized client', done => { - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlFeatureEligibilityServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('has initialize method and supports deferred initialization', async () => { + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + assert.strictEqual(client.sqlFeatureEligibilityServiceStub, undefined); + await client.initialize(); + assert(client.sqlFeatureEligibilityServiceStub); + }); - it('has close method for the non-initialized client', done => { - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlFeatureEligibilityServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the initialized client', (done) => { + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlFeatureEligibilityServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has close method for the non-initialized client', (done) => { + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + assert.strictEqual(client.sqlFeatureEligibilityServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); - }); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); + + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + it('invokes getLocation without error using callback', async () => { + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); }); + it('invokes getLocation with error', async () => { + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); - describe('Path templates', () => { - - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = + new sqlfeatureeligibilityserviceModule.v1.SqlFeatureEligibilityServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_flags_service_v1.ts b/packages/google-cloud-sql/test/gapic_sql_flags_service_v1.ts index be1385ccd32..09b5fbd0667 100644 --- a/packages/google-cloud-sql/test/gapic_sql_flags_service_v1.ts +++ b/packages/google-cloud-sql/test/gapic_sql_flags_service_v1.ts @@ -19,498 +19,591 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqlflagsserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1.SqlFlagsServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('has universeDomain', () => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); + it('has universeDomain', () => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqlflagsserviceModule.v1.SqlFlagsServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqlflagsserviceModule.v1.SqlFlagsServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqlflagsserviceModule.v1.SqlFlagsServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + universeDomain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqlflagsserviceModule.v1.SqlFlagsServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + universe_domain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqlflagsserviceModule.v1.SqlFlagsServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + universeDomain: 'configured.example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - - it('has port', () => { - const port = sqlflagsserviceModule.v1.SqlFlagsServiceClient.port; - assert(port); - assert(typeof port === 'number'); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('should create a client with no option', () => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient(); - assert(client); - }); + it('has port', () => { + const port = sqlflagsserviceModule.v1.SqlFlagsServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('should create a client with gRPC fallback', () => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ - fallback: true, - }); - assert(client); - }); + it('should create a client with no option', () => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient(); + assert(client); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlFlagsServiceStub, undefined); - await client.initialize(); - assert(client.sqlFlagsServiceStub); - }); + it('should create a client with gRPC fallback', () => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + fallback: true, + }); + assert(client); + }); - it('has close method for the initialized client', done => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlFlagsServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('has initialize method and supports deferred initialization', async () => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlFlagsServiceStub, undefined); + await client.initialize(); + assert(client.sqlFlagsServiceStub); + }); - it('has close method for the non-initialized client', done => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlFlagsServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the initialized client', (done) => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlFlagsServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has close method for the non-initialized client', (done) => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlFlagsServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); - }); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); }); - describe('list', () => { - it('invokes list without error', async () => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlFlagsListRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.FlagsListResponse() - ); - client.innerApiCalls.list = stubSimpleCall(expectedResponse); - const [response] = await client.list(request); - assert.deepStrictEqual(response, expectedResponse); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); + }); + }); + + describe('list', () => { + it('invokes list without error', async () => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlFlagsListRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.FlagsListResponse(), + ); + client.innerApiCalls.list = stubSimpleCall(expectedResponse); + const [response] = await client.list(request); + assert.deepStrictEqual(response, expectedResponse); + }); - it('invokes list without error using callback', async () => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlFlagsListRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.FlagsListResponse() - ); - client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.list( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IFlagsListResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - }); + it('invokes list without error using callback', async () => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlFlagsListRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.FlagsListResponse(), + ); + client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.list( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IFlagsListResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + }); - it('invokes list with error', async () => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlFlagsListRequest() - ); - const expectedError = new Error('expected'); - client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.list(request), expectedError); - }); + it('invokes list with error', async () => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlFlagsListRequest(), + ); + const expectedError = new Error('expected'); + client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.list(request), expectedError); + }); - it('invokes list with closed client', async () => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlFlagsListRequest() - ); - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.list(request), expectedError); - }); + it('invokes list with closed client', async () => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlFlagsListRequest(), + ); + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.list(request), expectedError); }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('invokes getLocation without error using callback', async () => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); }); - - describe('Path templates', () => { - - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('invokes getLocation with error', async () => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); + + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = new sqlflagsserviceModule.v1.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_flags_service_v1beta4.ts b/packages/google-cloud-sql/test/gapic_sql_flags_service_v1beta4.ts index 0d1278673cc..4e37b9e1b3e 100644 --- a/packages/google-cloud-sql/test/gapic_sql_flags_service_v1beta4.ts +++ b/packages/google-cloud-sql/test/gapic_sql_flags_service_v1beta4.ts @@ -19,528 +19,631 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqlflagsserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1beta4.SqlFlagsServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('has universeDomain', () => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); + it('has universeDomain', () => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + universeDomain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + universe_domain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + universeDomain: 'configured.example.com', }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - - it('has port', () => { - const port = sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient.port; - assert(port); - assert(typeof port === 'number'); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('should create a client with no option', () => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient(); - assert(client); - }); + it('has port', () => { + const port = sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('should create a client with gRPC fallback', () => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ - fallback: true, - }); - assert(client); - }); + it('should create a client with no option', () => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient(); + assert(client); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlFlagsServiceStub, undefined); - await client.initialize(); - assert(client.sqlFlagsServiceStub); - }); + it('should create a client with gRPC fallback', () => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + fallback: true, + }); + assert(client); + }); - it('has close method for the initialized client', done => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlFlagsServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('has initialize method and supports deferred initialization', async () => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlFlagsServiceStub, undefined); + await client.initialize(); + assert(client.sqlFlagsServiceStub); + }); - it('has close method for the non-initialized client', done => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlFlagsServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the initialized client', (done) => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlFlagsServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has close method for the non-initialized client', (done) => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlFlagsServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); - }); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); }); - describe('list', () => { - it('invokes list without error', async () => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlFlagsListRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.FlagsListResponse() - ); - client.innerApiCalls.list = stubSimpleCall(expectedResponse); - const [response] = await client.list(request); - assert.deepStrictEqual(response, expectedResponse); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); + }); + }); + + describe('list', () => { + it('invokes list without error', async () => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlFlagsListRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.FlagsListResponse(), + ); + client.innerApiCalls.list = stubSimpleCall(expectedResponse); + const [response] = await client.list(request); + assert.deepStrictEqual(response, expectedResponse); + }); - it('invokes list without error using callback', async () => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlFlagsListRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.FlagsListResponse() - ); - client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.list( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IFlagsListResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - }); + it('invokes list without error using callback', async () => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlFlagsListRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.FlagsListResponse(), + ); + client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.list( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IFlagsListResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + }); - it('invokes list with error', async () => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlFlagsListRequest() - ); - const expectedError = new Error('expected'); - client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.list(request), expectedError); - }); + it('invokes list with error', async () => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlFlagsListRequest(), + ); + const expectedError = new Error('expected'); + client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.list(request), expectedError); + }); - it('invokes list with closed client', async () => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlFlagsListRequest() - ); - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.list(request), expectedError); - }); + it('invokes list with closed client', async () => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlFlagsListRequest(), + ); + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.list(request), expectedError); }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('invokes getLocation without error using callback', async () => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); + }); + it('invokes getLocation with error', async () => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); + + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); - describe('Path templates', () => { - - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); - - describe('project', async () => { - const fakePath = "/rendered/path/project"; - const expectedParameters = { - project: "projectValue", - }; - const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.projectPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.projectPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('projectPath', () => { - const result = client.projectPath("projectValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.projectPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromProjectName', () => { - const result = client.matchProjectFromProjectName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.projectPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('project', async () => { + const fakePath = '/rendered/path/project'; + const expectedParameters = { + project: 'projectValue', + }; + const client = new sqlflagsserviceModule.v1beta4.SqlFlagsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.projectPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.projectPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('projectPath', () => { + const result = client.projectPath('projectValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.projectPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromProjectName', () => { + const result = client.matchProjectFromProjectName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.projectPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_instances_service_v1.ts b/packages/google-cloud-sql/test/gapic_sql_instances_service_v1.ts index 3e9991b4257..03dbe2acbf2 100644 --- a/packages/google-cloud-sql/test/gapic_sql_instances_service_v1.ts +++ b/packages/google-cloud-sql/test/gapic_sql_instances_service_v1.ts @@ -19,5609 +19,7460 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqlinstancesserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1.SqlInstancesServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = + new sqlinstancesserviceModule.v1.SqlInstancesServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('has universeDomain', () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); + it('has universeDomain', () => { + const client = + new sqlinstancesserviceModule.v1.SqlInstancesServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqlinstancesserviceModule.v1.SqlInstancesServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqlinstancesserviceModule.v1.SqlInstancesServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqlinstancesserviceModule.v1.SqlInstancesServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { universeDomain: 'example.com' }, + ); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqlinstancesserviceModule.v1.SqlInstancesServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { universe_domain: 'example.com' }, + ); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlinstancesserviceModule.v1.SqlInstancesServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } + }); + + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ + universeDomain: 'configured.example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } + }); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); - }); + it('has port', () => { + const port = sqlinstancesserviceModule.v1.SqlInstancesServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('has port', () => { - const port = sqlinstancesserviceModule.v1.SqlInstancesServiceClient.port; - assert(port); - assert(typeof port === 'number'); - }); + it('should create a client with no option', () => { + const client = + new sqlinstancesserviceModule.v1.SqlInstancesServiceClient(); + assert(client); + }); - it('should create a client with no option', () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient(); - assert(client); - }); + it('should create a client with gRPC fallback', () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + fallback: true, + }, + ); + assert(client); + }); - it('should create a client with gRPC fallback', () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - fallback: true, - }); - assert(client); - }); + it('has initialize method and supports deferred initialization', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + assert.strictEqual(client.sqlInstancesServiceStub, undefined); + await client.initialize(); + assert(client.sqlInstancesServiceStub); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlInstancesServiceStub, undefined); - await client.initialize(); - assert(client.sqlInstancesServiceStub); + it('has close method for the initialized client', (done) => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlInstancesServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has close method for the initialized client', done => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlInstancesServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the non-initialized client', (done) => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + assert.strictEqual(client.sqlInstancesServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has close method for the non-initialized client', done => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlInstancesServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); - }); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } + }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); + }); + }); + + describe('addServerCa', () => { + it('invokes addServerCa without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAddServerCaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddServerCaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddServerCaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.addServerCa = stubSimpleCall(expectedResponse); + const [response] = await client.addServerCa(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.addServerCa as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addServerCa as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); - }); + it('invokes addServerCa without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAddServerCaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddServerCaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddServerCaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.addServerCa = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.addServerCa( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.addServerCa as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addServerCa as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('addServerCa', () => { - it('invokes addServerCa without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAddServerCaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddServerCaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddServerCaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.addServerCa = stubSimpleCall(expectedResponse); - const [response] = await client.addServerCa(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.addServerCa as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addServerCa as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes addServerCa with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAddServerCaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddServerCaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddServerCaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.addServerCa = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.addServerCa(request), expectedError); + const actualRequest = ( + client.innerApiCalls.addServerCa as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addServerCa as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes addServerCa without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAddServerCaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddServerCaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddServerCaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.addServerCa = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.addServerCa( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.addServerCa as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addServerCa as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes addServerCa with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAddServerCaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddServerCaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddServerCaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.addServerCa(request), expectedError); + }); + }); + + describe('addServerCertificate', () => { + it('invokes addServerCertificate without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.addServerCertificate = + stubSimpleCall(expectedResponse); + const [response] = await client.addServerCertificate(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.addServerCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addServerCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes addServerCa with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAddServerCaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddServerCaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddServerCaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.addServerCa = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.addServerCa(request), expectedError); - const actualRequest = (client.innerApiCalls.addServerCa as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addServerCa as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes addServerCertificate without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.addServerCertificate = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.addServerCertificate( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.addServerCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addServerCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes addServerCa with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAddServerCaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddServerCaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddServerCaRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.addServerCa(request), expectedError); - }); + it('invokes addServerCertificate with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.addServerCertificate = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.addServerCertificate(request), expectedError); + const actualRequest = ( + client.innerApiCalls.addServerCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addServerCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('addServerCertificate', () => { - it('invokes addServerCertificate without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.addServerCertificate = stubSimpleCall(expectedResponse); - const [response] = await client.addServerCertificate(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.addServerCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addServerCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes addServerCertificate with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.addServerCertificate(request), expectedError); + }); + }); + + describe('addEntraIdCertificate', () => { + it('invokes addEntraIdCertificate without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.addEntraIdCertificate = + stubSimpleCall(expectedResponse); + const [response] = await client.addEntraIdCertificate(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.addEntraIdCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addEntraIdCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes addServerCertificate without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.addServerCertificate = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.addServerCertificate( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.addServerCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addServerCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes addEntraIdCertificate without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.addEntraIdCertificate = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.addEntraIdCertificate( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.addEntraIdCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addEntraIdCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes addServerCertificate with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.addServerCertificate = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.addServerCertificate(request), expectedError); - const actualRequest = (client.innerApiCalls.addServerCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addServerCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes addEntraIdCertificate with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.addEntraIdCertificate = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.addEntraIdCertificate(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.addEntraIdCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addEntraIdCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes addServerCertificate with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.addServerCertificate(request), expectedError); - }); + it('invokes addEntraIdCertificate with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.addEntraIdCertificate(request), + expectedError, + ); + }); + }); + + describe('clone', () => { + it('invokes clone without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesCloneRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesCloneRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesCloneRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.clone = stubSimpleCall(expectedResponse); + const [response] = await client.clone(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.clone as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.clone as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('addEntraIdCertificate', () => { - it('invokes addEntraIdCertificate without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.addEntraIdCertificate = stubSimpleCall(expectedResponse); - const [response] = await client.addEntraIdCertificate(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.addEntraIdCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addEntraIdCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes clone without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesCloneRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesCloneRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesCloneRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.clone = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.clone( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.clone as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.clone as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes addEntraIdCertificate without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.addEntraIdCertificate = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.addEntraIdCertificate( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.addEntraIdCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addEntraIdCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes clone with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesCloneRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesCloneRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesCloneRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.clone = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.clone(request), expectedError); + const actualRequest = (client.innerApiCalls.clone as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.clone as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes addEntraIdCertificate with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.addEntraIdCertificate = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.addEntraIdCertificate(request), expectedError); - const actualRequest = (client.innerApiCalls.addEntraIdCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addEntraIdCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes clone with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesCloneRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesCloneRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesCloneRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.clone(request), expectedError); + }); + }); + + describe('delete', () => { + it('invokes delete without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.delete = stubSimpleCall(expectedResponse); + const [response] = await client.delete(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes addEntraIdCertificate with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.addEntraIdCertificate(request), expectedError); - }); + it('invokes delete without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.delete = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.delete( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('clone', () => { - it('invokes clone without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesCloneRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesCloneRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesCloneRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.clone = stubSimpleCall(expectedResponse); - const [response] = await client.clone(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.clone as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.clone as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes delete with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.delete(request), expectedError); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes clone without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesCloneRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesCloneRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesCloneRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.clone = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.clone( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.clone as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.clone as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes delete with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.delete(request), expectedError); + }); + }); + + describe('demoteMaster', () => { + it('invokes demoteMaster without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.demoteMaster = stubSimpleCall(expectedResponse); + const [response] = await client.demoteMaster(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.demoteMaster as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.demoteMaster as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes clone with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesCloneRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesCloneRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesCloneRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.clone = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.clone(request), expectedError); - const actualRequest = (client.innerApiCalls.clone as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.clone as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes demoteMaster without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.demoteMaster = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.demoteMaster( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.demoteMaster as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.demoteMaster as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes clone with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesCloneRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesCloneRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesCloneRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.clone(request), expectedError); - }); + it('invokes demoteMaster with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.demoteMaster = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.demoteMaster(request), expectedError); + const actualRequest = ( + client.innerApiCalls.demoteMaster as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.demoteMaster as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('delete', () => { - it('invokes delete without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDeleteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.delete = stubSimpleCall(expectedResponse); - const [response] = await client.delete(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes demoteMaster with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.demoteMaster(request), expectedError); + }); + }); + + describe('demote', () => { + it('invokes demote without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesDemoteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDemoteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDemoteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.demote = stubSimpleCall(expectedResponse); + const [response] = await client.demote(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.demote as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.demote as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes delete without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDeleteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.delete = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.delete( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes demote without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesDemoteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDemoteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDemoteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.demote = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.demote( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.demote as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.demote as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes delete with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDeleteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.delete(request), expectedError); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes demote with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesDemoteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDemoteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDemoteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.demote = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.demote(request), expectedError); + const actualRequest = (client.innerApiCalls.demote as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.demote as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes delete with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDeleteRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.delete(request), expectedError); - }); + it('invokes demote with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesDemoteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDemoteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesDemoteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.demote(request), expectedError); + }); + }); + + describe('export', () => { + it('invokes export without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesExportRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesExportRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesExportRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.export = stubSimpleCall(expectedResponse); + const [response] = await client.export(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.export as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.export as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('demoteMaster', () => { - it('invokes demoteMaster without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.demoteMaster = stubSimpleCall(expectedResponse); - const [response] = await client.demoteMaster(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.demoteMaster as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.demoteMaster as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes export without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesExportRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesExportRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesExportRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.export = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.export( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.export as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.export as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes demoteMaster without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.demoteMaster = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.demoteMaster( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.demoteMaster as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.demoteMaster as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes export with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesExportRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesExportRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesExportRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.export = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.export(request), expectedError); + const actualRequest = (client.innerApiCalls.export as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.export as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes demoteMaster with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.demoteMaster = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.demoteMaster(request), expectedError); - const actualRequest = (client.innerApiCalls.demoteMaster as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.demoteMaster as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes export with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesExportRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesExportRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesExportRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.export(request), expectedError); + }); + }); + + describe('failover', () => { + it('invokes failover without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesFailoverRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesFailoverRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesFailoverRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.failover = stubSimpleCall(expectedResponse); + const [response] = await client.failover(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.failover as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.failover as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes demoteMaster with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.demoteMaster(request), expectedError); - }); + it('invokes failover without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesFailoverRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesFailoverRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesFailoverRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.failover = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.failover( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.failover as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.failover as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('demote', () => { - it('invokes demote without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesDemoteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDemoteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDemoteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.demote = stubSimpleCall(expectedResponse); - const [response] = await client.demote(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.demote as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.demote as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes failover with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesFailoverRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesFailoverRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesFailoverRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.failover = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.failover(request), expectedError); + const actualRequest = ( + client.innerApiCalls.failover as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.failover as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes demote without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesDemoteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDemoteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDemoteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.demote = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.demote( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.demote as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.demote as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes failover with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesFailoverRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesFailoverRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesFailoverRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.failover(request), expectedError); + }); + }); + + describe('reencrypt', () => { + it('invokes reencrypt without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesReencryptRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesReencryptRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesReencryptRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.reencrypt = stubSimpleCall(expectedResponse); + const [response] = await client.reencrypt(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.reencrypt as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.reencrypt as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes demote with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesDemoteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDemoteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDemoteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.demote = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.demote(request), expectedError); - const actualRequest = (client.innerApiCalls.demote as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.demote as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes reencrypt without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesReencryptRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesReencryptRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesReencryptRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.reencrypt = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.reencrypt( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.reencrypt as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.reencrypt as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes demote with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesDemoteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDemoteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesDemoteRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.demote(request), expectedError); - }); + it('invokes reencrypt with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesReencryptRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesReencryptRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesReencryptRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.reencrypt = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.reencrypt(request), expectedError); + const actualRequest = ( + client.innerApiCalls.reencrypt as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.reencrypt as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('export', () => { - it('invokes export without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesExportRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesExportRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesExportRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.export = stubSimpleCall(expectedResponse); - const [response] = await client.export(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.export as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.export as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes reencrypt with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesReencryptRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesReencryptRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesReencryptRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.reencrypt(request), expectedError); + }); + }); + + describe('get', () => { + it('invokes get without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.DatabaseInstance(), + ); + client.innerApiCalls.get = stubSimpleCall(expectedResponse); + const [response] = await client.get(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes export without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesExportRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesExportRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesExportRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.export = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.export( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.export as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.export as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes get without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.DatabaseInstance(), + ); + client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.get( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IDatabaseInstance | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes export with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesExportRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesExportRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesExportRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.export = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.export(request), expectedError); - const actualRequest = (client.innerApiCalls.export as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.export as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes get with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.get(request), expectedError); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes export with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesExportRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesExportRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesExportRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.export(request), expectedError); - }); + it('invokes get with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.get(request), expectedError); + }); + }); + + describe('import', () => { + it('invokes import without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesImportRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesImportRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesImportRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.import = stubSimpleCall(expectedResponse); + const [response] = await client.import(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.import as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.import as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('failover', () => { - it('invokes failover without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesFailoverRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesFailoverRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesFailoverRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.failover = stubSimpleCall(expectedResponse); - const [response] = await client.failover(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.failover as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.failover as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes import without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesImportRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesImportRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesImportRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.import = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.import( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.import as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.import as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes failover without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesFailoverRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesFailoverRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesFailoverRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.failover = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.failover( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.failover as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.failover as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes import with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesImportRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesImportRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesImportRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.import = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.import(request), expectedError); + const actualRequest = (client.innerApiCalls.import as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.import as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes failover with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesFailoverRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesFailoverRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesFailoverRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.failover = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.failover(request), expectedError); - const actualRequest = (client.innerApiCalls.failover as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.failover as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes import with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesImportRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesImportRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesImportRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.import(request), expectedError); + }); + }); + + describe('insert', () => { + it('invokes insert without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.insert = stubSimpleCall(expectedResponse); + const [response] = await client.insert(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes failover with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesFailoverRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesFailoverRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesFailoverRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.failover(request), expectedError); - }); + it('invokes insert without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.insert = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.insert( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('reencrypt', () => { - it('invokes reencrypt without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesReencryptRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesReencryptRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesReencryptRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.reencrypt = stubSimpleCall(expectedResponse); - const [response] = await client.reencrypt(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.reencrypt as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.reencrypt as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes insert with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.insert(request), expectedError); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes reencrypt without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesReencryptRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesReencryptRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesReencryptRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.reencrypt = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.reencrypt( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.reencrypt as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.reencrypt as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes insert with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.insert(request), expectedError); + }); + }); + + describe('list', () => { + it('invokes list without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.InstancesListResponse(), + ); + client.innerApiCalls.list = stubSimpleCall(expectedResponse); + const [response] = await client.list(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes reencrypt with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesReencryptRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesReencryptRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesReencryptRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.reencrypt = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.reencrypt(request), expectedError); - const actualRequest = (client.innerApiCalls.reencrypt as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.reencrypt as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes list without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.InstancesListResponse(), + ); + client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.list( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IInstancesListResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes reencrypt with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesReencryptRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesReencryptRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesReencryptRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.reencrypt(request), expectedError); - }); + it('invokes list with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.list(request), expectedError); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('get', () => { - it('invokes get without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.DatabaseInstance() - ); - client.innerApiCalls.get = stubSimpleCall(expectedResponse); - const [response] = await client.get(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes list with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.list(request), expectedError); + }); + }); + + describe('listServerCas', () => { + it('invokes listServerCas without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesListServerCasRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListServerCasRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListServerCasRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.InstancesListServerCasResponse(), + ); + client.innerApiCalls.listServerCas = stubSimpleCall(expectedResponse); + const [response] = await client.listServerCas(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listServerCas as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listServerCas as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes get without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.DatabaseInstance() - ); - client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.get( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IDatabaseInstance|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listServerCas without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesListServerCasRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListServerCasRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListServerCasRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.InstancesListServerCasResponse(), + ); + client.innerApiCalls.listServerCas = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listServerCas( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IInstancesListServerCasResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listServerCas as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listServerCas as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes get with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.get(request), expectedError); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listServerCas with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesListServerCasRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListServerCasRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListServerCasRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listServerCas = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.listServerCas(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listServerCas as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listServerCas as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes get with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.get(request), expectedError); - }); + it('invokes listServerCas with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesListServerCasRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListServerCasRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListServerCasRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.listServerCas(request), expectedError); + }); + }); + + describe('listServerCertificates', () => { + it('invokes listServerCertificates without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.InstancesListServerCertificatesResponse(), + ); + client.innerApiCalls.listServerCertificates = + stubSimpleCall(expectedResponse); + const [response] = await client.listServerCertificates(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listServerCertificates as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listServerCertificates as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('import', () => { - it('invokes import without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesImportRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesImportRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesImportRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.import = stubSimpleCall(expectedResponse); - const [response] = await client.import(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.import as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.import as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listServerCertificates without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.InstancesListServerCertificatesResponse(), + ); + client.innerApiCalls.listServerCertificates = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listServerCertificates( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IInstancesListServerCertificatesResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listServerCertificates as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listServerCertificates as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes import without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesImportRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesImportRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesImportRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.import = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.import( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.import as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.import as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listServerCertificates with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listServerCertificates = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.listServerCertificates(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.listServerCertificates as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listServerCertificates as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes import with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesImportRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesImportRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesImportRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.import = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.import(request), expectedError); - const actualRequest = (client.innerApiCalls.import as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.import as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listServerCertificates with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.listServerCertificates(request), + expectedError, + ); + }); + }); + + describe('listEntraIdCertificates', () => { + it('invokes listEntraIdCertificates without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.InstancesListEntraIdCertificatesResponse(), + ); + client.innerApiCalls.listEntraIdCertificates = + stubSimpleCall(expectedResponse); + const [response] = await client.listEntraIdCertificates(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listEntraIdCertificates as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listEntraIdCertificates as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes import with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesImportRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesImportRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesImportRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.import(request), expectedError); - }); + it('invokes listEntraIdCertificates without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.InstancesListEntraIdCertificatesResponse(), + ); + client.innerApiCalls.listEntraIdCertificates = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listEntraIdCertificates( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IInstancesListEntraIdCertificatesResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listEntraIdCertificates as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listEntraIdCertificates as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('insert', () => { - it('invokes insert without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesInsertRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.insert = stubSimpleCall(expectedResponse); - const [response] = await client.insert(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listEntraIdCertificates with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listEntraIdCertificates = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.listEntraIdCertificates(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.listEntraIdCertificates as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listEntraIdCertificates as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes insert without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesInsertRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.insert = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.insert( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listEntraIdCertificates with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.listEntraIdCertificates(request), + expectedError, + ); + }); + }); + + describe('patch', () => { + it('invokes patch without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPatchRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPatchRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPatchRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.patch = stubSimpleCall(expectedResponse); + const [response] = await client.patch(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.patch as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.patch as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes insert with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesInsertRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.insert(request), expectedError); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes patch without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPatchRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPatchRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPatchRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.patch = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.patch( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.patch as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.patch as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes insert with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesInsertRequest', ['project']); - request.project = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.insert(request), expectedError); - }); + it('invokes patch with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPatchRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPatchRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPatchRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.patch = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.patch(request), expectedError); + const actualRequest = (client.innerApiCalls.patch as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.patch as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('list', () => { - it('invokes list without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.InstancesListResponse() - ); - client.innerApiCalls.list = stubSimpleCall(expectedResponse); - const [response] = await client.list(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes patch with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPatchRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPatchRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPatchRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.patch(request), expectedError); + }); + }); + + describe('promoteReplica', () => { + it('invokes promoteReplica without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.promoteReplica = stubSimpleCall(expectedResponse); + const [response] = await client.promoteReplica(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.promoteReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.promoteReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.InstancesListResponse() - ); - client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.list( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IInstancesListResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes promoteReplica without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.promoteReplica = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.promoteReplica( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.promoteReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.promoteReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.list(request), expectedError); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes promoteReplica with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.promoteReplica = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.promoteReplica(request), expectedError); + const actualRequest = ( + client.innerApiCalls.promoteReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.promoteReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListRequest', ['project']); - request.project = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.list(request), expectedError); - }); + it('invokes promoteReplica with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.promoteReplica(request), expectedError); + }); + }); + + describe('switchover', () => { + it('invokes switchover without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesSwitchoverRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesSwitchoverRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesSwitchoverRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.switchover = stubSimpleCall(expectedResponse); + const [response] = await client.switchover(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.switchover as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.switchover as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('listServerCas', () => { - it('invokes listServerCas without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesListServerCasRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListServerCasRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListServerCasRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.InstancesListServerCasResponse() - ); - client.innerApiCalls.listServerCas = stubSimpleCall(expectedResponse); - const [response] = await client.listServerCas(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listServerCas as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listServerCas as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes switchover without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesSwitchoverRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesSwitchoverRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesSwitchoverRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.switchover = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.switchover( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.switchover as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.switchover as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes listServerCas without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesListServerCasRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListServerCasRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListServerCasRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.InstancesListServerCasResponse() - ); - client.innerApiCalls.listServerCas = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listServerCas( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IInstancesListServerCasResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listServerCas as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listServerCas as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes switchover with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesSwitchoverRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesSwitchoverRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesSwitchoverRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.switchover = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.switchover(request), expectedError); + const actualRequest = ( + client.innerApiCalls.switchover as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.switchover as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes listServerCas with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesListServerCasRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListServerCasRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListServerCasRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listServerCas = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listServerCas(request), expectedError); - const actualRequest = (client.innerApiCalls.listServerCas as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listServerCas as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listServerCas with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesListServerCasRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListServerCasRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListServerCasRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.listServerCas(request), expectedError); - }); + it('invokes switchover with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesSwitchoverRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesSwitchoverRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesSwitchoverRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.switchover(request), expectedError); }); - - describe('listServerCertificates', () => { - it('invokes listServerCertificates without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.InstancesListServerCertificatesResponse() - ); - client.innerApiCalls.listServerCertificates = stubSimpleCall(expectedResponse); - const [response] = await client.listServerCertificates(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listServerCertificates as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listServerCertificates as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listServerCertificates without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.InstancesListServerCertificatesResponse() - ); - client.innerApiCalls.listServerCertificates = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listServerCertificates( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IInstancesListServerCertificatesResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listServerCertificates as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listServerCertificates as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listServerCertificates with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listServerCertificates = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listServerCertificates(request), expectedError); - const actualRequest = (client.innerApiCalls.listServerCertificates as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listServerCertificates as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listServerCertificates with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.listServerCertificates(request), expectedError); - }); + }); + + describe('resetSslConfig', () => { + it('invokes resetSslConfig without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.resetSslConfig = stubSimpleCall(expectedResponse); + const [response] = await client.resetSslConfig(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.resetSslConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resetSslConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('listEntraIdCertificates', () => { - it('invokes listEntraIdCertificates without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.InstancesListEntraIdCertificatesResponse() - ); - client.innerApiCalls.listEntraIdCertificates = stubSimpleCall(expectedResponse); - const [response] = await client.listEntraIdCertificates(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listEntraIdCertificates as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listEntraIdCertificates as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listEntraIdCertificates without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.InstancesListEntraIdCertificatesResponse() - ); - client.innerApiCalls.listEntraIdCertificates = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listEntraIdCertificates( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IInstancesListEntraIdCertificatesResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listEntraIdCertificates as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listEntraIdCertificates as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listEntraIdCertificates with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listEntraIdCertificates = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listEntraIdCertificates(request), expectedError); - const actualRequest = (client.innerApiCalls.listEntraIdCertificates as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listEntraIdCertificates as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listEntraIdCertificates with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.listEntraIdCertificates(request), expectedError); - }); + it('invokes resetSslConfig without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.resetSslConfig = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.resetSslConfig( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.resetSslConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resetSslConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('patch', () => { - it('invokes patch without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPatchRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPatchRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPatchRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.patch = stubSimpleCall(expectedResponse); - const [response] = await client.patch(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes patch without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPatchRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPatchRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPatchRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.patch = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.patch( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes patch with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPatchRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPatchRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPatchRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.patch = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.patch(request), expectedError); - const actualRequest = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes patch with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPatchRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPatchRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPatchRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.patch(request), expectedError); - }); + it('invokes resetSslConfig with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.resetSslConfig = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.resetSslConfig(request), expectedError); + const actualRequest = ( + client.innerApiCalls.resetSslConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resetSslConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('promoteReplica', () => { - it('invokes promoteReplica without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.promoteReplica = stubSimpleCall(expectedResponse); - const [response] = await client.promoteReplica(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.promoteReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.promoteReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes promoteReplica without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.promoteReplica = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.promoteReplica( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.promoteReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.promoteReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes promoteReplica with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.promoteReplica = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.promoteReplica(request), expectedError); - const actualRequest = (client.innerApiCalls.promoteReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.promoteReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes promoteReplica with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.promoteReplica(request), expectedError); - }); + it('invokes resetSslConfig with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.resetSslConfig(request), expectedError); }); - - describe('switchover', () => { - it('invokes switchover without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesSwitchoverRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesSwitchoverRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesSwitchoverRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.switchover = stubSimpleCall(expectedResponse); - const [response] = await client.switchover(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.switchover as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.switchover as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes switchover without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesSwitchoverRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesSwitchoverRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesSwitchoverRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.switchover = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.switchover( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.switchover as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.switchover as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes switchover with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesSwitchoverRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesSwitchoverRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesSwitchoverRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.switchover = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.switchover(request), expectedError); - const actualRequest = (client.innerApiCalls.switchover as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.switchover as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes switchover with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesSwitchoverRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesSwitchoverRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesSwitchoverRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.switchover(request), expectedError); - }); + }); + + describe('restart', () => { + it('invokes restart without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRestartRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRestartRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRestartRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.restart = stubSimpleCall(expectedResponse); + const [response] = await client.restart(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.restart as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.restart as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('resetSslConfig', () => { - it('invokes resetSslConfig without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.resetSslConfig = stubSimpleCall(expectedResponse); - const [response] = await client.resetSslConfig(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.resetSslConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.resetSslConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes resetSslConfig without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.resetSslConfig = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.resetSslConfig( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.resetSslConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.resetSslConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes resetSslConfig with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.resetSslConfig = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.resetSslConfig(request), expectedError); - const actualRequest = (client.innerApiCalls.resetSslConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.resetSslConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes resetSslConfig with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.resetSslConfig(request), expectedError); - }); + it('invokes restart without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRestartRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRestartRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRestartRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.restart = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.restart( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.restart as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.restart as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('restart', () => { - it('invokes restart without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRestartRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRestartRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRestartRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.restart = stubSimpleCall(expectedResponse); - const [response] = await client.restart(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.restart as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.restart as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes restart without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRestartRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRestartRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRestartRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.restart = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.restart( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.restart as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.restart as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes restart with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRestartRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRestartRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRestartRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.restart = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.restart(request), expectedError); - const actualRequest = (client.innerApiCalls.restart as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.restart as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes restart with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRestartRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRestartRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRestartRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.restart(request), expectedError); - }); + it('invokes restart with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRestartRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRestartRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRestartRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.restart = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.restart(request), expectedError); + const actualRequest = (client.innerApiCalls.restart as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.restart as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('restoreBackup', () => { - it('invokes restoreBackup without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.restoreBackup = stubSimpleCall(expectedResponse); - const [response] = await client.restoreBackup(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.restoreBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.restoreBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes restoreBackup without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.restoreBackup = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.restoreBackup( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.restoreBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.restoreBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes restoreBackup with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.restoreBackup = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.restoreBackup(request), expectedError); - const actualRequest = (client.innerApiCalls.restoreBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.restoreBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes restoreBackup with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.restoreBackup(request), expectedError); - }); + it('invokes restart with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRestartRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRestartRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRestartRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.restart(request), expectedError); }); - - describe('rotateServerCa', () => { - it('invokes rotateServerCa without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.rotateServerCa = stubSimpleCall(expectedResponse); - const [response] = await client.rotateServerCa(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.rotateServerCa as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateServerCa as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateServerCa without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.rotateServerCa = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.rotateServerCa( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.rotateServerCa as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateServerCa as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateServerCa with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.rotateServerCa = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.rotateServerCa(request), expectedError); - const actualRequest = (client.innerApiCalls.rotateServerCa as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateServerCa as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateServerCa with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.rotateServerCa(request), expectedError); - }); + }); + + describe('restoreBackup', () => { + it('invokes restoreBackup without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.restoreBackup = stubSimpleCall(expectedResponse); + const [response] = await client.restoreBackup(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.restoreBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.restoreBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('rotateServerCertificate', () => { - it('invokes rotateServerCertificate without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.rotateServerCertificate = stubSimpleCall(expectedResponse); - const [response] = await client.rotateServerCertificate(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.rotateServerCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateServerCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateServerCertificate without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.rotateServerCertificate = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.rotateServerCertificate( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.rotateServerCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateServerCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateServerCertificate with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.rotateServerCertificate = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.rotateServerCertificate(request), expectedError); - const actualRequest = (client.innerApiCalls.rotateServerCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateServerCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateServerCertificate with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.rotateServerCertificate(request), expectedError); - }); + it('invokes restoreBackup without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.restoreBackup = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.restoreBackup( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.restoreBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.restoreBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('rotateEntraIdCertificate', () => { - it('invokes rotateEntraIdCertificate without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.rotateEntraIdCertificate = stubSimpleCall(expectedResponse); - const [response] = await client.rotateEntraIdCertificate(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.rotateEntraIdCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateEntraIdCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateEntraIdCertificate without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.rotateEntraIdCertificate = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.rotateEntraIdCertificate( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.rotateEntraIdCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateEntraIdCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateEntraIdCertificate with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.rotateEntraIdCertificate = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.rotateEntraIdCertificate(request), expectedError); - const actualRequest = (client.innerApiCalls.rotateEntraIdCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateEntraIdCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateEntraIdCertificate with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.rotateEntraIdCertificate(request), expectedError); - }); + it('invokes restoreBackup with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.restoreBackup = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.restoreBackup(request), expectedError); + const actualRequest = ( + client.innerApiCalls.restoreBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.restoreBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('startReplica', () => { - it('invokes startReplica without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesStartReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStartReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStartReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.startReplica = stubSimpleCall(expectedResponse); - const [response] = await client.startReplica(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.startReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.startReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes startReplica without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesStartReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStartReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStartReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.startReplica = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.startReplica( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.startReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.startReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes startReplica with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesStartReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStartReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStartReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.startReplica = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.startReplica(request), expectedError); - const actualRequest = (client.innerApiCalls.startReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.startReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes startReplica with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesStartReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStartReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStartReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.startReplica(request), expectedError); - }); + it('invokes restoreBackup with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.restoreBackup(request), expectedError); }); - - describe('stopReplica', () => { - it('invokes stopReplica without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesStopReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStopReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStopReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.stopReplica = stubSimpleCall(expectedResponse); - const [response] = await client.stopReplica(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.stopReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.stopReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes stopReplica without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesStopReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStopReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStopReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.stopReplica = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.stopReplica( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.stopReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.stopReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes stopReplica with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesStopReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStopReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStopReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.stopReplica = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.stopReplica(request), expectedError); - const actualRequest = (client.innerApiCalls.stopReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.stopReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes stopReplica with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesStopReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStopReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStopReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.stopReplica(request), expectedError); - }); + }); + + describe('rotateServerCa', () => { + it('invokes rotateServerCa without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.rotateServerCa = stubSimpleCall(expectedResponse); + const [response] = await client.rotateServerCa(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.rotateServerCa as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateServerCa as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('truncateLog', () => { - it('invokes truncateLog without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesTruncateLogRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesTruncateLogRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesTruncateLogRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.truncateLog = stubSimpleCall(expectedResponse); - const [response] = await client.truncateLog(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.truncateLog as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.truncateLog as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes rotateServerCa without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.rotateServerCa = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.rotateServerCa( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.rotateServerCa as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateServerCa as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes truncateLog without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesTruncateLogRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesTruncateLogRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesTruncateLogRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.truncateLog = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.truncateLog( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.truncateLog as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.truncateLog as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes rotateServerCa with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.rotateServerCa = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.rotateServerCa(request), expectedError); + const actualRequest = ( + client.innerApiCalls.rotateServerCa as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateServerCa as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes truncateLog with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesTruncateLogRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesTruncateLogRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesTruncateLogRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.truncateLog = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.truncateLog(request), expectedError); - const actualRequest = (client.innerApiCalls.truncateLog as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.truncateLog as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes rotateServerCa with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.rotateServerCa(request), expectedError); + }); + }); + + describe('rotateServerCertificate', () => { + it('invokes rotateServerCertificate without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.rotateServerCertificate = + stubSimpleCall(expectedResponse); + const [response] = await client.rotateServerCertificate(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.rotateServerCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateServerCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes truncateLog with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesTruncateLogRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesTruncateLogRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesTruncateLogRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.truncateLog(request), expectedError); - }); + it('invokes rotateServerCertificate without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.rotateServerCertificate = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.rotateServerCertificate( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.rotateServerCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateServerCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('update', () => { - it('invokes update without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.update = stubSimpleCall(expectedResponse); - const [response] = await client.update(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes rotateServerCertificate with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.rotateServerCertificate = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.rotateServerCertificate(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.rotateServerCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateServerCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes update without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.update = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.update( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes rotateServerCertificate with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.rotateServerCertificate(request), + expectedError, + ); + }); + }); + + describe('rotateEntraIdCertificate', () => { + it('invokes rotateEntraIdCertificate without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.rotateEntraIdCertificate = + stubSimpleCall(expectedResponse); + const [response] = await client.rotateEntraIdCertificate(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.rotateEntraIdCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateEntraIdCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes update with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.update = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.update(request), expectedError); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes rotateEntraIdCertificate without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.rotateEntraIdCertificate = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.rotateEntraIdCertificate( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.rotateEntraIdCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateEntraIdCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes update with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.update(request), expectedError); - }); + it('invokes rotateEntraIdCertificate with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.rotateEntraIdCertificate = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.rotateEntraIdCertificate(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.rotateEntraIdCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateEntraIdCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('createEphemeral', () => { - it('invokes createEphemeral without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SslCert() - ); - client.innerApiCalls.createEphemeral = stubSimpleCall(expectedResponse); - const [response] = await client.createEphemeral(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createEphemeral as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createEphemeral as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes rotateEntraIdCertificate with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.rotateEntraIdCertificate(request), + expectedError, + ); + }); + }); + + describe('startReplica', () => { + it('invokes startReplica without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesStartReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStartReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStartReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.startReplica = stubSimpleCall(expectedResponse); + const [response] = await client.startReplica(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.startReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.startReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createEphemeral without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SslCert() - ); - client.innerApiCalls.createEphemeral = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.createEphemeral( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.ISslCert|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createEphemeral as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createEphemeral as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes startReplica without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesStartReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStartReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStartReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.startReplica = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.startReplica( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.startReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.startReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createEphemeral with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createEphemeral = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.createEphemeral(request), expectedError); - const actualRequest = (client.innerApiCalls.createEphemeral as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createEphemeral as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes startReplica with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesStartReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStartReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStartReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.startReplica = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.startReplica(request), expectedError); + const actualRequest = ( + client.innerApiCalls.startReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.startReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createEphemeral with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.createEphemeral(request), expectedError); - }); + it('invokes startReplica with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesStartReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStartReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStartReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.startReplica(request), expectedError); + }); + }); + + describe('stopReplica', () => { + it('invokes stopReplica without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesStopReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStopReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStopReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.stopReplica = stubSimpleCall(expectedResponse); + const [response] = await client.stopReplica(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.stopReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.stopReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('rescheduleMaintenance', () => { - it('invokes rescheduleMaintenance without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.rescheduleMaintenance = stubSimpleCall(expectedResponse); - const [response] = await client.rescheduleMaintenance(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.rescheduleMaintenance as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rescheduleMaintenance as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes stopReplica without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesStopReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStopReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStopReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.stopReplica = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.stopReplica( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.stopReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.stopReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes rescheduleMaintenance without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.rescheduleMaintenance = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.rescheduleMaintenance( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.rescheduleMaintenance as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rescheduleMaintenance as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes stopReplica with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesStopReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStopReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStopReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.stopReplica = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.stopReplica(request), expectedError); + const actualRequest = ( + client.innerApiCalls.stopReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.stopReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes rescheduleMaintenance with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.rescheduleMaintenance = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.rescheduleMaintenance(request), expectedError); - const actualRequest = (client.innerApiCalls.rescheduleMaintenance as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rescheduleMaintenance as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes stopReplica with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesStopReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStopReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStopReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.stopReplica(request), expectedError); + }); + }); + + describe('truncateLog', () => { + it('invokes truncateLog without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesTruncateLogRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesTruncateLogRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesTruncateLogRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.truncateLog = stubSimpleCall(expectedResponse); + const [response] = await client.truncateLog(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.truncateLog as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.truncateLog as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes rescheduleMaintenance with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.rescheduleMaintenance(request), expectedError); - }); + it('invokes truncateLog without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesTruncateLogRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesTruncateLogRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesTruncateLogRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.truncateLog = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.truncateLog( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.truncateLog as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.truncateLog as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('verifyExternalSyncSettings', () => { - it('invokes verifyExternalSyncSettings without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse() - ); - client.innerApiCalls.verifyExternalSyncSettings = stubSimpleCall(expectedResponse); - const [response] = await client.verifyExternalSyncSettings(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.verifyExternalSyncSettings as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.verifyExternalSyncSettings as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes truncateLog with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesTruncateLogRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesTruncateLogRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesTruncateLogRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.truncateLog = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.truncateLog(request), expectedError); + const actualRequest = ( + client.innerApiCalls.truncateLog as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.truncateLog as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes verifyExternalSyncSettings without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse() - ); - client.innerApiCalls.verifyExternalSyncSettings = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.verifyExternalSyncSettings( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.verifyExternalSyncSettings as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.verifyExternalSyncSettings as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes truncateLog with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesTruncateLogRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesTruncateLogRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesTruncateLogRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.truncateLog(request), expectedError); + }); + }); + + describe('update', () => { + it('invokes update without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.update = stubSimpleCall(expectedResponse); + const [response] = await client.update(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes verifyExternalSyncSettings with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.verifyExternalSyncSettings = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.verifyExternalSyncSettings(request), expectedError); - const actualRequest = (client.innerApiCalls.verifyExternalSyncSettings as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.verifyExternalSyncSettings as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes update without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.update = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.update( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes verifyExternalSyncSettings with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.verifyExternalSyncSettings(request), expectedError); - }); + it('invokes update with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.update = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.update(request), expectedError); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('startExternalSync', () => { - it('invokes startExternalSync without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.startExternalSync = stubSimpleCall(expectedResponse); - const [response] = await client.startExternalSync(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.startExternalSync as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.startExternalSync as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes update with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.update(request), expectedError); + }); + }); + + describe('createEphemeral', () => { + it('invokes createEphemeral without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SslCert(), + ); + client.innerApiCalls.createEphemeral = stubSimpleCall(expectedResponse); + const [response] = await client.createEphemeral(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createEphemeral as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createEphemeral as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes startExternalSync without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.startExternalSync = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.startExternalSync( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.startExternalSync as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.startExternalSync as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createEphemeral without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SslCert(), + ); + client.innerApiCalls.createEphemeral = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.createEphemeral( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.ISslCert | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createEphemeral as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createEphemeral as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes startExternalSync with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.startExternalSync = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.startExternalSync(request), expectedError); - const actualRequest = (client.innerApiCalls.startExternalSync as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.startExternalSync as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createEphemeral with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createEphemeral = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.createEphemeral(request), expectedError); + const actualRequest = ( + client.innerApiCalls.createEphemeral as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createEphemeral as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes startExternalSync with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.startExternalSync(request), expectedError); - }); + it('invokes createEphemeral with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.createEphemeral(request), expectedError); + }); + }); + + describe('rescheduleMaintenance', () => { + it('invokes rescheduleMaintenance without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.rescheduleMaintenance = + stubSimpleCall(expectedResponse); + const [response] = await client.rescheduleMaintenance(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.rescheduleMaintenance as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rescheduleMaintenance as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('performDiskShrink', () => { - it('invokes performDiskShrink without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.performDiskShrink = stubSimpleCall(expectedResponse); - const [response] = await client.performDiskShrink(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.performDiskShrink as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.performDiskShrink as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes rescheduleMaintenance without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.rescheduleMaintenance = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.rescheduleMaintenance( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.rescheduleMaintenance as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rescheduleMaintenance as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes performDiskShrink without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.performDiskShrink = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.performDiskShrink( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.performDiskShrink as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.performDiskShrink as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes rescheduleMaintenance with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.rescheduleMaintenance = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.rescheduleMaintenance(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.rescheduleMaintenance as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rescheduleMaintenance as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes performDiskShrink with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.performDiskShrink = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.performDiskShrink(request), expectedError); - const actualRequest = (client.innerApiCalls.performDiskShrink as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.performDiskShrink as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes rescheduleMaintenance with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.rescheduleMaintenance(request), + expectedError, + ); + }); + }); + + describe('verifyExternalSyncSettings', () => { + it('invokes verifyExternalSyncSettings without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse(), + ); + client.innerApiCalls.verifyExternalSyncSettings = + stubSimpleCall(expectedResponse); + const [response] = await client.verifyExternalSyncSettings(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.verifyExternalSyncSettings as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.verifyExternalSyncSettings as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes performDiskShrink with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.performDiskShrink(request), expectedError); - }); + it('invokes verifyExternalSyncSettings without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse(), + ); + client.innerApiCalls.verifyExternalSyncSettings = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.verifyExternalSyncSettings( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.ISqlInstancesVerifyExternalSyncSettingsResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.verifyExternalSyncSettings as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.verifyExternalSyncSettings as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('getDiskShrinkConfig', () => { - it('invokes getDiskShrinkConfig without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigResponse() - ); - client.innerApiCalls.getDiskShrinkConfig = stubSimpleCall(expectedResponse); - const [response] = await client.getDiskShrinkConfig(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getDiskShrinkConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getDiskShrinkConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes verifyExternalSyncSettings with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.verifyExternalSyncSettings = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.verifyExternalSyncSettings(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.verifyExternalSyncSettings as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.verifyExternalSyncSettings as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getDiskShrinkConfig without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigResponse() - ); - client.innerApiCalls.getDiskShrinkConfig = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getDiskShrinkConfig( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getDiskShrinkConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getDiskShrinkConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes verifyExternalSyncSettings with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.verifyExternalSyncSettings(request), + expectedError, + ); + }); + }); + + describe('startExternalSync', () => { + it('invokes startExternalSync without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.startExternalSync = stubSimpleCall(expectedResponse); + const [response] = await client.startExternalSync(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.startExternalSync as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.startExternalSync as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getDiskShrinkConfig with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getDiskShrinkConfig = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getDiskShrinkConfig(request), expectedError); - const actualRequest = (client.innerApiCalls.getDiskShrinkConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getDiskShrinkConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes startExternalSync without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.startExternalSync = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.startExternalSync( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.startExternalSync as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.startExternalSync as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getDiskShrinkConfig with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getDiskShrinkConfig(request), expectedError); - }); + it('invokes startExternalSync with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.startExternalSync = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.startExternalSync(request), expectedError); + const actualRequest = ( + client.innerApiCalls.startExternalSync as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.startExternalSync as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('resetReplicaSize', () => { - it('invokes resetReplicaSize without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.resetReplicaSize = stubSimpleCall(expectedResponse); - const [response] = await client.resetReplicaSize(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.resetReplicaSize as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.resetReplicaSize as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes startExternalSync with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.startExternalSync(request), expectedError); + }); + }); + + describe('performDiskShrink', () => { + it('invokes performDiskShrink without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.performDiskShrink = stubSimpleCall(expectedResponse); + const [response] = await client.performDiskShrink(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.performDiskShrink as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.performDiskShrink as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes resetReplicaSize without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.resetReplicaSize = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.resetReplicaSize( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.resetReplicaSize as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.resetReplicaSize as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes performDiskShrink without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.performDiskShrink = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.performDiskShrink( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.performDiskShrink as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.performDiskShrink as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes resetReplicaSize with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.resetReplicaSize = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.resetReplicaSize(request), expectedError); - const actualRequest = (client.innerApiCalls.resetReplicaSize as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.resetReplicaSize as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes performDiskShrink with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.performDiskShrink = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.performDiskShrink(request), expectedError); + const actualRequest = ( + client.innerApiCalls.performDiskShrink as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.performDiskShrink as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes resetReplicaSize with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.resetReplicaSize(request), expectedError); - }); + it('invokes performDiskShrink with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.performDiskShrink(request), expectedError); + }); + }); + + describe('getDiskShrinkConfig', () => { + it('invokes getDiskShrinkConfig without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigResponse(), + ); + client.innerApiCalls.getDiskShrinkConfig = + stubSimpleCall(expectedResponse); + const [response] = await client.getDiskShrinkConfig(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getDiskShrinkConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getDiskShrinkConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('getLatestRecoveryTime', () => { - it('invokes getLatestRecoveryTime without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeResponse() - ); - client.innerApiCalls.getLatestRecoveryTime = stubSimpleCall(expectedResponse); - const [response] = await client.getLatestRecoveryTime(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getLatestRecoveryTime as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getLatestRecoveryTime as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getDiskShrinkConfig without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigResponse(), + ); + client.innerApiCalls.getDiskShrinkConfig = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getDiskShrinkConfig( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.ISqlInstancesGetDiskShrinkConfigResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getDiskShrinkConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getDiskShrinkConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getLatestRecoveryTime without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeResponse() - ); - client.innerApiCalls.getLatestRecoveryTime = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLatestRecoveryTime( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getLatestRecoveryTime as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getLatestRecoveryTime as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getDiskShrinkConfig with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getDiskShrinkConfig = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.getDiskShrinkConfig(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getDiskShrinkConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getDiskShrinkConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getLatestRecoveryTime with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getLatestRecoveryTime = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLatestRecoveryTime(request), expectedError); - const actualRequest = (client.innerApiCalls.getLatestRecoveryTime as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getLatestRecoveryTime as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getDiskShrinkConfig with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getDiskShrinkConfig(request), expectedError); + }); + }); + + describe('resetReplicaSize', () => { + it('invokes resetReplicaSize without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.resetReplicaSize = stubSimpleCall(expectedResponse); + const [response] = await client.resetReplicaSize(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.resetReplicaSize as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resetReplicaSize as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getLatestRecoveryTime with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getLatestRecoveryTime(request), expectedError); - }); + it('invokes resetReplicaSize without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.resetReplicaSize = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.resetReplicaSize( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.resetReplicaSize as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resetReplicaSize as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('executeSql', () => { - it('invokes executeSql without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse() - ); - client.innerApiCalls.executeSql = stubSimpleCall(expectedResponse); - const [response] = await client.executeSql(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.executeSql as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.executeSql as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes resetReplicaSize with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.resetReplicaSize = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.resetReplicaSize(request), expectedError); + const actualRequest = ( + client.innerApiCalls.resetReplicaSize as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resetReplicaSize as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes executeSql without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse() - ); - client.innerApiCalls.executeSql = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.executeSql( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.executeSql as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.executeSql as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes resetReplicaSize with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.resetReplicaSize(request), expectedError); + }); + }); + + describe('getLatestRecoveryTime', () => { + it('invokes getLatestRecoveryTime without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeResponse(), + ); + client.innerApiCalls.getLatestRecoveryTime = + stubSimpleCall(expectedResponse); + const [response] = await client.getLatestRecoveryTime(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getLatestRecoveryTime as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getLatestRecoveryTime as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes executeSql with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.executeSql = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.executeSql(request), expectedError); - const actualRequest = (client.innerApiCalls.executeSql as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.executeSql as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getLatestRecoveryTime without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeResponse(), + ); + client.innerApiCalls.getLatestRecoveryTime = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLatestRecoveryTime( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.ISqlInstancesGetLatestRecoveryTimeResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getLatestRecoveryTime as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getLatestRecoveryTime as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes executeSql with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.executeSql(request), expectedError); - }); + it('invokes getLatestRecoveryTime with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getLatestRecoveryTime = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLatestRecoveryTime(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.getLatestRecoveryTime as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getLatestRecoveryTime as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('acquireSsrsLease', () => { - it('invokes acquireSsrsLease without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseResponse() - ); - client.innerApiCalls.acquireSsrsLease = stubSimpleCall(expectedResponse); - const [response] = await client.acquireSsrsLease(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.acquireSsrsLease as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.acquireSsrsLease as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getLatestRecoveryTime with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.getLatestRecoveryTime(request), + expectedError, + ); + }); + }); + + describe('executeSql', () => { + it('invokes executeSql without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse(), + ); + client.innerApiCalls.executeSql = stubSimpleCall(expectedResponse); + const [response] = await client.executeSql(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.executeSql as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.executeSql as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes acquireSsrsLease without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseResponse() - ); - client.innerApiCalls.acquireSsrsLease = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.acquireSsrsLease( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.acquireSsrsLease as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.acquireSsrsLease as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes executeSql without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse(), + ); + client.innerApiCalls.executeSql = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.executeSql( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.ISqlInstancesExecuteSqlResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.executeSql as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.executeSql as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes acquireSsrsLease with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.acquireSsrsLease = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.acquireSsrsLease(request), expectedError); - const actualRequest = (client.innerApiCalls.acquireSsrsLease as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.acquireSsrsLease as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes executeSql with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.executeSql = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.executeSql(request), expectedError); + const actualRequest = ( + client.innerApiCalls.executeSql as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.executeSql as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes acquireSsrsLease with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.acquireSsrsLease(request), expectedError); - }); + it('invokes executeSql with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.executeSql(request), expectedError); + }); + }); + + describe('acquireSsrsLease', () => { + it('invokes acquireSsrsLease without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseResponse(), + ); + client.innerApiCalls.acquireSsrsLease = stubSimpleCall(expectedResponse); + const [response] = await client.acquireSsrsLease(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.acquireSsrsLease as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.acquireSsrsLease as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('releaseSsrsLease', () => { - it('invokes releaseSsrsLease without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseResponse() - ); - client.innerApiCalls.releaseSsrsLease = stubSimpleCall(expectedResponse); - const [response] = await client.releaseSsrsLease(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.releaseSsrsLease as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.releaseSsrsLease as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes acquireSsrsLease without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseResponse(), + ); + client.innerApiCalls.acquireSsrsLease = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.acquireSsrsLease( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.ISqlInstancesAcquireSsrsLeaseResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.acquireSsrsLease as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.acquireSsrsLease as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes releaseSsrsLease without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseResponse() - ); - client.innerApiCalls.releaseSsrsLease = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.releaseSsrsLease( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.releaseSsrsLease as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.releaseSsrsLease as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes acquireSsrsLease with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.acquireSsrsLease = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.acquireSsrsLease(request), expectedError); + const actualRequest = ( + client.innerApiCalls.acquireSsrsLease as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.acquireSsrsLease as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes releaseSsrsLease with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.releaseSsrsLease = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.releaseSsrsLease(request), expectedError); - const actualRequest = (client.innerApiCalls.releaseSsrsLease as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.releaseSsrsLease as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes acquireSsrsLease with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.acquireSsrsLease(request), expectedError); + }); + }); + + describe('releaseSsrsLease', () => { + it('invokes releaseSsrsLease without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseResponse(), + ); + client.innerApiCalls.releaseSsrsLease = stubSimpleCall(expectedResponse); + const [response] = await client.releaseSsrsLease(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.releaseSsrsLease as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.releaseSsrsLease as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes releaseSsrsLease with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.releaseSsrsLease(request), expectedError); - }); + it('invokes releaseSsrsLease without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseResponse(), + ); + client.innerApiCalls.releaseSsrsLease = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.releaseSsrsLease( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.ISqlInstancesReleaseSsrsLeaseResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.releaseSsrsLease as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.releaseSsrsLease as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('preCheckMajorVersionUpgrade', () => { - it('invokes preCheckMajorVersionUpgrade without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.preCheckMajorVersionUpgrade = stubSimpleCall(expectedResponse); - const [response] = await client.preCheckMajorVersionUpgrade(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes releaseSsrsLease with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.releaseSsrsLease = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.releaseSsrsLease(request), expectedError); + const actualRequest = ( + client.innerApiCalls.releaseSsrsLease as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.releaseSsrsLease as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes preCheckMajorVersionUpgrade without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.preCheckMajorVersionUpgrade = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.preCheckMajorVersionUpgrade( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes releaseSsrsLease with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesReleaseSsrsLeaseRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.releaseSsrsLease(request), expectedError); + }); + }); + + describe('preCheckMajorVersionUpgrade', () => { + it('invokes preCheckMajorVersionUpgrade without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.preCheckMajorVersionUpgrade = + stubSimpleCall(expectedResponse); + const [response] = await client.preCheckMajorVersionUpgrade(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes preCheckMajorVersionUpgrade with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.preCheckMajorVersionUpgrade = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.preCheckMajorVersionUpgrade(request), expectedError); - const actualRequest = (client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes preCheckMajorVersionUpgrade without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.preCheckMajorVersionUpgrade = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.preCheckMajorVersionUpgrade( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes preCheckMajorVersionUpgrade with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.preCheckMajorVersionUpgrade(request), expectedError); - }); + it('invokes preCheckMajorVersionUpgrade with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.preCheckMajorVersionUpgrade = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.preCheckMajorVersionUpgrade(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('pointInTimeRestore', () => { - it('invokes pointInTimeRestore without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.pointInTimeRestore = stubSimpleCall(expectedResponse); - const [response] = await client.pointInTimeRestore(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.pointInTimeRestore as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.pointInTimeRestore as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes preCheckMajorVersionUpgrade with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPreCheckMajorVersionUpgradeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.preCheckMajorVersionUpgrade(request), + expectedError, + ); + }); + }); + + describe('pointInTimeRestore', () => { + it('invokes pointInTimeRestore without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.pointInTimeRestore = + stubSimpleCall(expectedResponse); + const [response] = await client.pointInTimeRestore(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.pointInTimeRestore as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.pointInTimeRestore as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes pointInTimeRestore without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.pointInTimeRestore = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.pointInTimeRestore( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.pointInTimeRestore as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.pointInTimeRestore as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes pointInTimeRestore without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.pointInTimeRestore = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.pointInTimeRestore( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.pointInTimeRestore as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.pointInTimeRestore as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes pointInTimeRestore with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.pointInTimeRestore = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.pointInTimeRestore(request), expectedError); - const actualRequest = (client.innerApiCalls.pointInTimeRestore as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.pointInTimeRestore as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes pointInTimeRestore with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.pointInTimeRestore = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.pointInTimeRestore(request), expectedError); + const actualRequest = ( + client.innerApiCalls.pointInTimeRestore as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.pointInTimeRestore as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes pointInTimeRestore with closed client', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest', ['parent']); - request.parent = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.pointInTimeRestore(request), expectedError); - }); + it('invokes pointInTimeRestore with closed client', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlInstancesPointInTimeRestoreRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.pointInTimeRestore(request), expectedError); }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('invokes getLocation without error using callback', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); + }); + it('invokes getLocation with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); + + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + backupvault: 'backupvaultValue', + datasource: 'datasourceValue', + backup: 'backupValue', + }; + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupPath', () => { + const result = client.backupPath( + 'projectValue', + 'locationValue', + 'backupvaultValue', + 'datasourceValue', + 'backupValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromBackupName', () => { + const result = client.matchLocationFromBackupName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchBackupvaultFromBackupName', () => { + const result = client.matchBackupvaultFromBackupName(fakePath); + assert.strictEqual(result, 'backupvaultValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchDatasourceFromBackupName', () => { + const result = client.matchDatasourceFromBackupName(fakePath); + assert.strictEqual(result, 'datasourceValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); - describe('Path templates', () => { - - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - backupvault: "backupvaultValue", - datasource: "datasourceValue", - backup: "backupValue", - }; - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('backupPath', () => { - const result = client.backupPath("projectValue", "locationValue", "backupvaultValue", "datasourceValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromBackupName', () => { - const result = client.matchLocationFromBackupName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchBackupvaultFromBackupName', () => { - const result = client.matchBackupvaultFromBackupName(fakePath); - assert.strictEqual(result, "backupvaultValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchDatasourceFromBackupName', () => { - const result = client.matchDatasourceFromBackupName(fakePath); - assert.strictEqual(result, "datasourceValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); - - describe('network', async () => { - const fakePath = "/rendered/path/network"; - const expectedParameters = { - project: "projectValue", - network: "networkValue", - }; - const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.networkPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.networkPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('networkPath', () => { - const result = client.networkPath("projectValue", "networkValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.networkPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromNetworkName', () => { - const result = client.matchProjectFromNetworkName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.networkPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchNetworkFromNetworkName', () => { - const result = client.matchNetworkFromNetworkName(fakePath); - assert.strictEqual(result, "networkValue"); - assert((client.pathTemplates.networkPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('network', async () => { + const fakePath = '/rendered/path/network'; + const expectedParameters = { + project: 'projectValue', + network: 'networkValue', + }; + const client = new sqlinstancesserviceModule.v1.SqlInstancesServiceClient( + { + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }, + ); + await client.initialize(); + client.pathTemplates.networkPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.networkPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('networkPath', () => { + const result = client.networkPath('projectValue', 'networkValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.networkPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromNetworkName', () => { + const result = client.matchProjectFromNetworkName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.networkPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchNetworkFromNetworkName', () => { + const result = client.matchNetworkFromNetworkName(fakePath); + assert.strictEqual(result, 'networkValue'); + assert( + (client.pathTemplates.networkPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_instances_service_v1beta4.ts b/packages/google-cloud-sql/test/gapic_sql_instances_service_v1beta4.ts index 5a2dbf87669..57ac7bbd95c 100644 --- a/packages/google-cloud-sql/test/gapic_sql_instances_service_v1beta4.ts +++ b/packages/google-cloud-sql/test/gapic_sql_instances_service_v1beta4.ts @@ -19,5577 +19,7230 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqlinstancesserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1beta4.SqlInstancesServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); - - it('has universeDomain', () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); - - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); - - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); - - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); - }); + it('has universeDomain', () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - it('has port', () => { - const port = sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient.port; - assert(port); - assert(typeof port === 'number'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient + .servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient + .apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + universeDomain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('should create a client with no option', () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient(); - assert(client); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + universe_domain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('should create a client with gRPC fallback', () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - fallback: true, - }); - assert(client); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } + }); + + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + universeDomain: 'configured.example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } + }); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlInstancesServiceStub, undefined); - await client.initialize(); - assert(client.sqlInstancesServiceStub); - }); + it('has port', () => { + const port = + sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('has close method for the initialized client', done => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlInstancesServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('should create a client with no option', () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient(); + assert(client); + }); + + it('should create a client with gRPC fallback', () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + fallback: true, }); + assert(client); + }); - it('has close method for the non-initialized client', done => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlInstancesServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has initialize method and supports deferred initialization', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + assert.strictEqual(client.sqlInstancesServiceStub, undefined); + await client.initialize(); + assert(client.sqlInstancesServiceStub); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has close method for the initialized client', (done) => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlInstancesServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); + it('has close method for the non-initialized client', (done) => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlInstancesServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); }); - describe('addServerCa', () => { - it('invokes addServerCa without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.addServerCa = stubSimpleCall(expectedResponse); - const [response] = await client.addServerCa(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.addServerCa as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addServerCa as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes addServerCa without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.addServerCa = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.addServerCa( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.addServerCa as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addServerCa as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes addServerCa with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.addServerCa = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.addServerCa(request), expectedError); - const actualRequest = (client.innerApiCalls.addServerCa as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addServerCa as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes addServerCa with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.addServerCa(request), expectedError); - }); - }); - - describe('addServerCertificate', () => { - it('invokes addServerCertificate without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.addServerCertificate = stubSimpleCall(expectedResponse); - const [response] = await client.addServerCertificate(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.addServerCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addServerCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes addServerCertificate without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.addServerCertificate = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.addServerCertificate( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.addServerCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addServerCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes addServerCertificate with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.addServerCertificate = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.addServerCertificate(request), expectedError); - const actualRequest = (client.innerApiCalls.addServerCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addServerCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes addServerCertificate with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.addServerCertificate(request), expectedError); - }); - }); - - describe('addEntraIdCertificate', () => { - it('invokes addEntraIdCertificate without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.addEntraIdCertificate = stubSimpleCall(expectedResponse); - const [response] = await client.addEntraIdCertificate(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.addEntraIdCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addEntraIdCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes addEntraIdCertificate without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.addEntraIdCertificate = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.addEntraIdCertificate( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.addEntraIdCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addEntraIdCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes addEntraIdCertificate with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.addEntraIdCertificate = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.addEntraIdCertificate(request), expectedError); - const actualRequest = (client.innerApiCalls.addEntraIdCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.addEntraIdCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes addEntraIdCertificate with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.addEntraIdCertificate(request), expectedError); - }); - }); - - describe('clone', () => { - it('invokes clone without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesCloneRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesCloneRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesCloneRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.clone = stubSimpleCall(expectedResponse); - const [response] = await client.clone(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.clone as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.clone as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes clone without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesCloneRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesCloneRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesCloneRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.clone = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.clone( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.clone as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.clone as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes clone with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesCloneRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesCloneRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesCloneRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.clone = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.clone(request), expectedError); - const actualRequest = (client.innerApiCalls.clone as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.clone as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes clone with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesCloneRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesCloneRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesCloneRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.clone(request), expectedError); - }); - }); - - describe('delete', () => { - it('invokes delete without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.delete = stubSimpleCall(expectedResponse); - const [response] = await client.delete(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes delete without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.delete = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.delete( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes delete with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.delete(request), expectedError); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes delete with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.delete(request), expectedError); - }); - }); - - describe('demoteMaster', () => { - it('invokes demoteMaster without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.demoteMaster = stubSimpleCall(expectedResponse); - const [response] = await client.demoteMaster(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.demoteMaster as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.demoteMaster as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes demoteMaster without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.demoteMaster = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.demoteMaster( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.demoteMaster as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.demoteMaster as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes demoteMaster with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.demoteMaster = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.demoteMaster(request), expectedError); - const actualRequest = (client.innerApiCalls.demoteMaster as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.demoteMaster as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes demoteMaster with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.demoteMaster(request), expectedError); - }); - }); - - describe('demote', () => { - it('invokes demote without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.demote = stubSimpleCall(expectedResponse); - const [response] = await client.demote(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.demote as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.demote as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes demote without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.demote = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.demote( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.demote as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.demote as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes demote with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.demote = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.demote(request), expectedError); - const actualRequest = (client.innerApiCalls.demote as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.demote as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes demote with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.demote(request), expectedError); - }); - }); - - describe('export', () => { - it('invokes export without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesExportRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesExportRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesExportRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.export = stubSimpleCall(expectedResponse); - const [response] = await client.export(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.export as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.export as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes export without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesExportRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesExportRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesExportRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.export = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.export( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.export as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.export as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes export with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesExportRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesExportRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesExportRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.export = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.export(request), expectedError); - const actualRequest = (client.innerApiCalls.export as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.export as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes export with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesExportRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesExportRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesExportRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.export(request), expectedError); - }); - }); - - describe('failover', () => { - it('invokes failover without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.failover = stubSimpleCall(expectedResponse); - const [response] = await client.failover(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.failover as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.failover as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes failover without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.failover = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.failover( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.failover as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.failover as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes failover with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.failover = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.failover(request), expectedError); - const actualRequest = (client.innerApiCalls.failover as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.failover as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes failover with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.failover(request), expectedError); - }); - }); - - describe('reencrypt', () => { - it('invokes reencrypt without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.reencrypt = stubSimpleCall(expectedResponse); - const [response] = await client.reencrypt(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.reencrypt as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.reencrypt as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes reencrypt without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.reencrypt = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.reencrypt( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.reencrypt as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.reencrypt as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes reencrypt with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.reencrypt = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.reencrypt(request), expectedError); - const actualRequest = (client.innerApiCalls.reencrypt as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.reencrypt as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes reencrypt with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.reencrypt(request), expectedError); - }); - }); - - describe('get', () => { - it('invokes get without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.DatabaseInstance() - ); - client.innerApiCalls.get = stubSimpleCall(expectedResponse); - const [response] = await client.get(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.DatabaseInstance() - ); - client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.get( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IDatabaseInstance|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.get(request), expectedError); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.get(request), expectedError); - }); - }); - - describe('import', () => { - it('invokes import without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesImportRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesImportRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesImportRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.import = stubSimpleCall(expectedResponse); - const [response] = await client.import(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.import as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.import as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes import without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesImportRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesImportRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesImportRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.import = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.import( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.import as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.import as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes import with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesImportRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesImportRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesImportRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.import = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.import(request), expectedError); - const actualRequest = (client.innerApiCalls.import as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.import as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes import with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesImportRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesImportRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesImportRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.import(request), expectedError); - }); - }); - - describe('insert', () => { - it('invokes insert without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesInsertRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.insert = stubSimpleCall(expectedResponse); - const [response] = await client.insert(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes insert without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesInsertRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.insert = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.insert( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes insert with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesInsertRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.insert(request), expectedError); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes insert with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesInsertRequest', ['project']); - request.project = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.insert(request), expectedError); - }); - }); - - describe('list', () => { - it('invokes list without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.InstancesListResponse() - ); - client.innerApiCalls.list = stubSimpleCall(expectedResponse); - const [response] = await client.list(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.InstancesListResponse() - ); - client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.list( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IInstancesListResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.list(request), expectedError); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListRequest', ['project']); - request.project = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.list(request), expectedError); - }); - }); - - describe('listServerCas', () => { - it('invokes listServerCas without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.InstancesListServerCasResponse() - ); - client.innerApiCalls.listServerCas = stubSimpleCall(expectedResponse); - const [response] = await client.listServerCas(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listServerCas as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listServerCas as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listServerCas without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.InstancesListServerCasResponse() - ); - client.innerApiCalls.listServerCas = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listServerCas( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IInstancesListServerCasResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listServerCas as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listServerCas as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listServerCas with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listServerCas = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listServerCas(request), expectedError); - const actualRequest = (client.innerApiCalls.listServerCas as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listServerCas as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listServerCas with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.listServerCas(request), expectedError); - }); - }); - - describe('listServerCertificates', () => { - it('invokes listServerCertificates without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.InstancesListServerCertificatesResponse() - ); - client.innerApiCalls.listServerCertificates = stubSimpleCall(expectedResponse); - const [response] = await client.listServerCertificates(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listServerCertificates as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listServerCertificates as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listServerCertificates without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.InstancesListServerCertificatesResponse() - ); - client.innerApiCalls.listServerCertificates = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listServerCertificates( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IInstancesListServerCertificatesResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listServerCertificates as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listServerCertificates as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listServerCertificates with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listServerCertificates = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listServerCertificates(request), expectedError); - const actualRequest = (client.innerApiCalls.listServerCertificates as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listServerCertificates as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listServerCertificates with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.listServerCertificates(request), expectedError); - }); - }); - - describe('listEntraIdCertificates', () => { - it('invokes listEntraIdCertificates without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.InstancesListEntraIdCertificatesResponse() - ); - client.innerApiCalls.listEntraIdCertificates = stubSimpleCall(expectedResponse); - const [response] = await client.listEntraIdCertificates(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listEntraIdCertificates as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listEntraIdCertificates as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listEntraIdCertificates without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.InstancesListEntraIdCertificatesResponse() - ); - client.innerApiCalls.listEntraIdCertificates = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listEntraIdCertificates( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IInstancesListEntraIdCertificatesResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listEntraIdCertificates as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listEntraIdCertificates as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listEntraIdCertificates with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listEntraIdCertificates = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listEntraIdCertificates(request), expectedError); - const actualRequest = (client.innerApiCalls.listEntraIdCertificates as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listEntraIdCertificates as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listEntraIdCertificates with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.listEntraIdCertificates(request), expectedError); - }); - }); - - describe('patch', () => { - it('invokes patch without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPatchRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPatchRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPatchRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.patch = stubSimpleCall(expectedResponse); - const [response] = await client.patch(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes patch without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPatchRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPatchRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPatchRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.patch = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.patch( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes patch with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPatchRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPatchRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPatchRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.patch = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.patch(request), expectedError); - const actualRequest = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.patch as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes patch with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPatchRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPatchRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPatchRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.patch(request), expectedError); - }); - }); - - describe('promoteReplica', () => { - it('invokes promoteReplica without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.promoteReplica = stubSimpleCall(expectedResponse); - const [response] = await client.promoteReplica(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.promoteReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.promoteReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes promoteReplica without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.promoteReplica = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.promoteReplica( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.promoteReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.promoteReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes promoteReplica with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.promoteReplica = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.promoteReplica(request), expectedError); - const actualRequest = (client.innerApiCalls.promoteReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.promoteReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes promoteReplica with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.promoteReplica(request), expectedError); - }); - }); - - describe('switchover', () => { - it('invokes switchover without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.switchover = stubSimpleCall(expectedResponse); - const [response] = await client.switchover(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.switchover as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.switchover as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes switchover without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.switchover = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.switchover( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.switchover as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.switchover as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes switchover with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.switchover = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.switchover(request), expectedError); - const actualRequest = (client.innerApiCalls.switchover as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.switchover as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes switchover with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.switchover(request), expectedError); - }); - }); - - describe('resetSslConfig', () => { - it('invokes resetSslConfig without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.resetSslConfig = stubSimpleCall(expectedResponse); - const [response] = await client.resetSslConfig(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.resetSslConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.resetSslConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes resetSslConfig without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.resetSslConfig = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.resetSslConfig( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.resetSslConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.resetSslConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes resetSslConfig with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.resetSslConfig = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.resetSslConfig(request), expectedError); - const actualRequest = (client.innerApiCalls.resetSslConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.resetSslConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes resetSslConfig with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.resetSslConfig(request), expectedError); - }); - }); - - describe('restart', () => { - it('invokes restart without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRestartRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRestartRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRestartRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.restart = stubSimpleCall(expectedResponse); - const [response] = await client.restart(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.restart as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.restart as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes restart without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRestartRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRestartRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRestartRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.restart = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.restart( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.restart as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.restart as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes restart with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRestartRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRestartRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRestartRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.restart = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.restart(request), expectedError); - const actualRequest = (client.innerApiCalls.restart as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.restart as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes restart with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRestartRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRestartRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRestartRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.restart(request), expectedError); - }); - }); - - describe('restoreBackup', () => { - it('invokes restoreBackup without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.restoreBackup = stubSimpleCall(expectedResponse); - const [response] = await client.restoreBackup(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.restoreBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.restoreBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes restoreBackup without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.restoreBackup = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.restoreBackup( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.restoreBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.restoreBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes restoreBackup with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.restoreBackup = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.restoreBackup(request), expectedError); - const actualRequest = (client.innerApiCalls.restoreBackup as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.restoreBackup as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes restoreBackup with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.restoreBackup(request), expectedError); - }); - }); - - describe('rotateServerCa', () => { - it('invokes rotateServerCa without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.rotateServerCa = stubSimpleCall(expectedResponse); - const [response] = await client.rotateServerCa(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.rotateServerCa as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateServerCa as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateServerCa without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.rotateServerCa = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.rotateServerCa( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.rotateServerCa as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateServerCa as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateServerCa with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.rotateServerCa = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.rotateServerCa(request), expectedError); - const actualRequest = (client.innerApiCalls.rotateServerCa as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateServerCa as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateServerCa with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.rotateServerCa(request), expectedError); - }); - }); - - describe('rotateServerCertificate', () => { - it('invokes rotateServerCertificate without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.rotateServerCertificate = stubSimpleCall(expectedResponse); - const [response] = await client.rotateServerCertificate(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.rotateServerCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateServerCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateServerCertificate without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.rotateServerCertificate = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.rotateServerCertificate( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.rotateServerCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateServerCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateServerCertificate with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.rotateServerCertificate = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.rotateServerCertificate(request), expectedError); - const actualRequest = (client.innerApiCalls.rotateServerCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateServerCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateServerCertificate with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.rotateServerCertificate(request), expectedError); - }); - }); - - describe('rotateEntraIdCertificate', () => { - it('invokes rotateEntraIdCertificate without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.rotateEntraIdCertificate = stubSimpleCall(expectedResponse); - const [response] = await client.rotateEntraIdCertificate(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.rotateEntraIdCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateEntraIdCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateEntraIdCertificate without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.rotateEntraIdCertificate = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.rotateEntraIdCertificate( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.rotateEntraIdCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateEntraIdCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateEntraIdCertificate with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.rotateEntraIdCertificate = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.rotateEntraIdCertificate(request), expectedError); - const actualRequest = (client.innerApiCalls.rotateEntraIdCertificate as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rotateEntraIdCertificate as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rotateEntraIdCertificate with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.rotateEntraIdCertificate(request), expectedError); - }); - }); - - describe('startReplica', () => { - it('invokes startReplica without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.startReplica = stubSimpleCall(expectedResponse); - const [response] = await client.startReplica(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.startReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.startReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes startReplica without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.startReplica = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.startReplica( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.startReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.startReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes startReplica with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.startReplica = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.startReplica(request), expectedError); - const actualRequest = (client.innerApiCalls.startReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.startReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes startReplica with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.startReplica(request), expectedError); - }); - }); - - describe('stopReplica', () => { - it('invokes stopReplica without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.stopReplica = stubSimpleCall(expectedResponse); - const [response] = await client.stopReplica(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.stopReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.stopReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes stopReplica without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.stopReplica = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.stopReplica( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.stopReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.stopReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes stopReplica with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.stopReplica = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.stopReplica(request), expectedError); - const actualRequest = (client.innerApiCalls.stopReplica as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.stopReplica as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes stopReplica with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.stopReplica(request), expectedError); - }); - }); - - describe('truncateLog', () => { - it('invokes truncateLog without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.truncateLog = stubSimpleCall(expectedResponse); - const [response] = await client.truncateLog(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.truncateLog as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.truncateLog as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes truncateLog without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.truncateLog = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.truncateLog( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.truncateLog as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.truncateLog as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes truncateLog with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.truncateLog = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.truncateLog(request), expectedError); - const actualRequest = (client.innerApiCalls.truncateLog as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.truncateLog as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes truncateLog with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.truncateLog(request), expectedError); - }); - }); - - describe('update', () => { - it('invokes update without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.update = stubSimpleCall(expectedResponse); - const [response] = await client.update(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes update without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.update = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.update( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes update with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.update = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.update(request), expectedError); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes update with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.update(request), expectedError); - }); - }); - - describe('createEphemeral', () => { - it('invokes createEphemeral without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SslCert() - ); - client.innerApiCalls.createEphemeral = stubSimpleCall(expectedResponse); - const [response] = await client.createEphemeral(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createEphemeral as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createEphemeral as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes createEphemeral without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SslCert() - ); - client.innerApiCalls.createEphemeral = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.createEphemeral( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.ISslCert|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createEphemeral as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createEphemeral as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes createEphemeral with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createEphemeral = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.createEphemeral(request), expectedError); - const actualRequest = (client.innerApiCalls.createEphemeral as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createEphemeral as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes createEphemeral with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.createEphemeral(request), expectedError); - }); - }); - - describe('rescheduleMaintenance', () => { - it('invokes rescheduleMaintenance without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.rescheduleMaintenance = stubSimpleCall(expectedResponse); - const [response] = await client.rescheduleMaintenance(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.rescheduleMaintenance as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rescheduleMaintenance as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rescheduleMaintenance without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.rescheduleMaintenance = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.rescheduleMaintenance( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.rescheduleMaintenance as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rescheduleMaintenance as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rescheduleMaintenance with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.rescheduleMaintenance = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.rescheduleMaintenance(request), expectedError); - const actualRequest = (client.innerApiCalls.rescheduleMaintenance as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.rescheduleMaintenance as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rescheduleMaintenance with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.rescheduleMaintenance(request), expectedError); - }); - }); - - describe('verifyExternalSyncSettings', () => { - it('invokes verifyExternalSyncSettings without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsResponse() - ); - client.innerApiCalls.verifyExternalSyncSettings = stubSimpleCall(expectedResponse); - const [response] = await client.verifyExternalSyncSettings(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.verifyExternalSyncSettings as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.verifyExternalSyncSettings as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes verifyExternalSyncSettings without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsResponse() - ); - client.innerApiCalls.verifyExternalSyncSettings = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.verifyExternalSyncSettings( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.verifyExternalSyncSettings as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.verifyExternalSyncSettings as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes verifyExternalSyncSettings with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.verifyExternalSyncSettings = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.verifyExternalSyncSettings(request), expectedError); - const actualRequest = (client.innerApiCalls.verifyExternalSyncSettings as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.verifyExternalSyncSettings as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes verifyExternalSyncSettings with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.verifyExternalSyncSettings(request), expectedError); - }); - }); - - describe('startExternalSync', () => { - it('invokes startExternalSync without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.startExternalSync = stubSimpleCall(expectedResponse); - const [response] = await client.startExternalSync(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.startExternalSync as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.startExternalSync as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes startExternalSync without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.startExternalSync = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.startExternalSync( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.startExternalSync as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.startExternalSync as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes startExternalSync with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.startExternalSync = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.startExternalSync(request), expectedError); - const actualRequest = (client.innerApiCalls.startExternalSync as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.startExternalSync as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes startExternalSync with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.startExternalSync(request), expectedError); - }); - }); - - describe('performDiskShrink', () => { - it('invokes performDiskShrink without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.performDiskShrink = stubSimpleCall(expectedResponse); - const [response] = await client.performDiskShrink(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.performDiskShrink as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.performDiskShrink as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes performDiskShrink without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.performDiskShrink = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.performDiskShrink( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.performDiskShrink as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.performDiskShrink as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes performDiskShrink with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.performDiskShrink = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.performDiskShrink(request), expectedError); - const actualRequest = (client.innerApiCalls.performDiskShrink as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.performDiskShrink as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes performDiskShrink with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.performDiskShrink(request), expectedError); - }); - }); - - describe('getDiskShrinkConfig', () => { - it('invokes getDiskShrinkConfig without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigResponse() - ); - client.innerApiCalls.getDiskShrinkConfig = stubSimpleCall(expectedResponse); - const [response] = await client.getDiskShrinkConfig(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getDiskShrinkConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getDiskShrinkConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getDiskShrinkConfig without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigResponse() - ); - client.innerApiCalls.getDiskShrinkConfig = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getDiskShrinkConfig( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getDiskShrinkConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getDiskShrinkConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getDiskShrinkConfig with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getDiskShrinkConfig = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getDiskShrinkConfig(request), expectedError); - const actualRequest = (client.innerApiCalls.getDiskShrinkConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getDiskShrinkConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getDiskShrinkConfig with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getDiskShrinkConfig(request), expectedError); - }); - }); - - describe('resetReplicaSize', () => { - it('invokes resetReplicaSize without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.resetReplicaSize = stubSimpleCall(expectedResponse); - const [response] = await client.resetReplicaSize(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.resetReplicaSize as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.resetReplicaSize as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes resetReplicaSize without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.resetReplicaSize = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.resetReplicaSize( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.resetReplicaSize as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.resetReplicaSize as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes resetReplicaSize with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.resetReplicaSize = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.resetReplicaSize(request), expectedError); - const actualRequest = (client.innerApiCalls.resetReplicaSize as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.resetReplicaSize as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes resetReplicaSize with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.resetReplicaSize(request), expectedError); - }); - }); - - describe('getLatestRecoveryTime', () => { - it('invokes getLatestRecoveryTime without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeResponse() - ); - client.innerApiCalls.getLatestRecoveryTime = stubSimpleCall(expectedResponse); - const [response] = await client.getLatestRecoveryTime(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getLatestRecoveryTime as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getLatestRecoveryTime as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getLatestRecoveryTime without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeResponse() - ); - client.innerApiCalls.getLatestRecoveryTime = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLatestRecoveryTime( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getLatestRecoveryTime as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getLatestRecoveryTime as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getLatestRecoveryTime with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getLatestRecoveryTime = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLatestRecoveryTime(request), expectedError); - const actualRequest = (client.innerApiCalls.getLatestRecoveryTime as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getLatestRecoveryTime as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getLatestRecoveryTime with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getLatestRecoveryTime(request), expectedError); - }); - }); - - describe('executeSql', () => { - it('invokes executeSql without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse() - ); - client.innerApiCalls.executeSql = stubSimpleCall(expectedResponse); - const [response] = await client.executeSql(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.executeSql as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.executeSql as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes executeSql without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse() - ); - client.innerApiCalls.executeSql = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.executeSql( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.executeSql as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.executeSql as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes executeSql with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.executeSql = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.executeSql(request), expectedError); - const actualRequest = (client.innerApiCalls.executeSql as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.executeSql as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes executeSql with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.executeSql(request), expectedError); - }); - }); - - describe('acquireSsrsLease', () => { - it('invokes acquireSsrsLease without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseResponse() - ); - client.innerApiCalls.acquireSsrsLease = stubSimpleCall(expectedResponse); - const [response] = await client.acquireSsrsLease(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.acquireSsrsLease as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.acquireSsrsLease as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes acquireSsrsLease without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseResponse() - ); - client.innerApiCalls.acquireSsrsLease = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.acquireSsrsLease( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.acquireSsrsLease as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.acquireSsrsLease as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes acquireSsrsLease with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.acquireSsrsLease = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.acquireSsrsLease(request), expectedError); - const actualRequest = (client.innerApiCalls.acquireSsrsLease as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.acquireSsrsLease as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes acquireSsrsLease with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.acquireSsrsLease(request), expectedError); - }); - }); - - describe('releaseSsrsLease', () => { - it('invokes releaseSsrsLease without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseResponse() - ); - client.innerApiCalls.releaseSsrsLease = stubSimpleCall(expectedResponse); - const [response] = await client.releaseSsrsLease(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.releaseSsrsLease as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.releaseSsrsLease as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes releaseSsrsLease without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseResponse() - ); - client.innerApiCalls.releaseSsrsLease = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.releaseSsrsLease( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.releaseSsrsLease as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.releaseSsrsLease as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes releaseSsrsLease with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.releaseSsrsLease = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.releaseSsrsLease(request), expectedError); - const actualRequest = (client.innerApiCalls.releaseSsrsLease as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.releaseSsrsLease as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes releaseSsrsLease with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.releaseSsrsLease(request), expectedError); - }); - }); - - describe('preCheckMajorVersionUpgrade', () => { - it('invokes preCheckMajorVersionUpgrade without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.preCheckMajorVersionUpgrade = stubSimpleCall(expectedResponse); - const [response] = await client.preCheckMajorVersionUpgrade(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes preCheckMajorVersionUpgrade without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.preCheckMajorVersionUpgrade = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.preCheckMajorVersionUpgrade( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes preCheckMajorVersionUpgrade with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.preCheckMajorVersionUpgrade = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.preCheckMajorVersionUpgrade(request), expectedError); - const actualRequest = (client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes preCheckMajorVersionUpgrade with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.preCheckMajorVersionUpgrade(request), expectedError); - }); - }); - - describe('pointInTimeRestore', () => { - it('invokes pointInTimeRestore without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.pointInTimeRestore = stubSimpleCall(expectedResponse); - const [response] = await client.pointInTimeRestore(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.pointInTimeRestore as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.pointInTimeRestore as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes pointInTimeRestore without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.pointInTimeRestore = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.pointInTimeRestore( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.pointInTimeRestore as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.pointInTimeRestore as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes pointInTimeRestore with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.pointInTimeRestore = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.pointInTimeRestore(request), expectedError); - const actualRequest = (client.innerApiCalls.pointInTimeRestore as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.pointInTimeRestore as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes pointInTimeRestore with closed client', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest', ['parent']); - request.parent = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.pointInTimeRestore(request), expectedError); - }); - }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - }); - - describe('Path templates', () => { - - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + }); - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } + }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); + }); + }); + + describe('addServerCa', () => { + it('invokes addServerCa without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.addServerCa = stubSimpleCall(expectedResponse); + const [response] = await client.addServerCa(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.addServerCa as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addServerCa as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('invokes addServerCa without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.addServerCa = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.addServerCa( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.addServerCa as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addServerCa as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - describe('project', async () => { - const fakePath = "/rendered/path/project"; - const expectedParameters = { - project: "projectValue", - }; - const client = new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.projectPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.projectPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('projectPath', () => { - const result = client.projectPath("projectValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.projectPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + it('invokes addServerCa with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.addServerCa = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.addServerCa(request), expectedError); + const actualRequest = ( + client.innerApiCalls.addServerCa as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addServerCa as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchProjectFromProjectName', () => { - const result = client.matchProjectFromProjectName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.projectPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('invokes addServerCa with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddServerCaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.addServerCa(request), expectedError); + }); + }); + + describe('addServerCertificate', () => { + it('invokes addServerCertificate without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.addServerCertificate = + stubSimpleCall(expectedResponse); + const [response] = await client.addServerCertificate(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.addServerCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addServerCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes addServerCertificate without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.addServerCertificate = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.addServerCertificate( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.addServerCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addServerCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes addServerCertificate with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.addServerCertificate = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.addServerCertificate(request), expectedError); + const actualRequest = ( + client.innerApiCalls.addServerCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addServerCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes addServerCertificate with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddServerCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.addServerCertificate(request), expectedError); + }); + }); + + describe('addEntraIdCertificate', () => { + it('invokes addEntraIdCertificate without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.addEntraIdCertificate = + stubSimpleCall(expectedResponse); + const [response] = await client.addEntraIdCertificate(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.addEntraIdCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addEntraIdCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes addEntraIdCertificate without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.addEntraIdCertificate = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.addEntraIdCertificate( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.addEntraIdCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addEntraIdCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes addEntraIdCertificate with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.addEntraIdCertificate = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.addEntraIdCertificate(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.addEntraIdCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.addEntraIdCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes addEntraIdCertificate with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAddEntraIdCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.addEntraIdCertificate(request), + expectedError, + ); + }); + }); + + describe('clone', () => { + it('invokes clone without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesCloneRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesCloneRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesCloneRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.clone = stubSimpleCall(expectedResponse); + const [response] = await client.clone(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.clone as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.clone as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes clone without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesCloneRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesCloneRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesCloneRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.clone = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.clone( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.clone as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.clone as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes clone with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesCloneRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesCloneRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesCloneRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.clone = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.clone(request), expectedError); + const actualRequest = (client.innerApiCalls.clone as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.clone as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes clone with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesCloneRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesCloneRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesCloneRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.clone(request), expectedError); + }); + }); + + describe('delete', () => { + it('invokes delete without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.delete = stubSimpleCall(expectedResponse); + const [response] = await client.delete(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes delete without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.delete = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.delete( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes delete with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.delete(request), expectedError); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes delete with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.delete(request), expectedError); + }); + }); + + describe('demoteMaster', () => { + it('invokes demoteMaster without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.demoteMaster = stubSimpleCall(expectedResponse); + const [response] = await client.demoteMaster(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.demoteMaster as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.demoteMaster as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes demoteMaster without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.demoteMaster = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.demoteMaster( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.demoteMaster as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.demoteMaster as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes demoteMaster with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.demoteMaster = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.demoteMaster(request), expectedError); + const actualRequest = ( + client.innerApiCalls.demoteMaster as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.demoteMaster as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes demoteMaster with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDemoteMasterRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.demoteMaster(request), expectedError); + }); + }); + + describe('demote', () => { + it('invokes demote without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.demote = stubSimpleCall(expectedResponse); + const [response] = await client.demote(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.demote as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.demote as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes demote without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.demote = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.demote( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.demote as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.demote as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes demote with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.demote = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.demote(request), expectedError); + const actualRequest = (client.innerApiCalls.demote as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.demote as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes demote with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesDemoteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.demote(request), expectedError); + }); + }); + + describe('export', () => { + it('invokes export without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesExportRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesExportRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesExportRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.export = stubSimpleCall(expectedResponse); + const [response] = await client.export(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.export as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.export as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes export without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesExportRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesExportRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesExportRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.export = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.export( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.export as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.export as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes export with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesExportRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesExportRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesExportRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.export = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.export(request), expectedError); + const actualRequest = (client.innerApiCalls.export as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.export as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes export with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesExportRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesExportRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesExportRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.export(request), expectedError); + }); + }); + + describe('failover', () => { + it('invokes failover without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.failover = stubSimpleCall(expectedResponse); + const [response] = await client.failover(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.failover as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.failover as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes failover without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.failover = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.failover( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.failover as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.failover as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes failover with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.failover = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.failover(request), expectedError); + const actualRequest = ( + client.innerApiCalls.failover as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.failover as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes failover with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesFailoverRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.failover(request), expectedError); + }); + }); + + describe('reencrypt', () => { + it('invokes reencrypt without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.reencrypt = stubSimpleCall(expectedResponse); + const [response] = await client.reencrypt(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.reencrypt as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.reencrypt as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes reencrypt without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.reencrypt = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.reencrypt( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.reencrypt as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.reencrypt as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes reencrypt with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.reencrypt = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.reencrypt(request), expectedError); + const actualRequest = ( + client.innerApiCalls.reencrypt as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.reencrypt as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes reencrypt with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesReencryptRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.reencrypt(request), expectedError); + }); + }); + + describe('get', () => { + it('invokes get without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.DatabaseInstance(), + ); + client.innerApiCalls.get = stubSimpleCall(expectedResponse); + const [response] = await client.get(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes get without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.DatabaseInstance(), + ); + client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.get( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IDatabaseInstance | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes get with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.get(request), expectedError); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes get with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.get(request), expectedError); + }); + }); + + describe('import', () => { + it('invokes import without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesImportRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesImportRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesImportRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.import = stubSimpleCall(expectedResponse); + const [response] = await client.import(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.import as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.import as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes import without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesImportRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesImportRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesImportRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.import = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.import( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.import as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.import as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes import with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesImportRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesImportRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesImportRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.import = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.import(request), expectedError); + const actualRequest = (client.innerApiCalls.import as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.import as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes import with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesImportRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesImportRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesImportRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.import(request), expectedError); + }); + }); + + describe('insert', () => { + it('invokes insert without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.insert = stubSimpleCall(expectedResponse); + const [response] = await client.insert(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes insert without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.insert = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.insert( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes insert with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.insert(request), expectedError); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes insert with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.insert(request), expectedError); + }); + }); + + describe('list', () => { + it('invokes list without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.InstancesListResponse(), + ); + client.innerApiCalls.list = stubSimpleCall(expectedResponse); + const [response] = await client.list(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes list without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.InstancesListResponse(), + ); + client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.list( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IInstancesListResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes list with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.list(request), expectedError); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes list with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.list(request), expectedError); + }); + }); + + describe('listServerCas', () => { + it('invokes listServerCas without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.InstancesListServerCasResponse(), + ); + client.innerApiCalls.listServerCas = stubSimpleCall(expectedResponse); + const [response] = await client.listServerCas(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listServerCas as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listServerCas as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listServerCas without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.InstancesListServerCasResponse(), + ); + client.innerApiCalls.listServerCas = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listServerCas( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IInstancesListServerCasResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listServerCas as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listServerCas as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listServerCas with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listServerCas = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.listServerCas(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listServerCas as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listServerCas as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listServerCas with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListServerCasRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.listServerCas(request), expectedError); + }); + }); + + describe('listServerCertificates', () => { + it('invokes listServerCertificates without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.InstancesListServerCertificatesResponse(), + ); + client.innerApiCalls.listServerCertificates = + stubSimpleCall(expectedResponse); + const [response] = await client.listServerCertificates(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listServerCertificates as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listServerCertificates as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listServerCertificates without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.InstancesListServerCertificatesResponse(), + ); + client.innerApiCalls.listServerCertificates = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listServerCertificates( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IInstancesListServerCertificatesResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listServerCertificates as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listServerCertificates as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listServerCertificates with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listServerCertificates = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.listServerCertificates(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.listServerCertificates as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listServerCertificates as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listServerCertificates with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListServerCertificatesRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.listServerCertificates(request), + expectedError, + ); + }); + }); + + describe('listEntraIdCertificates', () => { + it('invokes listEntraIdCertificates without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.InstancesListEntraIdCertificatesResponse(), + ); + client.innerApiCalls.listEntraIdCertificates = + stubSimpleCall(expectedResponse); + const [response] = await client.listEntraIdCertificates(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listEntraIdCertificates as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listEntraIdCertificates as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listEntraIdCertificates without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.InstancesListEntraIdCertificatesResponse(), + ); + client.innerApiCalls.listEntraIdCertificates = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listEntraIdCertificates( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IInstancesListEntraIdCertificatesResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listEntraIdCertificates as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listEntraIdCertificates as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listEntraIdCertificates with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listEntraIdCertificates = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.listEntraIdCertificates(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.listEntraIdCertificates as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listEntraIdCertificates as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listEntraIdCertificates with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesListEntraIdCertificatesRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.listEntraIdCertificates(request), + expectedError, + ); + }); + }); + + describe('patch', () => { + it('invokes patch without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPatchRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPatchRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPatchRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.patch = stubSimpleCall(expectedResponse); + const [response] = await client.patch(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.patch as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.patch as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes patch without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPatchRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPatchRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPatchRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.patch = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.patch( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.patch as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.patch as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes patch with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPatchRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPatchRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPatchRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.patch = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.patch(request), expectedError); + const actualRequest = (client.innerApiCalls.patch as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.patch as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes patch with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPatchRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPatchRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPatchRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.patch(request), expectedError); + }); + }); + + describe('promoteReplica', () => { + it('invokes promoteReplica without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.promoteReplica = stubSimpleCall(expectedResponse); + const [response] = await client.promoteReplica(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.promoteReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.promoteReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes promoteReplica without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.promoteReplica = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.promoteReplica( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.promoteReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.promoteReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes promoteReplica with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.promoteReplica = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.promoteReplica(request), expectedError); + const actualRequest = ( + client.innerApiCalls.promoteReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.promoteReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes promoteReplica with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPromoteReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.promoteReplica(request), expectedError); + }); + }); + + describe('switchover', () => { + it('invokes switchover without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.switchover = stubSimpleCall(expectedResponse); + const [response] = await client.switchover(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.switchover as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.switchover as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes switchover without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.switchover = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.switchover( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.switchover as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.switchover as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes switchover with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.switchover = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.switchover(request), expectedError); + const actualRequest = ( + client.innerApiCalls.switchover as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.switchover as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes switchover with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesSwitchoverRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.switchover(request), expectedError); + }); + }); + + describe('resetSslConfig', () => { + it('invokes resetSslConfig without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.resetSslConfig = stubSimpleCall(expectedResponse); + const [response] = await client.resetSslConfig(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.resetSslConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resetSslConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes resetSslConfig without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.resetSslConfig = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.resetSslConfig( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.resetSslConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resetSslConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes resetSslConfig with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.resetSslConfig = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.resetSslConfig(request), expectedError); + const actualRequest = ( + client.innerApiCalls.resetSslConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resetSslConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes resetSslConfig with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesResetSslConfigRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.resetSslConfig(request), expectedError); + }); + }); + + describe('restart', () => { + it('invokes restart without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRestartRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRestartRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRestartRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.restart = stubSimpleCall(expectedResponse); + const [response] = await client.restart(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.restart as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.restart as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes restart without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRestartRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRestartRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRestartRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.restart = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.restart( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.restart as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.restart as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes restart with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRestartRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRestartRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRestartRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.restart = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.restart(request), expectedError); + const actualRequest = (client.innerApiCalls.restart as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.restart as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes restart with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRestartRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRestartRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRestartRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.restart(request), expectedError); + }); + }); + + describe('restoreBackup', () => { + it('invokes restoreBackup without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.restoreBackup = stubSimpleCall(expectedResponse); + const [response] = await client.restoreBackup(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.restoreBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.restoreBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes restoreBackup without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.restoreBackup = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.restoreBackup( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.restoreBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.restoreBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes restoreBackup with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.restoreBackup = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.restoreBackup(request), expectedError); + const actualRequest = ( + client.innerApiCalls.restoreBackup as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.restoreBackup as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes restoreBackup with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRestoreBackupRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.restoreBackup(request), expectedError); + }); + }); + + describe('rotateServerCa', () => { + it('invokes rotateServerCa without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.rotateServerCa = stubSimpleCall(expectedResponse); + const [response] = await client.rotateServerCa(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.rotateServerCa as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateServerCa as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes rotateServerCa without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.rotateServerCa = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.rotateServerCa( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.rotateServerCa as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateServerCa as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes rotateServerCa with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.rotateServerCa = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.rotateServerCa(request), expectedError); + const actualRequest = ( + client.innerApiCalls.rotateServerCa as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateServerCa as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes rotateServerCa with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateServerCaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.rotateServerCa(request), expectedError); + }); + }); + + describe('rotateServerCertificate', () => { + it('invokes rotateServerCertificate without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.rotateServerCertificate = + stubSimpleCall(expectedResponse); + const [response] = await client.rotateServerCertificate(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.rotateServerCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateServerCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes rotateServerCertificate without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.rotateServerCertificate = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.rotateServerCertificate( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.rotateServerCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateServerCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes rotateServerCertificate with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.rotateServerCertificate = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.rotateServerCertificate(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.rotateServerCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateServerCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes rotateServerCertificate with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateServerCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.rotateServerCertificate(request), + expectedError, + ); + }); + }); + + describe('rotateEntraIdCertificate', () => { + it('invokes rotateEntraIdCertificate without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.rotateEntraIdCertificate = + stubSimpleCall(expectedResponse); + const [response] = await client.rotateEntraIdCertificate(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.rotateEntraIdCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateEntraIdCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes rotateEntraIdCertificate without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.rotateEntraIdCertificate = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.rotateEntraIdCertificate( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.rotateEntraIdCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateEntraIdCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes rotateEntraIdCertificate with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.rotateEntraIdCertificate = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.rotateEntraIdCertificate(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.rotateEntraIdCertificate as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rotateEntraIdCertificate as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes rotateEntraIdCertificate with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRotateEntraIdCertificateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.rotateEntraIdCertificate(request), + expectedError, + ); + }); + }); + + describe('startReplica', () => { + it('invokes startReplica without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.startReplica = stubSimpleCall(expectedResponse); + const [response] = await client.startReplica(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.startReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.startReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes startReplica without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.startReplica = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.startReplica( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.startReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.startReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes startReplica with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.startReplica = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.startReplica(request), expectedError); + const actualRequest = ( + client.innerApiCalls.startReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.startReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes startReplica with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStartReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.startReplica(request), expectedError); + }); + }); + + describe('stopReplica', () => { + it('invokes stopReplica without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.stopReplica = stubSimpleCall(expectedResponse); + const [response] = await client.stopReplica(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.stopReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.stopReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes stopReplica without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.stopReplica = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.stopReplica( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.stopReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.stopReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes stopReplica with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.stopReplica = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.stopReplica(request), expectedError); + const actualRequest = ( + client.innerApiCalls.stopReplica as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.stopReplica as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes stopReplica with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStopReplicaRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.stopReplica(request), expectedError); + }); + }); + + describe('truncateLog', () => { + it('invokes truncateLog without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.truncateLog = stubSimpleCall(expectedResponse); + const [response] = await client.truncateLog(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.truncateLog as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.truncateLog as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes truncateLog without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.truncateLog = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.truncateLog( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.truncateLog as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.truncateLog as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes truncateLog with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.truncateLog = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.truncateLog(request), expectedError); + const actualRequest = ( + client.innerApiCalls.truncateLog as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.truncateLog as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes truncateLog with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesTruncateLogRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.truncateLog(request), expectedError); + }); + }); + + describe('update', () => { + it('invokes update without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.update = stubSimpleCall(expectedResponse); + const [response] = await client.update(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes update without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.update = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.update( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes update with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.update = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.update(request), expectedError); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes update with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.update(request), expectedError); + }); + }); + + describe('createEphemeral', () => { + it('invokes createEphemeral without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SslCert(), + ); + client.innerApiCalls.createEphemeral = stubSimpleCall(expectedResponse); + const [response] = await client.createEphemeral(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createEphemeral as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createEphemeral as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes createEphemeral without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SslCert(), + ); + client.innerApiCalls.createEphemeral = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.createEphemeral( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.ISslCert | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createEphemeral as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createEphemeral as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes createEphemeral with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createEphemeral = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.createEphemeral(request), expectedError); + const actualRequest = ( + client.innerApiCalls.createEphemeral as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createEphemeral as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes createEphemeral with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesCreateEphemeralCertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.createEphemeral(request), expectedError); + }); + }); + + describe('rescheduleMaintenance', () => { + it('invokes rescheduleMaintenance without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.rescheduleMaintenance = + stubSimpleCall(expectedResponse); + const [response] = await client.rescheduleMaintenance(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.rescheduleMaintenance as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rescheduleMaintenance as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes rescheduleMaintenance without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.rescheduleMaintenance = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.rescheduleMaintenance( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.rescheduleMaintenance as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rescheduleMaintenance as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes rescheduleMaintenance with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.rescheduleMaintenance = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.rescheduleMaintenance(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.rescheduleMaintenance as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.rescheduleMaintenance as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes rescheduleMaintenance with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.rescheduleMaintenance(request), + expectedError, + ); + }); + }); + + describe('verifyExternalSyncSettings', () => { + it('invokes verifyExternalSyncSettings without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsResponse(), + ); + client.innerApiCalls.verifyExternalSyncSettings = + stubSimpleCall(expectedResponse); + const [response] = await client.verifyExternalSyncSettings(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.verifyExternalSyncSettings as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.verifyExternalSyncSettings as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes verifyExternalSyncSettings without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsResponse(), + ); + client.innerApiCalls.verifyExternalSyncSettings = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.verifyExternalSyncSettings( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.ISqlInstancesVerifyExternalSyncSettingsResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.verifyExternalSyncSettings as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.verifyExternalSyncSettings as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes verifyExternalSyncSettings with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.verifyExternalSyncSettings = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.verifyExternalSyncSettings(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.verifyExternalSyncSettings as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.verifyExternalSyncSettings as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes verifyExternalSyncSettings with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesVerifyExternalSyncSettingsRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.verifyExternalSyncSettings(request), + expectedError, + ); + }); + }); + + describe('startExternalSync', () => { + it('invokes startExternalSync without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.startExternalSync = stubSimpleCall(expectedResponse); + const [response] = await client.startExternalSync(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.startExternalSync as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.startExternalSync as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes startExternalSync without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.startExternalSync = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.startExternalSync( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.startExternalSync as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.startExternalSync as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes startExternalSync with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.startExternalSync = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.startExternalSync(request), expectedError); + const actualRequest = ( + client.innerApiCalls.startExternalSync as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.startExternalSync as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes startExternalSync with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesStartExternalSyncRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.startExternalSync(request), expectedError); + }); + }); + + describe('performDiskShrink', () => { + it('invokes performDiskShrink without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.performDiskShrink = stubSimpleCall(expectedResponse); + const [response] = await client.performDiskShrink(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.performDiskShrink as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.performDiskShrink as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes performDiskShrink without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.performDiskShrink = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.performDiskShrink( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.performDiskShrink as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.performDiskShrink as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes performDiskShrink with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.performDiskShrink = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.performDiskShrink(request), expectedError); + const actualRequest = ( + client.innerApiCalls.performDiskShrink as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.performDiskShrink as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes performDiskShrink with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPerformDiskShrinkRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.performDiskShrink(request), expectedError); + }); + }); + + describe('getDiskShrinkConfig', () => { + it('invokes getDiskShrinkConfig without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigResponse(), + ); + client.innerApiCalls.getDiskShrinkConfig = + stubSimpleCall(expectedResponse); + const [response] = await client.getDiskShrinkConfig(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getDiskShrinkConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getDiskShrinkConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getDiskShrinkConfig without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigResponse(), + ); + client.innerApiCalls.getDiskShrinkConfig = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getDiskShrinkConfig( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.ISqlInstancesGetDiskShrinkConfigResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getDiskShrinkConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getDiskShrinkConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getDiskShrinkConfig with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getDiskShrinkConfig = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.getDiskShrinkConfig(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getDiskShrinkConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getDiskShrinkConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getDiskShrinkConfig with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetDiskShrinkConfigRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getDiskShrinkConfig(request), expectedError); + }); + }); + + describe('resetReplicaSize', () => { + it('invokes resetReplicaSize without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.resetReplicaSize = stubSimpleCall(expectedResponse); + const [response] = await client.resetReplicaSize(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.resetReplicaSize as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resetReplicaSize as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes resetReplicaSize without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.resetReplicaSize = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.resetReplicaSize( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.resetReplicaSize as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resetReplicaSize as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes resetReplicaSize with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.resetReplicaSize = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.resetReplicaSize(request), expectedError); + const actualRequest = ( + client.innerApiCalls.resetReplicaSize as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.resetReplicaSize as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes resetReplicaSize with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesResetReplicaSizeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.resetReplicaSize(request), expectedError); + }); + }); + + describe('getLatestRecoveryTime', () => { + it('invokes getLatestRecoveryTime without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeResponse(), + ); + client.innerApiCalls.getLatestRecoveryTime = + stubSimpleCall(expectedResponse); + const [response] = await client.getLatestRecoveryTime(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getLatestRecoveryTime as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getLatestRecoveryTime as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getLatestRecoveryTime without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeResponse(), + ); + client.innerApiCalls.getLatestRecoveryTime = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLatestRecoveryTime( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.ISqlInstancesGetLatestRecoveryTimeResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getLatestRecoveryTime as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getLatestRecoveryTime as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getLatestRecoveryTime with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getLatestRecoveryTime = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLatestRecoveryTime(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.getLatestRecoveryTime as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getLatestRecoveryTime as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getLatestRecoveryTime with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesGetLatestRecoveryTimeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.getLatestRecoveryTime(request), + expectedError, + ); + }); + }); + + describe('executeSql', () => { + it('invokes executeSql without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse(), + ); + client.innerApiCalls.executeSql = stubSimpleCall(expectedResponse); + const [response] = await client.executeSql(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.executeSql as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.executeSql as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes executeSql without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlResponse(), + ); + client.innerApiCalls.executeSql = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.executeSql( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.ISqlInstancesExecuteSqlResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.executeSql as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.executeSql as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes executeSql with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.executeSql = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.executeSql(request), expectedError); + const actualRequest = ( + client.innerApiCalls.executeSql as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.executeSql as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes executeSql with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesExecuteSqlRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.executeSql(request), expectedError); + }); + }); + + describe('acquireSsrsLease', () => { + it('invokes acquireSsrsLease without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseResponse(), + ); + client.innerApiCalls.acquireSsrsLease = stubSimpleCall(expectedResponse); + const [response] = await client.acquireSsrsLease(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.acquireSsrsLease as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.acquireSsrsLease as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes acquireSsrsLease without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseResponse(), + ); + client.innerApiCalls.acquireSsrsLease = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.acquireSsrsLease( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.ISqlInstancesAcquireSsrsLeaseResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.acquireSsrsLease as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.acquireSsrsLease as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes acquireSsrsLease with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.acquireSsrsLease = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.acquireSsrsLease(request), expectedError); + const actualRequest = ( + client.innerApiCalls.acquireSsrsLease as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.acquireSsrsLease as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes acquireSsrsLease with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesAcquireSsrsLeaseRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.acquireSsrsLease(request), expectedError); + }); + }); + + describe('releaseSsrsLease', () => { + it('invokes releaseSsrsLease without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseResponse(), + ); + client.innerApiCalls.releaseSsrsLease = stubSimpleCall(expectedResponse); + const [response] = await client.releaseSsrsLease(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.releaseSsrsLease as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.releaseSsrsLease as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes releaseSsrsLease without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseResponse(), + ); + client.innerApiCalls.releaseSsrsLease = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.releaseSsrsLease( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.ISqlInstancesReleaseSsrsLeaseResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.releaseSsrsLease as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.releaseSsrsLease as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes releaseSsrsLease with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.releaseSsrsLease = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.releaseSsrsLease(request), expectedError); + const actualRequest = ( + client.innerApiCalls.releaseSsrsLease as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.releaseSsrsLease as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes releaseSsrsLease with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesReleaseSsrsLeaseRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.releaseSsrsLease(request), expectedError); + }); + }); + + describe('preCheckMajorVersionUpgrade', () => { + it('invokes preCheckMajorVersionUpgrade without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.preCheckMajorVersionUpgrade = + stubSimpleCall(expectedResponse); + const [response] = await client.preCheckMajorVersionUpgrade(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes preCheckMajorVersionUpgrade without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.preCheckMajorVersionUpgrade = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.preCheckMajorVersionUpgrade( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes preCheckMajorVersionUpgrade with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.preCheckMajorVersionUpgrade = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.preCheckMajorVersionUpgrade(request), + expectedError, + ); + const actualRequest = ( + client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.preCheckMajorVersionUpgrade as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes preCheckMajorVersionUpgrade with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPreCheckMajorVersionUpgradeRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects( + client.preCheckMajorVersionUpgrade(request), + expectedError, + ); + }); + }); + + describe('pointInTimeRestore', () => { + it('invokes pointInTimeRestore without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.pointInTimeRestore = + stubSimpleCall(expectedResponse); + const [response] = await client.pointInTimeRestore(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.pointInTimeRestore as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.pointInTimeRestore as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes pointInTimeRestore without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.pointInTimeRestore = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.pointInTimeRestore( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.pointInTimeRestore as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.pointInTimeRestore as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes pointInTimeRestore with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.pointInTimeRestore = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.pointInTimeRestore(request), expectedError); + const actualRequest = ( + client.innerApiCalls.pointInTimeRestore as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.pointInTimeRestore as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes pointInTimeRestore with closed client', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlInstancesPointInTimeRestoreRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.pointInTimeRestore(request), expectedError); + }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + it('invokes getLocation without error using callback', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); + }); + it('invokes getLocation with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); + + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); + + describe('project', async () => { + const fakePath = '/rendered/path/project'; + const expectedParameters = { + project: 'projectValue', + }; + const client = + new sqlinstancesserviceModule.v1beta4.SqlInstancesServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.projectPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.projectPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('projectPath', () => { + const result = client.projectPath('projectValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.projectPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromProjectName', () => { + const result = client.matchProjectFromProjectName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.projectPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_operations_service_v1.ts b/packages/google-cloud-sql/test/gapic_sql_operations_service_v1.ts index 5903ce5f34c..56b5f9690f6 100644 --- a/packages/google-cloud-sql/test/gapic_sql_operations_service_v1.ts +++ b/packages/google-cloud-sql/test/gapic_sql_operations_service_v1.ts @@ -19,771 +19,961 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqloperationsserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1.SqlOperationsServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); - - it('has universeDomain', () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); - - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqloperationsserviceModule.v1.SqlOperationsServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqloperationsserviceModule.v1.SqlOperationsServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); - - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); - - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqloperationsserviceModule.v1.SqlOperationsServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); + it('has universeDomain', () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); + + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqloperationsserviceModule.v1.SqlOperationsServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqloperationsserviceModule.v1.SqlOperationsServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + universeDomain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('has port', () => { - const port = sqloperationsserviceModule.v1.SqlOperationsServiceClient.port; - assert(port); - assert(typeof port === 'number'); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + universe_domain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('should create a client with no option', () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient(); - assert(client); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - it('should create a client with gRPC fallback', () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - fallback: true, - }); - assert(client); + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + universeDomain: 'configured.example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } + }); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlOperationsServiceStub, undefined); - await client.initialize(); - assert(client.sqlOperationsServiceStub); + it('has port', () => { + const port = + sqloperationsserviceModule.v1.SqlOperationsServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); + + it('should create a client with no option', () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient(); + assert(client); + }); + + it('should create a client with gRPC fallback', () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + fallback: true, }); + assert(client); + }); - it('has close method for the initialized client', done => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlOperationsServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has initialize method and supports deferred initialization', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + assert.strictEqual(client.sqlOperationsServiceStub, undefined); + await client.initialize(); + assert(client.sqlOperationsServiceStub); + }); - it('has close method for the non-initialized client', done => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlOperationsServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the initialized client', (done) => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlOperationsServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has close method for the non-initialized client', (done) => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlOperationsServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); }); - describe('get', () => { - it('invokes get without error', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlOperationsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsGetRequest', ['operation']); - request.operation = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&operation=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.get = stubSimpleCall(expectedResponse); - const [response] = await client.get(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get without error using callback', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlOperationsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsGetRequest', ['operation']); - request.operation = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&operation=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.get( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get with error', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlOperationsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsGetRequest', ['operation']); - request.operation = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&operation=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.get(request), expectedError); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get with closed client', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlOperationsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsGetRequest', ['operation']); - request.operation = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.get(request), expectedError); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); + }); + }); + + describe('get', () => { + it('invokes get without error', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlOperationsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsGetRequest', + ['operation'], + ); + request.operation = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&operation=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.get = stubSimpleCall(expectedResponse); + const [response] = await client.get(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('list', () => { - it('invokes list without error', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlOperationsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.OperationsListResponse() - ); - client.innerApiCalls.list = stubSimpleCall(expectedResponse); - const [response] = await client.list(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list without error using callback', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlOperationsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.OperationsListResponse() - ); - client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.list( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperationsListResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list with error', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlOperationsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.list(request), expectedError); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list with closed client', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlOperationsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsListRequest', ['project']); - request.project = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.list(request), expectedError); + it('invokes get without error using callback', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlOperationsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsGetRequest', + ['operation'], + ); + request.operation = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&operation=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.get( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes get with error', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlOperationsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsGetRequest', + ['operation'], + ); + request.operation = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&operation=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.get(request), expectedError); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('cancel', () => { - it('invokes cancel without error', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlOperationsCancelRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsCancelRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsCancelRequest', ['operation']); - request.operation = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&operation=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.innerApiCalls.cancel = stubSimpleCall(expectedResponse); - const [response] = await client.cancel(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.cancel as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.cancel as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes cancel without error using callback', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlOperationsCancelRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsCancelRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsCancelRequest', ['operation']); - request.operation = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&operation=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.innerApiCalls.cancel = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.cancel( - request, - (err?: Error|null, result?: protos.google.protobuf.IEmpty|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.cancel as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.cancel as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes cancel with error', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlOperationsCancelRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsCancelRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsCancelRequest', ['operation']); - request.operation = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&operation=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.cancel = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.cancel(request), expectedError); - const actualRequest = (client.innerApiCalls.cancel as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.cancel as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes cancel with closed client', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlOperationsCancelRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsCancelRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlOperationsCancelRequest', ['operation']); - request.operation = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.cancel(request), expectedError); + it('invokes get with closed client', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlOperationsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsGetRequest', + ['operation'], + ); + request.operation = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.get(request), expectedError); }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + describe('list', () => { + it('invokes list without error', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlOperationsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.OperationsListResponse(), + ); + client.innerApiCalls.list = stubSimpleCall(expectedResponse); + const [response] = await client.list(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + + it('invokes list without error using callback', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlOperationsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.OperationsListResponse(), + ); + client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.list( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperationsListResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes list with error', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlOperationsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.list(request), expectedError); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('Path templates', () => { - - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + it('invokes list with closed client', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlOperationsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.list(request), expectedError); + }); + }); + + describe('cancel', () => { + it('invokes cancel without error', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlOperationsCancelRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsCancelRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsCancelRequest', + ['operation'], + ); + request.operation = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&operation=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.innerApiCalls.cancel = stubSimpleCall(expectedResponse); + const [response] = await client.cancel(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.cancel as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.cancel as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('invokes cancel without error using callback', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlOperationsCancelRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsCancelRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsCancelRequest', + ['operation'], + ); + request.operation = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&operation=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.innerApiCalls.cancel = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.cancel( + request, + ( + err?: Error | null, + result?: protos.google.protobuf.IEmpty | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.cancel as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.cancel as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('invokes cancel with error', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlOperationsCancelRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsCancelRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsCancelRequest', + ['operation'], + ); + request.operation = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&operation=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.cancel = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.cancel(request), expectedError); + const actualRequest = (client.innerApiCalls.cancel as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.cancel as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes cancel with closed client', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlOperationsCancelRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsCancelRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlOperationsCancelRequest', + ['operation'], + ); + request.operation = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.cancel(request), expectedError); + }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + it('invokes getLocation without error using callback', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); + }); + it('invokes getLocation with error', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); + + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = + new sqloperationsserviceModule.v1.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_operations_service_v1beta4.ts b/packages/google-cloud-sql/test/gapic_sql_operations_service_v1beta4.ts index 5fca4c39fd7..28cc64f3a40 100644 --- a/packages/google-cloud-sql/test/gapic_sql_operations_service_v1beta4.ts +++ b/packages/google-cloud-sql/test/gapic_sql_operations_service_v1beta4.ts @@ -19,801 +19,1002 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqloperationsserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1beta4.SqlOperationsServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); - - it('has universeDomain', () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); - - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); - - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); - - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); - }); + it('has universeDomain', () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - it('has port', () => { - const port = sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient.port; - assert(port); - assert(typeof port === 'number'); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient + .servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient + .apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + universeDomain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('should create a client with no option', () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient(); - assert(client); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + universe_domain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('should create a client with gRPC fallback', () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - fallback: true, - }); - assert(client); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } + }); + + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + universeDomain: 'configured.example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } + }); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlOperationsServiceStub, undefined); - await client.initialize(); - assert(client.sqlOperationsServiceStub); - }); + it('has port', () => { + const port = + sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('has close method for the initialized client', done => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlOperationsServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('should create a client with no option', () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient(); + assert(client); + }); + + it('should create a client with gRPC fallback', () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + fallback: true, }); + assert(client); + }); - it('has close method for the non-initialized client', done => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlOperationsServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has initialize method and supports deferred initialization', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + assert.strictEqual(client.sqlOperationsServiceStub, undefined); + await client.initialize(); + assert(client.sqlOperationsServiceStub); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has close method for the initialized client', (done) => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlOperationsServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); + it('has close method for the non-initialized client', (done) => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlOperationsServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); }); - describe('get', () => { - it('invokes get without error', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlOperationsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsGetRequest', ['operation']); - request.operation = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&operation=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.get = stubSimpleCall(expectedResponse); - const [response] = await client.get(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get without error using callback', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlOperationsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsGetRequest', ['operation']); - request.operation = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&operation=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.get( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get with error', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlOperationsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsGetRequest', ['operation']); - request.operation = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&operation=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.get(request), expectedError); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get with closed client', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlOperationsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsGetRequest', ['operation']); - request.operation = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.get(request), expectedError); - }); - }); - - describe('list', () => { - it('invokes list without error', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlOperationsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.OperationsListResponse() - ); - client.innerApiCalls.list = stubSimpleCall(expectedResponse); - const [response] = await client.list(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list without error using callback', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlOperationsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.OperationsListResponse() - ); - client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.list( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperationsListResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list with error', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlOperationsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.list(request), expectedError); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list with closed client', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlOperationsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsListRequest', ['project']); - request.project = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.list(request), expectedError); - }); - }); - - describe('cancel', () => { - it('invokes cancel without error', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlOperationsCancelRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsCancelRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsCancelRequest', ['operation']); - request.operation = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&operation=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.innerApiCalls.cancel = stubSimpleCall(expectedResponse); - const [response] = await client.cancel(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.cancel as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.cancel as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes cancel without error using callback', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlOperationsCancelRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsCancelRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsCancelRequest', ['operation']); - request.operation = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&operation=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.innerApiCalls.cancel = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.cancel( - request, - (err?: Error|null, result?: protos.google.protobuf.IEmpty|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.cancel as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.cancel as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes cancel with error', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlOperationsCancelRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsCancelRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsCancelRequest', ['operation']); - request.operation = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&operation=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.cancel = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.cancel(request), expectedError); - const actualRequest = (client.innerApiCalls.cancel as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.cancel as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes cancel with closed client', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlOperationsCancelRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsCancelRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlOperationsCancelRequest', ['operation']); - request.operation = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.cancel(request), expectedError); - }); - }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + }); + + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } + }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); + }); + }); + + describe('get', () => { + it('invokes get without error', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlOperationsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsGetRequest', + ['operation'], + ); + request.operation = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&operation=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.get = stubSimpleCall(expectedResponse); + const [response] = await client.get(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes get without error using callback', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlOperationsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsGetRequest', + ['operation'], + ); + request.operation = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&operation=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.get( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - }); - - describe('Path templates', () => { - - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('invokes get with error', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlOperationsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsGetRequest', + ['operation'], + ); + request.operation = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&operation=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.get(request), expectedError); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('invokes get with closed client', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlOperationsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsGetRequest', + ['operation'], + ); + request.operation = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.get(request), expectedError); + }); + }); + + describe('list', () => { + it('invokes list without error', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlOperationsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.OperationsListResponse(), + ); + client.innerApiCalls.list = stubSimpleCall(expectedResponse); + const [response] = await client.list(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - describe('project', async () => { - const fakePath = "/rendered/path/project"; - const expectedParameters = { - project: "projectValue", - }; - const client = new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.projectPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.projectPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('projectPath', () => { - const result = client.projectPath("projectValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.projectPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + it('invokes list without error using callback', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlOperationsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.OperationsListResponse(), + ); + client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.list( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperationsListResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchProjectFromProjectName', () => { - const result = client.matchProjectFromProjectName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.projectPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('invokes list with error', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlOperationsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.list(request), expectedError); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes list with closed client', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlOperationsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.list(request), expectedError); + }); + }); + + describe('cancel', () => { + it('invokes cancel without error', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlOperationsCancelRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsCancelRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsCancelRequest', + ['operation'], + ); + request.operation = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&operation=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.innerApiCalls.cancel = stubSimpleCall(expectedResponse); + const [response] = await client.cancel(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.cancel as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.cancel as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes cancel without error using callback', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlOperationsCancelRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsCancelRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsCancelRequest', + ['operation'], + ); + request.operation = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&operation=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.innerApiCalls.cancel = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.cancel( + request, + ( + err?: Error | null, + result?: protos.google.protobuf.IEmpty | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.cancel as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.cancel as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes cancel with error', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlOperationsCancelRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsCancelRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsCancelRequest', + ['operation'], + ); + request.operation = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&operation=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.cancel = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.cancel(request), expectedError); + const actualRequest = (client.innerApiCalls.cancel as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.cancel as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes cancel with closed client', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlOperationsCancelRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsCancelRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlOperationsCancelRequest', + ['operation'], + ); + request.operation = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.cancel(request), expectedError); + }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + it('invokes getLocation without error using callback', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); + }); + it('invokes getLocation with error', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); + + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); + + describe('project', async () => { + const fakePath = '/rendered/path/project'; + const expectedParameters = { + project: 'projectValue', + }; + const client = + new sqloperationsserviceModule.v1beta4.SqlOperationsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.projectPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.projectPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('projectPath', () => { + const result = client.projectPath('projectValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.projectPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromProjectName', () => { + const result = client.matchProjectFromProjectName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.projectPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_ssl_certs_service_v1.ts b/packages/google-cloud-sql/test/gapic_sql_ssl_certs_service_v1.ts index d3e88a5978c..07ac5d56e9e 100644 --- a/packages/google-cloud-sql/test/gapic_sql_ssl_certs_service_v1.ts +++ b/packages/google-cloud-sql/test/gapic_sql_ssl_certs_service_v1.ts @@ -19,927 +19,1140 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqlsslcertsserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1.SqlSslCertsServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('has universeDomain', () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); + it('has universeDomain', () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + universeDomain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); + + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + universe_domain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + universeDomain: 'configured.example.com', }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - - it('has port', () => { - const port = sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient.port; - assert(port); - assert(typeof port === 'number'); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('should create a client with no option', () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient(); - assert(client); - }); + it('has port', () => { + const port = sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('should create a client with gRPC fallback', () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - fallback: true, - }); - assert(client); - }); + it('should create a client with no option', () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient(); + assert(client); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlSslCertsServiceStub, undefined); - await client.initialize(); - assert(client.sqlSslCertsServiceStub); - }); + it('should create a client with gRPC fallback', () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + fallback: true, + }); + assert(client); + }); - it('has close method for the initialized client', done => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlSslCertsServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('has initialize method and supports deferred initialization', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlSslCertsServiceStub, undefined); + await client.initialize(); + assert(client.sqlSslCertsServiceStub); + }); - it('has close method for the non-initialized client', done => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlSslCertsServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the initialized client', (done) => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlSslCertsServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has close method for the non-initialized client', (done) => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlSslCertsServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); - }); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); }); - describe('delete', () => { - it('invokes delete without error', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlSslCertsDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsDeleteRequest', ['sha1Fingerprint']); - request.sha1Fingerprint = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&sha1_fingerprint=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.delete = stubSimpleCall(expectedResponse); - const [response] = await client.delete(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); + }); + }); - it('invokes delete without error using callback', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlSslCertsDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsDeleteRequest', ['sha1Fingerprint']); - request.sha1Fingerprint = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&sha1_fingerprint=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.delete = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.delete( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('delete', () => { + it('invokes delete without error', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlSslCertsDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsDeleteRequest', + ['sha1Fingerprint'], + ); + request.sha1Fingerprint = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&sha1_fingerprint=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.delete = stubSimpleCall(expectedResponse); + const [response] = await client.delete(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes delete with error', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlSslCertsDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsDeleteRequest', ['sha1Fingerprint']); - request.sha1Fingerprint = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&sha1_fingerprint=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.delete(request), expectedError); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes delete without error using callback', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlSslCertsDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsDeleteRequest', + ['sha1Fingerprint'], + ); + request.sha1Fingerprint = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&sha1_fingerprint=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.delete = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.delete( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes delete with closed client', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlSslCertsDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsDeleteRequest', ['sha1Fingerprint']); - request.sha1Fingerprint = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.delete(request), expectedError); - }); + it('invokes delete with error', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlSslCertsDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsDeleteRequest', + ['sha1Fingerprint'], + ); + request.sha1Fingerprint = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&sha1_fingerprint=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.delete(request), expectedError); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('get', () => { - it('invokes get without error', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlSslCertsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsGetRequest', ['sha1Fingerprint']); - request.sha1Fingerprint = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&sha1_fingerprint=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SslCert() - ); - client.innerApiCalls.get = stubSimpleCall(expectedResponse); - const [response] = await client.get(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes delete with closed client', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlSslCertsDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsDeleteRequest', + ['sha1Fingerprint'], + ); + request.sha1Fingerprint = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.delete(request), expectedError); + }); + }); - it('invokes get without error using callback', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlSslCertsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsGetRequest', ['sha1Fingerprint']); - request.sha1Fingerprint = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&sha1_fingerprint=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SslCert() - ); - client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.get( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.ISslCert|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('get', () => { + it('invokes get without error', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlSslCertsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsGetRequest', + ['sha1Fingerprint'], + ); + request.sha1Fingerprint = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&sha1_fingerprint=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SslCert(), + ); + client.innerApiCalls.get = stubSimpleCall(expectedResponse); + const [response] = await client.get(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes get with error', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlSslCertsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsGetRequest', ['sha1Fingerprint']); - request.sha1Fingerprint = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&sha1_fingerprint=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.get(request), expectedError); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes get without error using callback', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlSslCertsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsGetRequest', + ['sha1Fingerprint'], + ); + request.sha1Fingerprint = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&sha1_fingerprint=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SslCert(), + ); + client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.get( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.ISslCert | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes get with closed client', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlSslCertsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsGetRequest', ['sha1Fingerprint']); - request.sha1Fingerprint = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.get(request), expectedError); - }); + it('invokes get with error', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlSslCertsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsGetRequest', + ['sha1Fingerprint'], + ); + request.sha1Fingerprint = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&sha1_fingerprint=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.get(request), expectedError); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('insert', () => { - it('invokes insert without error', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlSslCertsInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SslCertsInsertResponse() - ); - client.innerApiCalls.insert = stubSimpleCall(expectedResponse); - const [response] = await client.insert(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes get with closed client', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlSslCertsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsGetRequest', + ['sha1Fingerprint'], + ); + request.sha1Fingerprint = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.get(request), expectedError); + }); + }); - it('invokes insert without error using callback', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlSslCertsInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SslCertsInsertResponse() - ); - client.innerApiCalls.insert = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.insert( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.ISslCertsInsertResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('insert', () => { + it('invokes insert without error', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlSslCertsInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SslCertsInsertResponse(), + ); + client.innerApiCalls.insert = stubSimpleCall(expectedResponse); + const [response] = await client.insert(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes insert with error', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlSslCertsInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.insert(request), expectedError); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes insert without error using callback', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlSslCertsInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SslCertsInsertResponse(), + ); + client.innerApiCalls.insert = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.insert( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.ISslCertsInsertResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes insert with closed client', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlSslCertsInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.insert(request), expectedError); - }); + it('invokes insert with error', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlSslCertsInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.insert(request), expectedError); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('list', () => { - it('invokes list without error', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlSslCertsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SslCertsListResponse() - ); - client.innerApiCalls.list = stubSimpleCall(expectedResponse); - const [response] = await client.list(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes insert with closed client', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlSslCertsInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.insert(request), expectedError); + }); + }); - it('invokes list without error using callback', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlSslCertsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.SslCertsListResponse() - ); - client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.list( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.ISslCertsListResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('list', () => { + it('invokes list without error', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlSslCertsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SslCertsListResponse(), + ); + client.innerApiCalls.list = stubSimpleCall(expectedResponse); + const [response] = await client.list(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list with error', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlSslCertsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.list(request), expectedError); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes list without error using callback', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlSslCertsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.SslCertsListResponse(), + ); + client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.list( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.ISslCertsListResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list with closed client', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlSslCertsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlSslCertsListRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.list(request), expectedError); - }); + it('invokes list with error', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlSslCertsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.list(request), expectedError); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + + it('invokes list with closed client', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlSslCertsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlSslCertsListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.list(request), expectedError); }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + it('invokes getLocation without error using callback', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); }); + it('invokes getLocation with error', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); - describe('Path templates', () => { + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqlsslcertsserviceModule.v1.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_ssl_certs_service_v1beta4.ts b/packages/google-cloud-sql/test/gapic_sql_ssl_certs_service_v1beta4.ts index 40109a1edb6..7b9549c8daf 100644 --- a/packages/google-cloud-sql/test/gapic_sql_ssl_certs_service_v1beta4.ts +++ b/packages/google-cloud-sql/test/gapic_sql_ssl_certs_service_v1beta4.ts @@ -19,957 +19,1213 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqlsslcertsserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1beta4.SqlSslCertsServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); - - it('has universeDomain', () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); - - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); - - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); - - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); + it('has universeDomain', () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); + + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + universeDomain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('has port', () => { - const port = sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient.port; - assert(port); - assert(typeof port === 'number'); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + universe_domain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('should create a client with no option', () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient(); - assert(client); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - it('should create a client with gRPC fallback', () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - fallback: true, + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + universeDomain: 'configured.example.com', }); - assert(client); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', + }); + }); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlSslCertsServiceStub, undefined); - await client.initialize(); - assert(client.sqlSslCertsServiceStub); + it('has port', () => { + const port = + sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); + + it('should create a client with no option', () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient(); + assert(client); + }); + + it('should create a client with gRPC fallback', () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + fallback: true, }); + assert(client); + }); - it('has close method for the initialized client', done => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlSslCertsServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has initialize method and supports deferred initialization', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + assert.strictEqual(client.sqlSslCertsServiceStub, undefined); + await client.initialize(); + assert(client.sqlSslCertsServiceStub); + }); - it('has close method for the non-initialized client', done => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlSslCertsServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the initialized client', (done) => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlSslCertsServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has close method for the non-initialized client', (done) => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + assert.strictEqual(client.sqlSslCertsServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; + }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); }); - describe('delete', () => { - it('invokes delete without error', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', ['sha1Fingerprint']); - request.sha1Fingerprint = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&sha1_fingerprint=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.delete = stubSimpleCall(expectedResponse); - const [response] = await client.delete(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes delete without error using callback', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', ['sha1Fingerprint']); - request.sha1Fingerprint = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&sha1_fingerprint=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.delete = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.delete( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes delete with error', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', ['sha1Fingerprint']); - request.sha1Fingerprint = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&sha1_fingerprint=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.delete(request), expectedError); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes delete with closed client', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', ['sha1Fingerprint']); - request.sha1Fingerprint = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.delete(request), expectedError); - }); - }); - - describe('get', () => { - it('invokes get without error', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlSslCertsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', ['sha1Fingerprint']); - request.sha1Fingerprint = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&sha1_fingerprint=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SslCert() - ); - client.innerApiCalls.get = stubSimpleCall(expectedResponse); - const [response] = await client.get(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get without error using callback', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlSslCertsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', ['sha1Fingerprint']); - request.sha1Fingerprint = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&sha1_fingerprint=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SslCert() - ); - client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.get( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.ISslCert|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get with error', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlSslCertsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', ['sha1Fingerprint']); - request.sha1Fingerprint = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&sha1_fingerprint=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.get(request), expectedError); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes get with closed client', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlSslCertsGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', ['sha1Fingerprint']); - request.sha1Fingerprint = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.get(request), expectedError); - }); - }); - - describe('insert', () => { - it('invokes insert without error', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SslCertsInsertResponse() - ); - client.innerApiCalls.insert = stubSimpleCall(expectedResponse); - const [response] = await client.insert(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes insert without error using callback', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SslCertsInsertResponse() - ); - client.innerApiCalls.insert = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.insert( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.ISslCertsInsertResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes insert with error', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.insert(request), expectedError); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes insert with closed client', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.insert(request), expectedError); - }); - }); - - describe('list', () => { - it('invokes list without error', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlSslCertsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SslCertsListResponse() - ); - client.innerApiCalls.list = stubSimpleCall(expectedResponse); - const [response] = await client.list(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list without error using callback', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlSslCertsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SslCertsListResponse() - ); - client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.list( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.ISslCertsListResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list with error', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlSslCertsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.list(request), expectedError); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes list with closed client', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlSslCertsListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlSslCertsListRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.list(request), expectedError); - }); - }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } + }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); + }); + }); + + describe('delete', () => { + it('invokes delete without error', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', + ['sha1Fingerprint'], + ); + request.sha1Fingerprint = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&sha1_fingerprint=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.delete = stubSimpleCall(expectedResponse); + const [response] = await client.delete(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes delete without error using callback', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', + ['sha1Fingerprint'], + ); + request.sha1Fingerprint = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&sha1_fingerprint=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.delete = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.delete( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - }); - - describe('Path templates', () => { - - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('invokes delete with error', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', + ['sha1Fingerprint'], + ); + request.sha1Fingerprint = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&sha1_fingerprint=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.delete(request), expectedError); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('invokes delete with closed client', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsDeleteRequest', + ['sha1Fingerprint'], + ); + request.sha1Fingerprint = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.delete(request), expectedError); + }); + }); - describe('project', async () => { - const fakePath = "/rendered/path/project"; - const expectedParameters = { - project: "projectValue", - }; - const client = new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.projectPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.projectPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('projectPath', () => { - const result = client.projectPath("projectValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.projectPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + describe('get', () => { + it('invokes get without error', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlSslCertsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', + ['sha1Fingerprint'], + ); + request.sha1Fingerprint = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&sha1_fingerprint=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SslCert(), + ); + client.innerApiCalls.get = stubSimpleCall(expectedResponse); + const [response] = await client.get(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchProjectFromProjectName', () => { - const result = client.matchProjectFromProjectName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.projectPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('invokes get without error using callback', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlSslCertsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', + ['sha1Fingerprint'], + ); + request.sha1Fingerprint = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&sha1_fingerprint=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SslCert(), + ); + client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.get( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.ISslCert | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes get with error', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlSslCertsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', + ['sha1Fingerprint'], + ); + request.sha1Fingerprint = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&sha1_fingerprint=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.get(request), expectedError); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes get with closed client', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlSslCertsGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsGetRequest', + ['sha1Fingerprint'], + ); + request.sha1Fingerprint = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.get(request), expectedError); + }); + }); + + describe('insert', () => { + it('invokes insert without error', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SslCertsInsertResponse(), + ); + client.innerApiCalls.insert = stubSimpleCall(expectedResponse); + const [response] = await client.insert(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes insert without error using callback', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SslCertsInsertResponse(), + ); + client.innerApiCalls.insert = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.insert( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.ISslCertsInsertResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes insert with error', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.insert(request), expectedError); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes insert with closed client', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.insert(request), expectedError); + }); + }); + + describe('list', () => { + it('invokes list without error', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlSslCertsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SslCertsListResponse(), + ); + client.innerApiCalls.list = stubSimpleCall(expectedResponse); + const [response] = await client.list(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes list without error using callback', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlSslCertsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SslCertsListResponse(), + ); + client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.list( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.ISslCertsListResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes list with error', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlSslCertsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.list(request), expectedError); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes list with closed client', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlSslCertsListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlSslCertsListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.list(request), expectedError); + }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + it('invokes getLocation without error using callback', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); + }); + it('invokes getLocation with error', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); + + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); + + describe('project', async () => { + const fakePath = '/rendered/path/project'; + const expectedParameters = { + project: 'projectValue', + }; + const client = + new sqlsslcertsserviceModule.v1beta4.SqlSslCertsServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.projectPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.projectPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('projectPath', () => { + const result = client.projectPath('projectValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.projectPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromProjectName', () => { + const result = client.matchProjectFromProjectName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.projectPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_tiers_service_v1.ts b/packages/google-cloud-sql/test/gapic_sql_tiers_service_v1.ts index 7be02eaff38..0f48bbe0782 100644 --- a/packages/google-cloud-sql/test/gapic_sql_tiers_service_v1.ts +++ b/packages/google-cloud-sql/test/gapic_sql_tiers_service_v1.ts @@ -19,531 +19,635 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqltiersserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1.SqlTiersServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('has universeDomain', () => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); + it('has universeDomain', () => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqltiersserviceModule.v1.SqlTiersServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqltiersserviceModule.v1.SqlTiersServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqltiersserviceModule.v1.SqlTiersServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + universeDomain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqltiersserviceModule.v1.SqlTiersServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + universe_domain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqltiersserviceModule.v1.SqlTiersServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + universeDomain: 'configured.example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - - it('has port', () => { - const port = sqltiersserviceModule.v1.SqlTiersServiceClient.port; - assert(port); - assert(typeof port === 'number'); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqltiersserviceModule.v1.SqlTiersServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('should create a client with no option', () => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient(); - assert(client); - }); + it('has port', () => { + const port = sqltiersserviceModule.v1.SqlTiersServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('should create a client with gRPC fallback', () => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ - fallback: true, - }); - assert(client); - }); + it('should create a client with no option', () => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient(); + assert(client); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlTiersServiceStub, undefined); - await client.initialize(); - assert(client.sqlTiersServiceStub); - }); + it('should create a client with gRPC fallback', () => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + fallback: true, + }); + assert(client); + }); - it('has close method for the initialized client', done => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlTiersServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('has initialize method and supports deferred initialization', async () => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlTiersServiceStub, undefined); + await client.initialize(); + assert(client.sqlTiersServiceStub); + }); - it('has close method for the non-initialized client', done => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlTiersServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the initialized client', (done) => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlTiersServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has close method for the non-initialized client', (done) => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlTiersServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); - }); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); }); - describe('list', () => { - it('invokes list without error', async () => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlTiersListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlTiersListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.TiersListResponse() - ); - client.innerApiCalls.list = stubSimpleCall(expectedResponse); - const [response] = await client.list(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); + }); + }); + + describe('list', () => { + it('invokes list without error', async () => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlTiersListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlTiersListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.TiersListResponse(), + ); + client.innerApiCalls.list = stubSimpleCall(expectedResponse); + const [response] = await client.list(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list without error using callback', async () => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlTiersListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlTiersListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.TiersListResponse() - ); - client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.list( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.ITiersListResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes list without error using callback', async () => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlTiersListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlTiersListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.TiersListResponse(), + ); + client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.list( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.ITiersListResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list with error', async () => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlTiersListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlTiersListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.list(request), expectedError); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes list with error', async () => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlTiersListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlTiersListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.list(request), expectedError); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list with closed client', async () => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlTiersListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlTiersListRequest', ['project']); - request.project = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.list(request), expectedError); - }); + it('invokes list with closed client', async () => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlTiersListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlTiersListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.list(request), expectedError); }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('invokes getLocation without error using callback', async () => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); }); - - describe('Path templates', () => { - - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('invokes getLocation with error', async () => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); + + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = new sqltiersserviceModule.v1.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_tiers_service_v1beta4.ts b/packages/google-cloud-sql/test/gapic_sql_tiers_service_v1beta4.ts index 84dcb4615d7..7eed7f7ae61 100644 --- a/packages/google-cloud-sql/test/gapic_sql_tiers_service_v1beta4.ts +++ b/packages/google-cloud-sql/test/gapic_sql_tiers_service_v1beta4.ts @@ -19,531 +19,637 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqltiersserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1beta4.SqlTiersServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('has universeDomain', () => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); + it('has universeDomain', () => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqltiersserviceModule.v1beta4.SqlTiersServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqltiersserviceModule.v1beta4.SqlTiersServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqltiersserviceModule.v1beta4.SqlTiersServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + universeDomain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqltiersserviceModule.v1beta4.SqlTiersServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + universe_domain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqltiersserviceModule.v1beta4.SqlTiersServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + universeDomain: 'configured.example.com', }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - - it('has port', () => { - const port = sqltiersserviceModule.v1beta4.SqlTiersServiceClient.port; - assert(port); - assert(typeof port === 'number'); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('should create a client with no option', () => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient(); - assert(client); - }); + it('has port', () => { + const port = sqltiersserviceModule.v1beta4.SqlTiersServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('should create a client with gRPC fallback', () => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ - fallback: true, - }); - assert(client); - }); + it('should create a client with no option', () => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient(); + assert(client); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlTiersServiceStub, undefined); - await client.initialize(); - assert(client.sqlTiersServiceStub); - }); + it('should create a client with gRPC fallback', () => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + fallback: true, + }); + assert(client); + }); - it('has close method for the initialized client', done => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlTiersServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('has initialize method and supports deferred initialization', async () => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlTiersServiceStub, undefined); + await client.initialize(); + assert(client.sqlTiersServiceStub); + }); - it('has close method for the non-initialized client', done => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlTiersServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the initialized client', (done) => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlTiersServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has close method for the non-initialized client', (done) => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlTiersServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); - }); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); }); - describe('list', () => { - it('invokes list without error', async () => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlTiersListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlTiersListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.TiersListResponse() - ); - client.innerApiCalls.list = stubSimpleCall(expectedResponse); - const [response] = await client.list(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); + }); + }); + + describe('list', () => { + it('invokes list without error', async () => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlTiersListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlTiersListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.TiersListResponse(), + ); + client.innerApiCalls.list = stubSimpleCall(expectedResponse); + const [response] = await client.list(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list without error using callback', async () => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlTiersListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlTiersListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.TiersListResponse() - ); - client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.list( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.ITiersListResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes list without error using callback', async () => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlTiersListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlTiersListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.TiersListResponse(), + ); + client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.list( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.ITiersListResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list with error', async () => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlTiersListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlTiersListRequest', ['project']); - request.project = defaultValue1; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.list(request), expectedError); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes list with error', async () => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlTiersListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlTiersListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.list(request), expectedError); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list with closed client', async () => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlTiersListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlTiersListRequest', ['project']); - request.project = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.list(request), expectedError); - }); + it('invokes list with closed client', async () => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlTiersListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlTiersListRequest', + ['project'], + ); + request.project = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.list(request), expectedError); }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('invokes getLocation without error using callback', async () => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); }); - - describe('Path templates', () => { - - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('invokes getLocation with error', async () => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); + + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = new sqltiersserviceModule.v1beta4.SqlTiersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_users_service_v1.ts b/packages/google-cloud-sql/test/gapic_sql_users_service_v1.ts index b5b898848b1..ffbc06c9fd4 100644 --- a/packages/google-cloud-sql/test/gapic_sql_users_service_v1.ts +++ b/packages/google-cloud-sql/test/gapic_sql_users_service_v1.ts @@ -19,1035 +19,1267 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqlusersserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1.SqlUsersServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); - - it('has universeDomain', () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqlusersserviceModule.v1.SqlUsersServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + it('has universeDomain', () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqlusersserviceModule.v1.SqlUsersServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqlusersserviceModule.v1.SqlUsersServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqlusersserviceModule.v1.SqlUsersServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + universeDomain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + universe_domain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqlusersserviceModule.v1.SqlUsersServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - it('has port', () => { - const port = sqlusersserviceModule.v1.SqlUsersServiceClient.port; - assert(port); - assert(typeof port === 'number'); + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + universeDomain: 'configured.example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - - it('should create a client with no option', () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient(); - assert(client); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqlusersserviceModule.v1.SqlUsersServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('should create a client with gRPC fallback', () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - fallback: true, - }); - assert(client); - }); + it('has port', () => { + const port = sqlusersserviceModule.v1.SqlUsersServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlUsersServiceStub, undefined); - await client.initialize(); - assert(client.sqlUsersServiceStub); - }); + it('should create a client with no option', () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient(); + assert(client); + }); - it('has close method for the initialized client', done => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlUsersServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('should create a client with gRPC fallback', () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + fallback: true, + }); + assert(client); + }); - it('has close method for the non-initialized client', done => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlUsersServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('has initialize method and supports deferred initialization', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlUsersServiceStub, undefined); + await client.initialize(); + assert(client.sqlUsersServiceStub); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has close method for the initialized client', (done) => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlUsersServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); + it('has close method for the non-initialized client', (done) => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlUsersServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); }); - describe('delete', () => { - it('invokes delete without error', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersDeleteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.delete = stubSimpleCall(expectedResponse); - const [response] = await client.delete(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + }); - it('invokes delete without error using callback', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersDeleteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.delete = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.delete( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); + }); + }); - it('invokes delete with error', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersDeleteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.delete(request), expectedError); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('delete', () => { + it('invokes delete without error', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.delete = stubSimpleCall(expectedResponse); + const [response] = await client.delete(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes delete with closed client', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersDeleteRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.delete(request), expectedError); - }); + it('invokes delete without error using callback', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.delete = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.delete( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('get', () => { - it('invokes get without error', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersGetRequest', ['name']); - request.name = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&name=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.User() - ); - client.innerApiCalls.get = stubSimpleCall(expectedResponse); - const [response] = await client.get(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes delete with error', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.delete(request), expectedError); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes get without error using callback', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersGetRequest', ['name']); - request.name = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&name=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.User() - ); - client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.get( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IUser|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes delete with closed client', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.delete(request), expectedError); + }); + }); - it('invokes get with error', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersGetRequest', ['name']); - request.name = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&name=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.get(request), expectedError); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('get', () => { + it('invokes get without error', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersGetRequest', + ['name'], + ); + request.name = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&name=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.User(), + ); + client.innerApiCalls.get = stubSimpleCall(expectedResponse); + const [response] = await client.get(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes get with closed client', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersGetRequest', ['name']); - request.name = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.get(request), expectedError); - }); + it('invokes get without error using callback', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersGetRequest', + ['name'], + ); + request.name = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&name=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.User(), + ); + client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.get( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IUser | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('insert', () => { - it('invokes insert without error', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.insert = stubSimpleCall(expectedResponse); - const [response] = await client.insert(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes get with error', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersGetRequest', + ['name'], + ); + request.name = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&name=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.get(request), expectedError); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes insert without error using callback', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.insert = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.insert( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes get with closed client', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersGetRequest', + ['name'], + ); + request.name = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.get(request), expectedError); + }); + }); - it('invokes insert with error', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.insert(request), expectedError); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('insert', () => { + it('invokes insert without error', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.insert = stubSimpleCall(expectedResponse); + const [response] = await client.insert(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes insert with closed client', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.insert(request), expectedError); - }); + it('invokes insert without error using callback', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.insert = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.insert( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('list', () => { - it('invokes list without error', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.UsersListResponse() - ); - client.innerApiCalls.list = stubSimpleCall(expectedResponse); - const [response] = await client.list(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes insert with error', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.insert(request), expectedError); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list without error using callback', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.UsersListResponse() - ); - client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.list( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IUsersListResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes insert with closed client', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.insert(request), expectedError); + }); + }); - it('invokes list with error', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.list(request), expectedError); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('list', () => { + it('invokes list without error', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.UsersListResponse(), + ); + client.innerApiCalls.list = stubSimpleCall(expectedResponse); + const [response] = await client.list(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list with closed client', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersListRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.list(request), expectedError); - }); + it('invokes list without error using callback', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.UsersListResponse(), + ); + client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.list( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IUsersListResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('update', () => { - it('invokes update without error', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersUpdateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.update = stubSimpleCall(expectedResponse); - const [response] = await client.update(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes list with error', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.list(request), expectedError); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes update without error using callback', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersUpdateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1.Operation() - ); - client.innerApiCalls.update = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.update( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes list with closed client', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.list(request), expectedError); + }); + }); - it('invokes update with error', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersUpdateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.update = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.update(request), expectedError); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('update', () => { + it('invokes update without error', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.update = stubSimpleCall(expectedResponse); + const [response] = await client.update(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes update with closed client', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1.SqlUsersUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1.SqlUsersUpdateRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.update(request), expectedError); - }); + it('invokes update without error using callback', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1.Operation(), + ); + client.innerApiCalls.update = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.update( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + + it('invokes update with error', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.update = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.update(request), expectedError); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes update with closed client', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1.SqlUsersUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1.SqlUsersUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.update(request), expectedError); + }); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('invokes getLocation without error using callback', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); }); + it('invokes getLocation with error', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); - describe('Path templates', () => { - - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = new sqlusersserviceModule.v1.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/test/gapic_sql_users_service_v1beta4.ts b/packages/google-cloud-sql/test/gapic_sql_users_service_v1beta4.ts index 46449019b10..10439be8e2e 100644 --- a/packages/google-cloud-sql/test/gapic_sql_users_service_v1beta4.ts +++ b/packages/google-cloud-sql/test/gapic_sql_users_service_v1beta4.ts @@ -19,1035 +19,1269 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { SinonStub } from 'sinon'; +import { describe, it } from 'mocha'; import * as sqlusersserviceModule from '../src'; -import {protobuf, LocationProtos} from 'google-gax'; +import { protobuf, LocationProtos } from 'google-gax'; // Dynamically loaded proto JSON is needed to get the type information // to fill in default values for request objects -const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll(); +const root = protobuf.Root.fromJSON( + require('../protos/protos.json'), +).resolveAll(); // eslint-disable-next-line @typescript-eslint/no-unused-vars function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; + let type = root.lookupType(typeName) as protobuf.Type; + for (const field of fields.slice(0, -1)) { + type = type.fields[field]?.resolvedType as protobuf.Type; + } + return type.fields[fields[fields.length - 1]]?.defaultValue; } function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; + const filledObject = ( + instance.constructor as typeof protobuf.Message + ).toObject(instance as protobuf.Message, { defaults: true }); + return (instance.constructor as typeof protobuf.Message).fromObject( + filledObject, + ) as T; } function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); + return error + ? sinon.stub().rejects(error) + : sinon.stub().resolves([response]); } -function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) { - return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); +function stubSimpleCallWithCallback( + response?: ResponseType, + error?: Error, +) { + return error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); } -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); +function stubAsyncIterationCall( + responses?: ResponseType[], + error?: Error, +) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({ done: true, value: undefined }); + } + return Promise.resolve({ done: false, value: responses![counter++] }); + }, + }; + }, + }; + return sinon.stub().returns(asyncIterable); } describe('v1beta4.SqlUsersServiceClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + }); - it('has universeDomain', () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); + it('has universeDomain', () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - if (typeof process === 'object' && typeof process.emitWarning === 'function') { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = sqlusersserviceModule.v1beta4.SqlUsersServiceClient.servicePath; - assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + sqlusersserviceModule.v1beta4.SqlUsersServiceClient.servicePath; + assert.strictEqual(servicePath, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = sqlusersserviceModule.v1beta4.SqlUsersServiceClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + sqlusersserviceModule.v1beta4.SqlUsersServiceClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'sqladmin.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + universeDomain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - }); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + universe_domain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + }); - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); + if (typeof process === 'object' && 'env' in process) { + describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { + it('sets apiEndpoint from environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlusersserviceModule.v1beta4.SqlUsersServiceClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } + }); - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); + it('value configured in code has priority over environment variable', () => { + const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; + const client = + new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + universeDomain: 'configured.example.com', }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'sqladmin.configured.example.com'); + if (saved) { + process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; + } else { + delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; + } }); - - it('has port', () => { - const port = sqlusersserviceModule.v1beta4.SqlUsersServiceClient.port; - assert(port); - assert(typeof port === 'number'); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('should create a client with no option', () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient(); - assert(client); - }); + it('has port', () => { + const port = sqlusersserviceModule.v1beta4.SqlUsersServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('should create a client with gRPC fallback', () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - fallback: true, - }); - assert(client); - }); + it('should create a client with no option', () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient(); + assert(client); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlUsersServiceStub, undefined); - await client.initialize(); - assert(client.sqlUsersServiceStub); - }); + it('should create a client with gRPC fallback', () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + fallback: true, + }); + assert(client); + }); - it('has close method for the initialized client', done => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.sqlUsersServiceStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('has initialize method and supports deferred initialization', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlUsersServiceStub, undefined); + await client.initialize(); + assert(client.sqlUsersServiceStub); + }); - it('has close method for the non-initialized client', done => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.sqlUsersServiceStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has close method for the initialized client', (done) => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.sqlUsersServiceStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); + it('has close method for the non-initialized client', (done) => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.sqlUsersServiceStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error|null, projectId?: string|null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); - }); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); + const result = await client.getProjectId(); + assert.strictEqual(result, fakeProjectId); + assert((client.auth.getProjectId as SinonStub).calledWithExactly()); }); - describe('delete', () => { - it('invokes delete without error', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersDeleteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.delete = stubSimpleCall(expectedResponse); - const [response] = await client.delete(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.auth.getProjectId = sinon + .stub() + .callsArgWith(0, null, fakeProjectId); + const promise = new Promise((resolve, reject) => { + client.getProjectId((err?: Error | null, projectId?: string | null) => { + if (err) { + reject(err); + } else { + resolve(projectId); + } }); + }); + const result = await promise; + assert.strictEqual(result, fakeProjectId); + }); + }); - it('invokes delete without error using callback', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersDeleteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.delete = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.delete( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('delete', () => { + it('invokes delete without error', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.delete = stubSimpleCall(expectedResponse); + const [response] = await client.delete(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes delete with error', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersDeleteRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.delete(request), expectedError); - const actualRequest = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.delete as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes delete without error using callback', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.delete = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.delete( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes delete with closed client', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersDeleteRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersDeleteRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersDeleteRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.delete(request), expectedError); - }); + it('invokes delete with error', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.delete = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.delete(request), expectedError); + const actualRequest = (client.innerApiCalls.delete as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.delete as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('get', () => { - it('invokes get without error', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersGetRequest', ['name']); - request.name = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&name=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.User() - ); - client.innerApiCalls.get = stubSimpleCall(expectedResponse); - const [response] = await client.get(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes delete with closed client', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersDeleteRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersDeleteRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersDeleteRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.delete(request), expectedError); + }); + }); - it('invokes get without error using callback', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersGetRequest', ['name']); - request.name = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&name=${defaultValue3 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.User() - ); - client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.get( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IUser|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('get', () => { + it('invokes get without error', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersGetRequest', + ['name'], + ); + request.name = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&name=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.User(), + ); + client.innerApiCalls.get = stubSimpleCall(expectedResponse); + const [response] = await client.get(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes get with error', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersGetRequest', ['name']); - request.name = defaultValue3; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }&name=${defaultValue3 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.get(request), expectedError); - const actualRequest = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.get as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes get without error using callback', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersGetRequest', + ['name'], + ); + request.name = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&name=${defaultValue3 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.User(), + ); + client.innerApiCalls.get = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.get( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IUser | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes get with closed client', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersGetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersGetRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersGetRequest', ['instance']); - request.instance = defaultValue2; - const defaultValue3 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersGetRequest', ['name']); - request.name = defaultValue3; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.get(request), expectedError); - }); + it('invokes get with error', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersGetRequest', + ['name'], + ); + request.name = defaultValue3; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}&name=${defaultValue3 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.get = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.get(request), expectedError); + const actualRequest = (client.innerApiCalls.get as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.get as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('insert', () => { - it('invokes insert without error', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.insert = stubSimpleCall(expectedResponse); - const [response] = await client.insert(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes get with closed client', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersGetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersGetRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersGetRequest', + ['instance'], + ); + request.instance = defaultValue2; + const defaultValue3 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersGetRequest', + ['name'], + ); + request.name = defaultValue3; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.get(request), expectedError); + }); + }); - it('invokes insert without error using callback', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.insert = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.insert( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('insert', () => { + it('invokes insert without error', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.insert = stubSimpleCall(expectedResponse); + const [response] = await client.insert(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes insert with error', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.insert(request), expectedError); - const actualRequest = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.insert as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes insert without error using callback', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.insert = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.insert( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes insert with closed client', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersInsertRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersInsertRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersInsertRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.insert(request), expectedError); - }); + it('invokes insert with error', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.insert = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.insert(request), expectedError); + const actualRequest = (client.innerApiCalls.insert as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.insert as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('list', () => { - it('invokes list without error', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.UsersListResponse() - ); - client.innerApiCalls.list = stubSimpleCall(expectedResponse); - const [response] = await client.list(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes insert with closed client', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersInsertRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersInsertRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersInsertRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.insert(request), expectedError); + }); + }); - it('invokes list without error using callback', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.UsersListResponse() - ); - client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.list( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IUsersListResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('list', () => { + it('invokes list without error', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.UsersListResponse(), + ); + client.innerApiCalls.list = stubSimpleCall(expectedResponse); + const [response] = await client.list(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list with error', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersListRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.list(request), expectedError); - const actualRequest = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.list as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes list without error using callback', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.UsersListResponse(), + ); + client.innerApiCalls.list = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.list( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IUsersListResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes list with closed client', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersListRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersListRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersListRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.list(request), expectedError); - }); + it('invokes list with error', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.list = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.list(request), expectedError); + const actualRequest = (client.innerApiCalls.list as SinonStub).getCall(0) + .args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.list as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('update', () => { - it('invokes update without error', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersUpdateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.update = stubSimpleCall(expectedResponse); - const [response] = await client.update(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes list with closed client', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersListRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersListRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersListRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.list(request), expectedError); + }); + }); - it('invokes update without error using callback', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersUpdateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.Operation() - ); - client.innerApiCalls.update = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.update( - request, - (err?: Error|null, result?: protos.google.cloud.sql.v1beta4.IOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + describe('update', () => { + it('invokes update without error', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.update = stubSimpleCall(expectedResponse); + const [response] = await client.update(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes update with error', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersUpdateRequest', ['instance']); - request.instance = defaultValue2; - const expectedHeaderRequestParams = `project=${defaultValue1 ?? '' }&instance=${defaultValue2 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.update = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.update(request), expectedError); - const actualRequest = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.update as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes update without error using callback', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.Operation(), + ); + client.innerApiCalls.update = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.update( + request, + ( + err?: Error | null, + result?: protos.google.cloud.sql.v1beta4.IOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes update with closed client', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.sql.v1beta4.SqlUsersUpdateRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersUpdateRequest', ['project']); - request.project = defaultValue1; - const defaultValue2 = - getTypeDefaultValue('.google.cloud.sql.v1beta4.SqlUsersUpdateRequest', ['instance']); - request.instance = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.update(request), expectedError); - }); + it('invokes update with error', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedHeaderRequestParams = `project=${defaultValue1 ?? ''}&instance=${defaultValue2 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.update = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.update(request), expectedError); + const actualRequest = (client.innerApiCalls.update as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.update as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('getLocation', () => { - it('invokes getLocation without error', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = stubSimpleCall(expectedResponse); - const response = await client.getLocation(request, expectedOptions); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - it('invokes getLocation without error using callback', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ); - client.locationsClient.getLocation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getLocation( - request, - expectedOptions, - ( - err?: Error | null, - result?: LocationProtos.google.cloud.location.ILocation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0)); - }); - it('invokes getLocation with error', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.GetLocationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.locationsClient.getLocation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getLocation(request, expectedOptions), expectedError); - assert((client.locationsClient.getLocation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + + it('invokes update with closed client', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.sql.v1beta4.SqlUsersUpdateRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersUpdateRequest', + ['project'], + ); + request.project = defaultValue1; + const defaultValue2 = getTypeDefaultValue( + '.google.cloud.sql.v1beta4.SqlUsersUpdateRequest', + ['instance'], + ); + request.instance = defaultValue2; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.update(request), expectedError); }); - describe('listLocationsAsync', () => { - it('uses async iteration with listLocations without error', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedResponse = [ - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - generateSampleMessage( - new LocationProtos.google.cloud.location.Location() - ), - ]; - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - const iterable = client.listLocationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = stubSimpleCall(expectedResponse); + const response = await client.getLocation(request, expectedOptions); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + it('invokes getLocation without error using callback', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ); + client.locationsClient.getLocation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getLocation( + request, + expectedOptions, + ( + err?: Error | null, + result?: LocationProtos.google.cloud.location.ILocation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - it('uses async iteration with listLocations with error', async () => { - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new LocationProtos.google.cloud.location.ListLocationsRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedError = new Error('expected'); - client.locationsClient.descriptors.page.listLocations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listLocationsAsync(request); - await assert.rejects(async () => { - const responses: LocationProtos.google.cloud.location.ILocation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.locationsClient.descriptors.page.listLocations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.locationsClient.getLocation as SinonStub).getCall(0)); }); + it('invokes getLocation with error', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.GetLocationRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.locationsClient.getLocation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.getLocation(request, expectedOptions), + expectedError, + ); + assert( + (client.locationsClient.getLocation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined), + ); + }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedResponse = [ + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + generateSampleMessage( + new LocationProtos.google.cloud.location.Location(), + ), + ]; + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + const iterable = client.listLocationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + it('uses async iteration with listLocations with error', async () => { + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new LocationProtos.google.cloud.location.ListLocationsRequest(), + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedError = new Error('expected'); + client.locationsClient.descriptors.page.listLocations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listLocationsAsync(request); + await assert.rejects(async () => { + const responses: LocationProtos.google.cloud.location.ILocation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + ( + client.locationsClient.descriptors.page.listLocations + .asyncIterate as SinonStub + ) + .getCall(0) + .args[2].otherArgs.headers['x-goog-request-params'].includes( + expectedHeaderRequestParams, + ), + ); + }); + }); - describe('Path templates', () => { - - describe('backup', async () => { - const fakePath = "/rendered/path/backup"; - const expectedParameters = { - project: "projectValue", - backup: "backupValue", - }; - const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.backupPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.backupPathTemplate.match = - sinon.stub().returns(expectedParameters); + describe('Path templates', () => { + describe('backup', async () => { + const fakePath = '/rendered/path/backup'; + const expectedParameters = { + project: 'projectValue', + backup: 'backupValue', + }; + const client = new sqlusersserviceModule.v1beta4.SqlUsersServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.backupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.backupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); - it('backupPath', () => { - const result = client.backupPath("projectValue", "backupValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.backupPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + it('backupPath', () => { + const result = client.backupPath('projectValue', 'backupValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.backupPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); - it('matchProjectFromBackupName', () => { - const result = client.matchProjectFromBackupName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('matchProjectFromBackupName', () => { + const result = client.matchProjectFromBackupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); - it('matchBackupFromBackupName', () => { - const result = client.matchBackupFromBackupName(fakePath); - assert.strictEqual(result, "backupValue"); - assert((client.pathTemplates.backupPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('matchBackupFromBackupName', () => { + const result = client.matchBackupFromBackupName(fakePath); + assert.strictEqual(result, 'backupValue'); + assert( + (client.pathTemplates.backupPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-sql/webpack.config.js b/packages/google-cloud-sql/webpack.config.js index 6968d355a69..07dc78031d4 100644 --- a/packages/google-cloud-sql/webpack.config.js +++ b/packages/google-cloud-sql/webpack.config.js @@ -1,4 +1,4 @@ -// Copyright 2026 Google LLC +// Copyright 2021 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. From 2137395dddd72fbf4584789f0b99fae0474b8c4d Mon Sep 17 00:00:00 2001 From: Joe Wang <106995533+JoeWang1127@users.noreply.github.com> Date: Mon, 29 Jun 2026 17:49:01 -0400 Subject: [PATCH 4/5] add location mixin --- librarian.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/librarian.yaml b/librarian.yaml index 05fbf067164..26357e6679b 100644 --- a/librarian.yaml +++ b/librarian.yaml @@ -1529,7 +1529,11 @@ libraries: version: 0.24.1 apis: - path: google/cloud/sql/v1 + nodejs: + mixins: google.cloud.location.Locations - path: google/cloud/sql/v1beta4 + nodejs: + mixins: google.cloud.location.Locations copyright_year: "2026" nodejs: default_version: v1 From 248a1f3199beb47562a4625d7459f211a0bbcac4 Mon Sep 17 00:00:00 2001 From: Joe Wang <106995533+JoeWang1127@users.noreply.github.com> Date: Mon, 29 Jun 2026 17:54:48 -0400 Subject: [PATCH 5/5] update config --- librarian.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/librarian.yaml b/librarian.yaml index 26357e6679b..05fbf067164 100644 --- a/librarian.yaml +++ b/librarian.yaml @@ -1529,11 +1529,7 @@ libraries: version: 0.24.1 apis: - path: google/cloud/sql/v1 - nodejs: - mixins: google.cloud.location.Locations - path: google/cloud/sql/v1beta4 - nodejs: - mixins: google.cloud.location.Locations copyright_year: "2026" nodejs: default_version: v1