From f6f8c0d2f9eef9028e96f6e8fb804f8cdc2272fc Mon Sep 17 00:00:00 2001 From: Jon Skeet Date: Fri, 12 Jun 2026 10:43:48 +0000 Subject: [PATCH] feat: regenerated google-cloud-sql --- packages/google-cloud-sql/README.md | 6 +- .../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 + packages/google-cloud-sql/protos/protos.d.ts | 673 +- packages/google-cloud-sql/protos/protos.js | 17173 ++++++++++++---- packages/google-cloud-sql/protos/protos.json | 310 +- .../v1/sql_instances_service.clone.js | 2 +- 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 +- .../google-cloud-sql/src/v1beta4/index.ts | 22 +- .../v1beta4/sql_backup_runs_service_client.ts | 935 +- .../src/v1beta4/sql_backups_service_client.ts | 1269 +- .../src/v1beta4/sql_connect_service_client.ts | 566 +- .../v1beta4/sql_databases_service_client.ts | 1320 +- .../src/v1beta4/sql_flags_service_client.ts | 338 +- .../v1beta4/sql_instances_service_client.ts | 8674 +++++--- .../v1beta4/sql_operations_service_client.ts | 728 +- .../v1beta4/sql_ssl_certs_service_client.ts | 913 +- .../src/v1beta4/sql_tiers_service_client.ts | 335 +- .../src/v1beta4/sql_users_service_client.ts | 1093 +- .../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 | 1364 +- .../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 +- 54 files changed, 66497 insertions(+), 42586 deletions(-) diff --git a/packages/google-cloud-sql/README.md b/packages/google-cloud-sql/README.md index 41814fd9b839..eb51e0cb0f54 100644 --- a/packages/google-cloud-sql/README.md +++ b/packages/google-cloud-sql/README.md @@ -58,7 +58,6 @@ Samples are in the [`samples/`][homepage_samples] directory. Each sample's `READ | Sample | Source Code | | --------------------------- | --------------------------------- | -| cloud | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-sql/samples/generated/v1/snippet_metadata_google.cloud.sql.v1.json) | | delete | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-sql/samples/generated/v1/sql_backup_runs_service.delete.js) | | get | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-sql/samples/generated/v1/sql_backup_runs_service.get.js) | | insert | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-sql/samples/generated/v1/sql_backup_runs_service.insert.js) | @@ -133,7 +132,6 @@ Samples are in the [`samples/`][homepage_samples] directory. Each sample's `READ | insert | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-sql/samples/generated/v1/sql_users_service.insert.js) | | list | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-sql/samples/generated/v1/sql_users_service.list.js) | | update | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-sql/samples/generated/v1/sql_users_service.update.js) | -| cloud | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-sql/samples/generated/v1beta4/snippet_metadata_google.cloud.sql.v1beta4.json) | | delete | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-sql/samples/generated/v1beta4/sql_backup_runs_service.delete.js) | | get | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-sql/samples/generated/v1beta4/sql_backup_runs_service.get.js) | | insert | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-sql/samples/generated/v1beta4/sql_backup_runs_service.insert.js) | @@ -241,7 +239,7 @@ More Information: [Google Cloud Platform Launch Stages][launch_stages] ## Contributing -Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-sql/CONTRIBUTING.md). +Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/google-cloud-node/blob/main/CONTRIBUTING.md). Please note that this `README.md` and a variety of configuration files in this repository (including `.nycrc` and `tsconfig.json`) @@ -251,7 +249,7 @@ are generated from a central template. Apache Version 2.0 -See [LICENSE](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-sql/LICENSE) +See [LICENSE](https://github.com/googleapis/google-cloud-node/blob/main/LICENSE) [shell_img]: https://gstatic.com/cloudssh/images/open-btn.png [projects]: https://console.cloud.google.com/project 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 bd71bd065f22..b07e2fa0b118 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 78da0b646400..4f2fa0a5fc9e 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 6a4011084e19..b74de3516d5b 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/protos.d.ts b/packages/google-cloud-sql/protos/protos.d.ts index 550fe4464ffc..fa584fd39e4e 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 */ @@ -55223,6 +55265,9 @@ export namespace google { /** CommonLanguageSettings destinations */ destinations?: (google.api.ClientLibraryDestination[]|null); + + /** CommonLanguageSettings selectiveGapicGeneration */ + selectiveGapicGeneration?: (google.api.ISelectiveGapicGeneration|null); } /** Represents a CommonLanguageSettings. */ @@ -55240,6 +55285,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 +55988,9 @@ export namespace google { /** PythonSettings common */ common?: (google.api.ICommonLanguageSettings|null); + + /** PythonSettings experimentalFeatures */ + experimentalFeatures?: (google.api.PythonSettings.IExperimentalFeatures|null); } /** Represents a PythonSettings. */ @@ -55954,6 +56005,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 +56086,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 +56524,9 @@ export namespace google { /** GoSettings common */ common?: (google.api.ICommonLanguageSettings|null); + + /** GoSettings renamedServices */ + renamedServices?: ({ [k: string]: string }|null); } /** Represents a GoSettings. */ @@ -56372,6 +56541,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 +56868,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 +57253,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 +57270,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 +57362,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 +57564,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 +57595,9 @@ export namespace google { /** FileDescriptorProto weakDependency */ weakDependency?: (number[]|null); + /** FileDescriptorProto optionDependency */ + optionDependency?: (string[]|null); + /** FileDescriptorProto messageType */ messageType?: (google.protobuf.IDescriptorProto[]|null); @@ -57265,6 +57647,9 @@ export namespace google { /** FileDescriptorProto weakDependency. */ public weakDependency: number[]; + /** FileDescriptorProto optionDependency. */ + public optionDependency: string[]; + /** FileDescriptorProto messageType. */ public messageType: google.protobuf.IDescriptorProto[]; @@ -57399,6 +57784,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 +57828,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 +58678,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 +58707,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 +59644,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 +59705,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 +59928,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 +60281,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 +60306,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 +60898,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 +60933,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 +61061,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 +61290,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 +61309,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 +61846,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 e2514df66382..3f6419a917f4 100644 --- a/packages/google-cloud-sql/protos/protos.js +++ b/packages/google-cloud-sql/protos/protos.js @@ -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]]; } @@ -375,9 +375,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 +401,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -428,9 +432,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.id != null && message.hasOwnProperty("id")) if (!$util.isInteger(message.id) && !(message.id && $util.isInteger(message.id.low) && $util.isInteger(message.id.high))) return "id: integer|Long expected"; @@ -451,9 +459,13 @@ * @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 (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) @@ -556,7 +568,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]]; } @@ -641,9 +653,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 +679,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -694,9 +710,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.id != null && message.hasOwnProperty("id")) if (!$util.isInteger(message.id) && !(message.id && $util.isInteger(message.id.low) && $util.isInteger(message.id.high))) return "id: integer|Long expected"; @@ -717,9 +737,13 @@ * @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 (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) @@ -822,7 +846,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]]; } @@ -907,9 +931,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 +953,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,9 +988,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -970,7 +1002,7 @@ 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); + var error = $root.google.cloud.sql.v1.BackupRun.verify(message.body, long + 1); if (error) return "body." + error; } @@ -985,9 +1017,13 @@ * @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 (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); @@ -996,7 +1032,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -1080,7 +1116,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]]; } @@ -1175,9 +1211,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 +1241,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1232,9 +1272,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -1258,9 +1302,13 @@ * @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 (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); @@ -1370,7 +1418,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]]; } @@ -1624,9 +1672,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 +1694,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 +1702,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 +1722,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 +1742,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 +1762,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1741,9 +1793,13 @@ * @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 (!$util.isString(message.kind)) @@ -1765,7 +1821,7 @@ break; } if (message.enqueuedTime != null && message.hasOwnProperty("enqueuedTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.enqueuedTime); + var error = $root.google.protobuf.Timestamp.verify(message.enqueuedTime, long + 1); if (error) return "enqueuedTime." + error; } @@ -1773,17 +1829,17 @@ 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); + 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); + 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); + var error = $root.google.cloud.sql.v1.OperationError.verify(message.error, long + 1); if (error) return "error." + error; } @@ -1800,7 +1856,7 @@ 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); + var error = $root.google.protobuf.Timestamp.verify(message.windowStartTime, long + 1); if (error) return "windowStartTime." + error; } @@ -1860,6 +1916,7 @@ case 272: case 408: case 557: + case 684: case 26: case 27: case 28: @@ -1868,15 +1925,18 @@ 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); + 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); + var error = $root.google.cloud.sql.v1.DiskEncryptionStatus.verify(message.diskEncryptionStatus, long + 1); if (error) return "diskEncryptionStatus." + error; } @@ -1908,9 +1968,13 @@ * @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 (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); @@ -1965,7 +2029,7 @@ if (object.enqueuedTime != null) { if (typeof object.enqueuedTime !== "object") 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) @@ -1979,17 +2043,17 @@ if (object.startTime != null) { if (typeof object.startTime !== "object") 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") 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") 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: @@ -2016,7 +2080,7 @@ if (object.windowStartTime != null) { if (typeof object.windowStartTime !== "object") 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 +2267,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 +2303,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") 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") 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: @@ -2419,7 +2499,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]]; } @@ -2505,9 +2585,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 +2605,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 +2613,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -2560,9 +2644,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -2570,7 +2658,7 @@ 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; } @@ -2589,9 +2677,13 @@ * @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 (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); @@ -2602,7 +2694,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") 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) @@ -2755,7 +2847,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]]; } @@ -2850,9 +2942,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 +2960,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 +2972,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -2907,14 +3003,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.value != null && message.hasOwnProperty("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); + var error = $root.google.protobuf.Timestamp.verify(message.expirationTime, long + 1); if (error) return "expirationTime." + error; } @@ -2935,16 +3035,20 @@ * @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 (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") 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); @@ -3034,7 +3138,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]]; } @@ -3119,9 +3223,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 +3249,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -3172,9 +3280,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.code != null && message.hasOwnProperty("code")) switch (message.code) { default: @@ -3203,9 +3315,13 @@ * @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 (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: @@ -3339,7 +3455,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]]; } @@ -3414,9 +3530,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 +3548,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,9 +3583,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.retentionUnit != null && message.hasOwnProperty("retentionUnit")) switch (message.retentionUnit) { default: @@ -3475,7 +3599,7 @@ break; } if (message.retainedBackups != null && message.hasOwnProperty("retainedBackups")) { - var error = $root.google.protobuf.Int32Value.verify(message.retainedBackups); + var error = $root.google.protobuf.Int32Value.verify(message.retainedBackups, long + 1); if (error) return "retainedBackups." + error; } @@ -3490,9 +3614,13 @@ * @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 (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: @@ -3513,7 +3641,7 @@ if (object.retainedBackups != null) { if (typeof object.retainedBackups !== "object") 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; }; @@ -3615,7 +3743,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]]; } @@ -3795,9 +3923,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 +3941,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 +3949,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 +3961,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 +3981,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -3880,15 +4012,19 @@ * @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 (!$util.isString(message.startTime)) return "startTime: string expected"; if (message.enabled != null && message.hasOwnProperty("enabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.enabled); + var error = $root.google.protobuf.BoolValue.verify(message.enabled, long + 1); if (error) return "enabled." + error; } @@ -3896,12 +4032,12 @@ 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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.replicationLogArchivingEnabled, long + 1); if (error) return "replicationLogArchivingEnabled." + error; } @@ -3909,17 +4045,17 @@ 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); + 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); + 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); + var error = $root.google.protobuf.Int32Value.verify(message.transactionLogRetentionDays, long + 1); if (error) return "transactionLogRetentionDays." + error; } @@ -3959,45 +4095,49 @@ * @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 (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") 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") 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") 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") 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") 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") 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: @@ -4196,7 +4336,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]]; } @@ -4261,9 +4401,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 +4419,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4306,9 +4450,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.targetSizeGb != null && message.hasOwnProperty("targetSizeGb")) if (!$util.isInteger(message.targetSizeGb) && !(message.targetSizeGb && $util.isInteger(message.targetSizeGb.low) && $util.isInteger(message.targetSizeGb.high))) return "targetSizeGb: integer|Long expected"; @@ -4323,9 +4471,13 @@ * @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 (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) @@ -4418,7 +4570,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]]; } @@ -4519,9 +4671,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 +4699,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4574,9 +4730,13 @@ * @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")) { properties._message = 1; @@ -4613,9 +4773,13 @@ * @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 (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); @@ -4756,7 +4920,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]]; } @@ -4842,9 +5006,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 +5026,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 +5034,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4897,9 +5065,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.targetDatabaseVersion != null && message.hasOwnProperty("targetDatabaseVersion")) switch (message.targetDatabaseVersion) { default: @@ -4947,6 +5119,7 @@ case 272: case 408: case 557: + case 684: case 26: case 27: case 28: @@ -4955,13 +5128,16 @@ case 200: case 201: case 202: + case 549: + case 550: + case 551: break; } if (message.preCheckResponse != null && message.hasOwnProperty("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; } @@ -4980,9 +5156,13 @@ * @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 (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 +5343,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,6 +5379,18 @@ 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)) @@ -5203,7 +5399,7 @@ for (var i = 0; i < object.preCheckResponse.length; ++i) { if (typeof object.preCheckResponse[i] !== "object") 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) @@ -5293,7 +5489,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]]; } @@ -5378,9 +5574,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 +5600,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -5431,9 +5631,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.backupId != null && message.hasOwnProperty("backupId")) if (!$util.isInteger(message.backupId) && !(message.backupId && $util.isInteger(message.backupId.low) && $util.isInteger(message.backupId.high))) return "backupId: integer|Long expected"; @@ -5454,9 +5658,13 @@ * @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 (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) @@ -5565,7 +5773,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]]; } @@ -5724,9 +5932,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 +5978,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,9 +6013,13 @@ * @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 (!$util.isString(message.kind)) @@ -5832,7 +6048,7 @@ if (message.sqlserverDatabaseDetails != null && message.hasOwnProperty("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 +6064,13 @@ * @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 (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); @@ -5871,7 +6091,7 @@ if (object.sqlserverDatabaseDetails != null) { if (typeof object.sqlserverDatabaseDetails !== "object") 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; }; @@ -5973,7 +6193,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]]; } @@ -6048,9 +6268,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 +6290,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6097,9 +6321,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.compatibilityLevel != null && message.hasOwnProperty("compatibilityLevel")) if (!$util.isInteger(message.compatibilityLevel)) return "compatibilityLevel: integer expected"; @@ -6117,9 +6345,13 @@ * @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 (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; @@ -6202,7 +6434,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]]; } @@ -6277,9 +6509,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 +6531,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6326,9 +6562,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -6346,9 +6586,13 @@ * @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 (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); @@ -6431,7 +6675,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]]; } @@ -6497,9 +6741,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 +6757,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 +6792,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.initialSyncFlags != null && message.hasOwnProperty("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,9 +6819,13 @@ * @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 (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)) @@ -6578,7 +6834,7 @@ for (var i = 0; i < object.initialSyncFlags.length; ++i) { if (typeof object.initialSyncFlags[i] !== "object") 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; @@ -6657,7 +6913,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]]; } @@ -6732,9 +6988,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 +7010,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6781,9 +7041,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -6801,9 +7065,13 @@ * @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 (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); @@ -6887,7 +7155,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]]; } @@ -6972,9 +7240,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 +7266,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7025,9 +7297,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -7048,9 +7324,13 @@ * @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 (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); @@ -7138,7 +7418,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]]; } @@ -7213,9 +7493,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 +7511,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 +7546,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("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); + var error = $root.google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration.verify(message.mysqlReplicaConfiguration, long + 1); if (error) return "mysqlReplicaConfiguration." + error; } @@ -7284,16 +7572,20 @@ * @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 (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") 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; }; @@ -7376,7 +7668,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]]; } @@ -7491,9 +7783,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 +7821,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7556,9 +7852,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -7588,9 +7888,13 @@ * @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 (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); @@ -7721,7 +8025,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]]; } @@ -7867,9 +8171,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 +8199,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 +8211,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,9 +8254,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.uri != null && message.hasOwnProperty("uri")) if (!$util.isString(message.uri)) return "uri: string expected"; @@ -7963,12 +8275,12 @@ 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); + 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); + var error = $root.google.cloud.sql.v1.ExportContext.SqlCsvExportOptions.verify(message.csvExportOptions, long + 1); if (error) return "csvExportOptions." + error; } @@ -7984,17 +8296,17 @@ break; } if (message.offload != null && message.hasOwnProperty("offload")) { - var error = $root.google.protobuf.BoolValue.verify(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); + 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); + var error = $root.google.cloud.sql.v1.ExportContext.SqlTdeExportOptions.verify(message.tdeExportOptions, long + 1); if (error) return "tdeExportOptions." + error; } @@ -8009,9 +8321,13 @@ * @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 (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); @@ -8027,12 +8343,12 @@ if (object.sqlExportOptions != null) { if (typeof object.sqlExportOptions !== "object") 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") 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: @@ -8065,17 +8381,17 @@ if (object.offload != null) { if (typeof object.offload !== "object") 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") 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") 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; }; @@ -8179,7 +8495,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]]; } @@ -8284,9 +8600,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 +8634,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -8345,9 +8665,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.selectQuery != null && message.hasOwnProperty("selectQuery")) if (!$util.isString(message.selectQuery)) return "selectQuery: string expected"; @@ -8374,9 +8698,13 @@ * @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 (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); @@ -8479,7 +8807,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]]; } @@ -8595,9 +8923,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 +8943,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,9 +8994,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.tables != null && message.hasOwnProperty("tables")) { if (!Array.isArray(message.tables)) return "tables: array expected"; @@ -8673,27 +9009,27 @@ return "tables: string[] expected"; } if (message.schemaOnly != null && message.hasOwnProperty("schemaOnly")) { - var error = $root.google.protobuf.BoolValue.verify(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); + 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); + 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); + 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); + var error = $root.google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptions.verify(message.postgresExportOptions, long + 1); if (error) return "postgresExportOptions." + error; } @@ -8708,9 +9044,13 @@ * @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 (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)) @@ -8722,27 +9062,27 @@ if (object.schemaOnly != null) { if (typeof object.schemaOnly !== "object") 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") 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") 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") 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") 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; }; @@ -8833,7 +9173,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]]; } @@ -8898,9 +9238,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 +9252,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 +9287,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.masterData != null && message.hasOwnProperty("masterData")) { - var error = $root.google.protobuf.Int32Value.verify(message.masterData); + var error = $root.google.protobuf.Int32Value.verify(message.masterData, long + 1); if (error) return "masterData." + error; } @@ -8962,14 +9310,18 @@ * @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 (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") 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; }; @@ -9044,7 +9396,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]]; } @@ -9119,9 +9471,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 +9485,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 +9524,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.clean != null && message.hasOwnProperty("clean")) { - var error = $root.google.protobuf.BoolValue.verify(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); + var error = $root.google.protobuf.BoolValue.verify(message.ifExists, long + 1); if (error) return "ifExists." + error; } @@ -9192,19 +9552,23 @@ * @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 (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") 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") 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; }; @@ -9291,7 +9655,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]]; } @@ -9416,9 +9780,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 +9794,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 +9806,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,16 +9853,20 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.striped != null && message.hasOwnProperty("striped")) { - var error = $root.google.protobuf.BoolValue.verify(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); + var error = $root.google.protobuf.Int32Value.verify(message.stripeCount, long + 1); if (error) return "stripeCount." + error; } @@ -9509,22 +9881,22 @@ break; } if (message.copyOnly != null && message.hasOwnProperty("copyOnly")) { - var error = $root.google.protobuf.BoolValue.verify(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); + 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); + 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); + var error = $root.google.protobuf.Timestamp.verify(message.exportLogEndTime, long + 1); if (error) return "exportLogEndTime." + error; } @@ -9539,19 +9911,23 @@ * @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 (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") 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") 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: @@ -9580,22 +9956,22 @@ if (object.copyOnly != null) { if (typeof object.copyOnly !== "object") 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") 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") 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") 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; }; @@ -9691,7 +10067,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]]; } @@ -9786,9 +10162,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 +10192,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -9843,9 +10223,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.certificatePath != null && message.hasOwnProperty("certificatePath")) if (!$util.isString(message.certificatePath)) return "certificatePath: string expected"; @@ -9869,9 +10253,13 @@ * @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 (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); @@ -9974,7 +10362,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]]; } @@ -10119,9 +10507,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 +10537,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 +10545,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,9 +10588,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.uri != null && message.hasOwnProperty("uri")) if (!$util.isString(message.uri)) return "uri: string expected"; @@ -10220,7 +10616,7 @@ break; } if (message.csvImportOptions != null && message.hasOwnProperty("csvImportOptions")) { - var error = $root.google.cloud.sql.v1.ImportContext.SqlCsvImportOptions.verify(message.csvImportOptions); + var error = $root.google.cloud.sql.v1.ImportContext.SqlCsvImportOptions.verify(message.csvImportOptions, long + 1); if (error) return "csvImportOptions." + error; } @@ -10228,17 +10624,17 @@ 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); + 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); + 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); + var error = $root.google.cloud.sql.v1.ImportContext.SqlTdeImportOptions.verify(message.tdeImportOptions, long + 1); if (error) return "tdeImportOptions." + error; } @@ -10253,9 +10649,13 @@ * @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 (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); @@ -10294,24 +10694,24 @@ if (object.csvImportOptions != null) { if (typeof object.csvImportOptions !== "object") 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") 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") 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") 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; }; @@ -10409,7 +10809,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]]; } @@ -10494,9 +10894,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 +10908,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 +10951,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.threads != null && message.hasOwnProperty("threads")) { - var error = $root.google.protobuf.Int32Value.verify(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); + 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); + var error = $root.google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptions.verify(message.postgresImportOptions, long + 1); if (error) return "postgresImportOptions." + error; } @@ -10576,24 +10984,28 @@ * @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 (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") 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") 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") 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; }; @@ -10672,7 +11084,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]]; } @@ -10747,9 +11159,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 +11173,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 +11212,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.clean != null && message.hasOwnProperty("clean")) { - var error = $root.google.protobuf.BoolValue.verify(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); + var error = $root.google.protobuf.BoolValue.verify(message.ifExists, long + 1); if (error) return "ifExists." + error; } @@ -10820,19 +11240,23 @@ * @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 (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") 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") 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; }; @@ -10919,7 +11343,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]]; } @@ -11035,9 +11459,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 +11499,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11102,9 +11530,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.table != null && message.hasOwnProperty("table")) if (!$util.isString(message.table)) return "table: string expected"; @@ -11138,9 +11570,13 @@ * @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 (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); @@ -11257,7 +11693,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]]; } @@ -11382,9 +11818,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 +11832,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 +11852,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 +11860,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11451,26 +11891,30 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.encryptionOptions != null && message.hasOwnProperty("encryptionOptions")) { - var error = $root.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions.verify(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); + 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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.recoveryOnly, long + 1); if (error) return "recoveryOnly." + error; } @@ -11485,7 +11929,7 @@ break; } if (message.stopAt != null && message.hasOwnProperty("stopAt")) { - var error = $root.google.protobuf.Timestamp.verify(message.stopAt); + var error = $root.google.protobuf.Timestamp.verify(message.stopAt, long + 1); if (error) return "stopAt." + error; } @@ -11503,29 +11947,33 @@ * @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 (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") 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") 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") 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") 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: @@ -11554,7 +12002,7 @@ if (object.stopAt != null) { if (typeof object.stopAt !== "object") 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); @@ -11649,7 +12097,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]]; } @@ -11744,9 +12192,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 +12218,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,9 +12253,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.certPath != null && message.hasOwnProperty("certPath")) if (!$util.isString(message.certPath)) return "certPath: string expected"; @@ -11814,7 +12270,7 @@ 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); + var error = $root.google.protobuf.BoolValue.verify(message.keepEncrypted, long + 1); if (error) return "keepEncrypted." + error; } @@ -11829,9 +12285,13 @@ * @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 (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); @@ -11842,7 +12302,7 @@ if (object.keepEncrypted != null) { if (typeof object.keepEncrypted !== "object") 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; }; @@ -11932,7 +12392,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]]; } @@ -12027,9 +12487,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 +12517,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -12084,9 +12548,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.certificatePath != null && message.hasOwnProperty("certificatePath")) if (!$util.isString(message.certificatePath)) return "certificatePath: string expected"; @@ -12110,9 +12578,13 @@ * @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 (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); @@ -12238,7 +12710,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]]; } @@ -12442,9 +12914,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 +12928,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 +12936,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 +12950,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 +12958,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 +12980,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -12535,12 +13011,16 @@ * @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); + var error = $root.google.protobuf.BoolValue.verify(message.ipv4Enabled, long + 1); if (error) return "ipv4Enabled." + error; } @@ -12548,7 +13028,7 @@ 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); + var error = $root.google.protobuf.BoolValue.verify(message.requireSsl, long + 1); if (error) return "requireSsl." + error; } @@ -12556,7 +13036,7 @@ 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; } @@ -12565,7 +13045,7 @@ 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); + var error = $root.google.protobuf.BoolValue.verify(message.enablePrivatePathForGoogleCloudServices, long + 1); if (error) return "enablePrivatePathForGoogleCloudServices." + error; } @@ -12582,7 +13062,7 @@ if (message.pscConfig != null && message.hasOwnProperty("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; } @@ -12633,21 +13113,25 @@ * @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 (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") 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") 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)) @@ -12656,7 +13140,7 @@ for (var i = 0; i < object.authorizedNetworks.length; ++i) { if (typeof object.authorizedNetworks[i] !== "object") 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) @@ -12664,7 +13148,7 @@ if (object.enablePrivatePathForGoogleCloudServices != null) { if (typeof object.enablePrivatePathForGoogleCloudServices !== "object") 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: @@ -12693,7 +13177,7 @@ if (object.pscConfig != null) { if (typeof object.pscConfig !== "object") 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: @@ -12912,6 +13396,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 +13413,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 +13449,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 +13474,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 @@ -13006,6 +13520,10 @@ $root.google.cloud.sql.v1.PscAutoConnectionConfig.encode(message.pscAutoConnections[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).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; }; @@ -13033,9 +13551,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 +13577,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,9 +13624,13 @@ * @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")) { properties._pscEnabled = 1; @@ -13114,7 +13648,7 @@ 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; } @@ -13122,6 +13656,16 @@ if (message.networkAttachmentUri != null && message.hasOwnProperty("networkAttachmentUri")) if (!$util.isString(message.networkAttachmentUri)) return "networkAttachmentUri: string expected"; + if (message.pscAutoDnsEnabled != null && message.hasOwnProperty("pscAutoDnsEnabled")) { + properties._pscAutoDnsEnabled = 1; + if (typeof message.pscAutoDnsEnabled !== "boolean") + return "pscAutoDnsEnabled: boolean expected"; + } + if (message.pscWriteEndpointDnsEnabled != null && message.hasOwnProperty("pscWriteEndpointDnsEnabled")) { + properties._pscWriteEndpointDnsEnabled = 1; + if (typeof message.pscWriteEndpointDnsEnabled !== "boolean") + return "pscWriteEndpointDnsEnabled: boolean expected"; + } return null; }; @@ -13133,9 +13677,13 @@ * @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 (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); @@ -13153,11 +13701,15 @@ for (var i = 0; i < object.pscAutoConnections.length; ++i) { if (typeof object.pscAutoConnections[i] !== "object") 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; }; @@ -13197,6 +13749,16 @@ } if (message.networkAttachmentUri != null && message.hasOwnProperty("networkAttachmentUri")) object.networkAttachmentUri = message.networkAttachmentUri; + if (message.pscAutoDnsEnabled != null && message.hasOwnProperty("pscAutoDnsEnabled")) { + object.pscAutoDnsEnabled = message.pscAutoDnsEnabled; + if (options.oneofs) + object._pscAutoDnsEnabled = "pscAutoDnsEnabled"; + } + if (message.pscWriteEndpointDnsEnabled != null && message.hasOwnProperty("pscWriteEndpointDnsEnabled")) { + object.pscWriteEndpointDnsEnabled = message.pscWriteEndpointDnsEnabled; + if (options.oneofs) + object._pscWriteEndpointDnsEnabled = "pscWriteEndpointDnsEnabled"; + } return object; }; @@ -13253,7 +13815,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]]; } @@ -13379,9 +13941,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 +13975,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -13440,9 +14006,13 @@ * @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 (!$util.isString(message.consumerProject)) @@ -13476,9 +14046,13 @@ * @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 (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); @@ -13584,7 +14158,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]]; } @@ -13679,9 +14253,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 +14283,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -13736,9 +14314,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.followGaeApplication != null && message.hasOwnProperty("followGaeApplication")) if (!$util.isString(message.followGaeApplication)) return "followGaeApplication: string expected"; @@ -13762,9 +14344,13 @@ * @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 (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); @@ -13859,7 +14445,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]]; } @@ -13954,9 +14540,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 +14554,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 +14570,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -14011,16 +14601,20 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.hour != null && message.hasOwnProperty("hour")) { - var error = $root.google.protobuf.Int32Value.verify(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); + var error = $root.google.protobuf.Int32Value.verify(message.day, long + 1); if (error) return "day." + error; } @@ -14048,19 +14642,23 @@ * @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 (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") 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") 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: @@ -14172,7 +14770,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]]; } @@ -14257,9 +14855,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 +14881,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -14310,9 +14912,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.startDate != null && message.hasOwnProperty("startDate")) if (!$util.isString(message.startDate)) return "startDate: string expected"; @@ -14333,9 +14939,13 @@ * @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 (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); @@ -14427,7 +15037,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]]; } @@ -14542,9 +15152,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 +15178,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,9 +15221,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.queryInsightsEnabled != null && message.hasOwnProperty("queryInsightsEnabled")) if (typeof message.queryInsightsEnabled !== "boolean") return "queryInsightsEnabled: boolean expected"; @@ -14620,17 +15238,17 @@ 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); + 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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.enhancedQueryInsightsEnabled, long + 1); if (error) return "enhancedQueryInsightsEnabled." + error; } @@ -14645,9 +15263,13 @@ * @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 (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); @@ -14658,17 +15280,17 @@ if (object.queryStringLength != null) { if (typeof object.queryStringLength !== "object") 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") 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") 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; }; @@ -14768,7 +15390,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]]; } @@ -14933,9 +15555,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 +15581,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 +15605,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 +15613,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -15018,9 +15644,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.dumpFilePath != null && message.hasOwnProperty("dumpFilePath")) if (!$util.isString(message.dumpFilePath)) return "dumpFilePath: string expected"; @@ -15031,12 +15661,12 @@ 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); + 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); + var error = $root.google.protobuf.Int64Value.verify(message.masterHeartbeatPeriod, long + 1); if (error) return "masterHeartbeatPeriod." + error; } @@ -15053,7 +15683,7 @@ 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); + var error = $root.google.protobuf.BoolValue.verify(message.verifyServerCertificate, long + 1); if (error) return "verifyServerCertificate." + error; } @@ -15071,9 +15701,13 @@ * @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 (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); @@ -15084,12 +15718,12 @@ if (object.connectRetryInterval != null) { if (typeof object.connectRetryInterval !== "object") 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") 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); @@ -15102,7 +15736,7 @@ if (object.verifyServerCertificate != null) { if (typeof object.verifyServerCertificate !== "object") 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); @@ -15210,7 +15844,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]]; } @@ -15285,9 +15919,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 +15941,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -15334,9 +15972,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kmsKeyName != null && message.hasOwnProperty("kmsKeyName")) if (!$util.isString(message.kmsKeyName)) return "kmsKeyName: string expected"; @@ -15354,9 +15996,13 @@ * @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 (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); @@ -15439,7 +16085,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]]; } @@ -15514,9 +16160,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 +16182,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -15563,9 +16213,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kmsKeyVersionName != null && message.hasOwnProperty("kmsKeyVersionName")) if (!$util.isString(message.kmsKeyVersionName)) return "kmsKeyVersionName: string expected"; @@ -15583,9 +16237,13 @@ * @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 (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); @@ -15669,7 +16327,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]]; } @@ -15754,9 +16412,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 +16434,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,9 +16469,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.type != null && message.hasOwnProperty("type")) switch (message.type) { default: @@ -15825,7 +16491,7 @@ 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); + var error = $root.google.protobuf.Timestamp.verify(message.timeToRetire, long + 1); if (error) return "timeToRetire." + error; } @@ -15840,9 +16506,13 @@ * @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 (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: @@ -15877,7 +16547,7 @@ if (object.timeToRetire != null) { if (typeof object.timeToRetire !== "object") 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; }; @@ -15978,7 +16648,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]]; } @@ -16057,9 +16727,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 +16745,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -16102,9 +16776,13 @@ * @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")) { properties.subOperationDetails = 1; @@ -16130,9 +16808,13 @@ * @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 (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: @@ -16254,7 +16936,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]]; } @@ -16509,9 +17191,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 +17221,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 +17245,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 +17277,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,9 +17316,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -16653,27 +17343,27 @@ 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); + 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); + 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); + 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); + 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); + var error = $root.google.cloud.sql.v1.ApiWarning.verify(message.apiWarning, long + 1); if (error) return "apiWarning." + error; } @@ -16733,25 +17423,26 @@ 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); + 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); + 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); + 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); + var error = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.verify(message.preCheckMajorVersionUpgradeContext, long + 1); if (error) return "preCheckMajorVersionUpgradeContext." + error; } @@ -16768,12 +17459,12 @@ 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); + 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); + var error = $root.google.cloud.sql.v1.SqlSubOperationType.verify(message.subOperationType, long + 1); if (error) return "subOperationType." + error; } @@ -16788,9 +17479,13 @@ * @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 (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); @@ -16825,27 +17520,27 @@ if (object.insertTime != null) { if (typeof object.insertTime !== "object") 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") 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") 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") 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") 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 +17757,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") 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") 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") 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") 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); @@ -17094,12 +17793,12 @@ if (object.acquireSsrsLeaseContext != null) { if (typeof object.acquireSsrsLeaseContext !== "object") 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") 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; }; @@ -17264,6 +17963,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 +18019,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 +18066,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]]; } @@ -17450,9 +18151,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 +18177,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -17503,9 +18208,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -17526,9 +18235,13 @@ * @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 (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); @@ -17617,7 +18330,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]]; } @@ -17693,9 +18406,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 +18426,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,9 +18461,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -17754,7 +18475,7 @@ 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 +18491,13 @@ * @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 (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); @@ -17783,7 +18508,7 @@ for (var i = 0; i < object.errors.length; ++i) { if (typeof object.errors[i] !== "object") 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; @@ -17871,7 +18596,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]]; } @@ -17996,9 +18721,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 +18735,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 +18743,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,11 +18794,15 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.minLength != null && message.hasOwnProperty("minLength")) { - var error = $root.google.protobuf.Int32Value.verify(message.minLength); + var error = $root.google.protobuf.Int32Value.verify(message.minLength, long + 1); if (error) return "minLength." + error; } @@ -18082,27 +18815,27 @@ break; } if (message.reuseInterval != null && message.hasOwnProperty("reuseInterval")) { - var error = $root.google.protobuf.Int32Value.verify(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); + 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); + 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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.disallowCompromisedCredentials, long + 1); if (error) return "disallowCompromisedCredentials." + error; } @@ -18117,14 +18850,18 @@ * @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 (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") 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: @@ -18145,27 +18882,27 @@ if (object.reuseInterval != null) { if (typeof object.reuseInterval !== "object") 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") 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") 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") 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") 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; }; @@ -18272,7 +19009,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]]; } @@ -18337,9 +19074,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 +19092,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -18382,9 +19123,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.dataCacheEnabled != null && message.hasOwnProperty("dataCacheEnabled")) if (typeof message.dataCacheEnabled !== "boolean") return "dataCacheEnabled: boolean expected"; @@ -18399,9 +19144,13 @@ * @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 (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); @@ -18478,7 +19227,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]]; } @@ -18568,9 +19317,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 +19339,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -18617,9 +19370,13 @@ * @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")) { properties._enabled = 1; @@ -18642,9 +19399,13 @@ * @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 (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); @@ -18755,6 +19516,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 +19538,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 +19870,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 @@ -19295,6 +20065,8 @@ $root.google.cloud.sql.v1.FinalBackupConfig.encode(message.finalBackupConfig, writer.uint32(/* id 47, wireType 2 =*/378).fork()).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(); + if (message.acceleratedReplicaMode != null && Object.hasOwnProperty.call(message, "acceleratedReplicaMode")) + $root.google.protobuf.BoolValue.encode(message.acceleratedReplicaMode, writer.uint32(/* id 49, wireType 2 =*/394).fork()).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")) @@ -19330,9 +20102,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 +20116,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 +20149,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 +20171,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 +20179,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 +20201,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 +20231,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 +20255,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 +20263,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 +20295,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 +20315,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 +20323,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,12 +20358,16 @@ * @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); + var error = $root.google.protobuf.Int64Value.verify(message.settingsVersion, long + 1); if (error) return "settingsVersion." + error; } @@ -19634,7 +20420,7 @@ break; } if (message.storageAutoResizeLimit != null && message.hasOwnProperty("storageAutoResizeLimit")) { - var error = $root.google.protobuf.Int64Value.verify(message.storageAutoResizeLimit); + var error = $root.google.protobuf.Int64Value.verify(message.storageAutoResizeLimit, long + 1); if (error) return "storageAutoResizeLimit." + error; } @@ -19649,17 +20435,17 @@ break; } if (message.ipConfiguration != null && message.hasOwnProperty("ipConfiguration")) { - var error = $root.google.cloud.sql.v1.IpConfiguration.verify(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); + 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); + var error = $root.google.cloud.sql.v1.LocationPreference.verify(message.locationPreference, long + 1); if (error) return "locationPreference." + error; } @@ -19667,7 +20453,7 @@ 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; } @@ -19684,32 +20470,32 @@ break; } if (message.maintenanceWindow != null && message.hasOwnProperty("maintenanceWindow")) { - var error = $root.google.cloud.sql.v1.MaintenanceWindow.verify(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); + 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); + 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); + 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); + 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); + var error = $root.google.cloud.sql.v1.SqlActiveDirectoryConfig.verify(message.activeDirectoryConfig, long + 1); if (error) return "activeDirectoryConfig." + error; } @@ -19720,23 +20506,23 @@ 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); + 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); + 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); + var error = $root.google.cloud.sql.v1.SqlServerAuditConfig.verify(message.sqlServerAuditConfig, long + 1); if (error) return "sqlServerAuditConfig." + error; } @@ -19759,7 +20545,7 @@ break; } if (message.deletionProtectionEnabled != null && message.hasOwnProperty("deletionProtectionEnabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.deletionProtectionEnabled); + var error = $root.google.protobuf.BoolValue.verify(message.deletionProtectionEnabled, long + 1); if (error) return "deletionProtectionEnabled." + error; } @@ -19767,32 +20553,32 @@ 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); + 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); + 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); + 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); + 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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.retainBackupsOnDelete, long + 1); if (error) return "retainBackupsOnDelete." + error; } @@ -19809,7 +20595,7 @@ if (message.connectionPoolConfig != null && message.hasOwnProperty("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; } @@ -19817,7 +20603,7 @@ if (message.finalBackupConfig != null && message.hasOwnProperty("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; } @@ -19825,18 +20611,23 @@ if (message.readPoolAutoScaleConfig != null && message.hasOwnProperty("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.acceleratedReplicaMode != null && message.hasOwnProperty("acceleratedReplicaMode")) { + var error = $root.google.protobuf.BoolValue.verify(message.acceleratedReplicaMode, long + 1); + if (error) + return "acceleratedReplicaMode." + error; + } if (message.autoUpgradeEnabled != null && message.hasOwnProperty("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); + var error = $root.google.cloud.sql.v1.SqlServerEntraIdConfig.verify(message.entraidConfig, long + 1); if (error) return "entraidConfig." + error; } @@ -19852,7 +20643,7 @@ } } if (message.performanceCaptureConfig != null && message.hasOwnProperty("performanceCaptureConfig")) { - var error = $root.google.cloud.sql.v1.PerformanceCaptureConfig.verify(message.performanceCaptureConfig); + var error = $root.google.cloud.sql.v1.PerformanceCaptureConfig.verify(message.performanceCaptureConfig, long + 1); if (error) return "performanceCaptureConfig." + error; } @@ -19867,14 +20658,18 @@ * @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 (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") 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)) @@ -19891,8 +20686,11 @@ if (typeof object.userLabels !== "object") 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: @@ -19957,7 +20755,7 @@ if (object.storageAutoResizeLimit != null) { if (typeof object.storageAutoResizeLimit !== "object") 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: @@ -19986,17 +20784,17 @@ if (object.ipConfiguration != null) { if (typeof object.ipConfiguration !== "object") 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") 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") 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)) @@ -20005,7 +20803,7 @@ for (var i = 0; i < object.databaseFlags.length; ++i) { if (typeof object.databaseFlags[i] !== "object") 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) { @@ -20039,32 +20837,32 @@ if (object.maintenanceWindow != null) { if (typeof object.maintenanceWindow !== "object") 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") 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") 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") 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") 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") 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); @@ -20075,23 +20873,23 @@ for (var i = 0; i < object.denyMaintenancePeriods.length; ++i) { if (typeof object.denyMaintenancePeriods[i] !== "object") 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") 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") 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") 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: @@ -20136,39 +20934,39 @@ if (object.deletionProtectionEnabled != null) { if (typeof object.deletionProtectionEnabled !== "object") 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") 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") 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") 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") 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") 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") 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) @@ -20191,24 +20989,29 @@ if (object.connectionPoolConfig != null) { if (typeof object.connectionPoolConfig !== "object") 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") 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") 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 (typeof object.acceleratedReplicaMode !== "object") + 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") 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: @@ -20233,7 +21036,7 @@ if (object.performanceCaptureConfig != null) { if (typeof object.performanceCaptureConfig !== "object") 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; }; @@ -20291,6 +21094,7 @@ object.enableGoogleMlIntegration = null; object.enableDataplexIntegration = null; object.retainBackupsOnDelete = null; + object.acceleratedReplicaMode = null; object.entraidConfig = null; object.performanceCaptureConfig = null; } @@ -20308,8 +21112,11 @@ 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")) 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; @@ -20410,6 +21217,8 @@ if (options.oneofs) object._readPoolAutoScaleConfig = "readPoolAutoScaleConfig"; } + if (message.acceleratedReplicaMode != null && message.hasOwnProperty("acceleratedReplicaMode")) + object.acceleratedReplicaMode = $root.google.protobuf.BoolValue.toObject(message.acceleratedReplicaMode, options); if (message.autoUpgradeEnabled != null && message.hasOwnProperty("autoUpgradeEnabled")) { object.autoUpgradeEnabled = message.autoUpgradeEnabled; if (options.oneofs) @@ -20547,7 +21356,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]]; } @@ -20701,9 +21510,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 +21548,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -20766,9 +21579,13 @@ * @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")) { properties._enabled = 1; @@ -20811,9 +21628,13 @@ * @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 (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); @@ -20926,7 +21747,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]]; } @@ -21001,9 +21822,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 +21844,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -21050,9 +21875,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -21070,9 +21899,13 @@ * @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 (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); @@ -21157,7 +21990,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]]; } @@ -21258,9 +22091,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 +22111,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 +22119,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -21313,9 +22150,13 @@ * @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")) { properties._connectionPoolingEnabled = 1; @@ -21326,7 +22167,7 @@ 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; } @@ -21347,9 +22188,13 @@ * @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 (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); @@ -21360,7 +22205,7 @@ for (var i = 0; i < object.flags.length; ++i) { if (typeof object.flags[i] !== "object") 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) @@ -21457,7 +22302,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]]; } @@ -21622,9 +22467,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 +22495,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 +22511,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -21693,9 +22542,13 @@ * @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")) { properties._enabled = 1; @@ -21716,7 +22569,7 @@ 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; } @@ -21747,9 +22600,13 @@ * @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 (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); @@ -21764,7 +22621,7 @@ for (var i = 0; i < object.targetMetrics.length; ++i) { if (typeof object.targetMetrics[i] !== "object") 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) @@ -21876,7 +22733,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]]; } @@ -21966,9 +22823,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 +22845,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -22015,9 +22876,13 @@ * @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")) { properties._metric = 1; @@ -22040,9 +22905,13 @@ * @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 (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); @@ -22129,7 +22998,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]]; } @@ -22194,9 +23063,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 +23081,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -22239,9 +23112,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.threadsPerCore != null && message.hasOwnProperty("threadsPerCore")) if (!$util.isInteger(message.threadsPerCore)) return "threadsPerCore: integer expected"; @@ -22256,9 +23133,13 @@ * @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 (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; @@ -22342,7 +23223,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]]; } @@ -22487,9 +23368,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 +23394,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 +23402,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 +23418,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -22564,9 +23449,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -22577,7 +23466,7 @@ 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); + var error = $root.google.protobuf.Timestamp.verify(message.createTime, long + 1); if (error) return "createTime." + error; } @@ -22585,7 +23474,7 @@ 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); + var error = $root.google.protobuf.Timestamp.verify(message.expirationTime, long + 1); if (error) return "expirationTime." + error; } @@ -22609,9 +23498,13 @@ * @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 (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); @@ -22622,14 +23515,14 @@ if (object.createTime != null) { if (typeof object.createTime !== "object") 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") 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); @@ -22735,7 +23628,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]]; } @@ -22810,9 +23703,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 +23717,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 +23725,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -22859,11 +23756,15 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.certInfo != null && message.hasOwnProperty("certInfo")) { - var error = $root.google.cloud.sql.v1.SslCert.verify(message.certInfo); + var error = $root.google.cloud.sql.v1.SslCert.verify(message.certInfo, long + 1); if (error) return "certInfo." + error; } @@ -22881,14 +23782,18 @@ * @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 (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") 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); @@ -22974,7 +23879,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]]; } @@ -23090,9 +23995,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 +24035,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -23157,9 +24066,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -23200,9 +24113,13 @@ * @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 (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); @@ -23356,7 +24273,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]]; } @@ -23451,9 +24368,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 +24390,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,9 +24429,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -23518,12 +24443,12 @@ 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); + 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); + var error = $root.google.protobuf.Duration.verify(message.uploadInterval, long + 1); if (error) return "uploadInterval." + error; } @@ -23538,9 +24463,13 @@ * @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 (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); @@ -23549,12 +24478,12 @@ if (object.retentionInterval != null) { if (typeof object.retentionInterval !== "object") 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") 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; }; @@ -23640,7 +24569,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]]; } @@ -23725,9 +24654,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 +24680,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -23778,9 +24711,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -23801,9 +24738,13 @@ * @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 (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); @@ -23955,6 +24896,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 +24905,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 +24954,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 +24963,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 +25078,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]]; } @@ -24251,9 +25200,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 +25226,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,9 +25261,13 @@ * @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")) { properties._setupLogin = 1; @@ -24330,7 +25287,7 @@ if (message.duration != null && message.hasOwnProperty("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 +25303,13 @@ * @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 (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); @@ -24359,7 +25320,7 @@ if (object.duration != null) { if (typeof object.duration !== "object") 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; }; @@ -24452,7 +25413,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]]; } @@ -24547,9 +25508,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 +25538,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -24604,9 +25569,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -24649,9 +25618,13 @@ * @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 (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); @@ -25052,7 +26025,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]]; } @@ -25127,9 +26100,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 +26118,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 +26153,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.parent != null && message.hasOwnProperty("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); + var error = $root.google.cloud.sql.v1.Backup.verify(message.backup, long + 1); if (error) return "backup." + error; } @@ -25198,16 +26179,20 @@ * @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 (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") 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; }; @@ -25285,7 +26270,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]]; } @@ -25350,9 +26335,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 +26353,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -25395,9 +26384,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -25412,9 +26405,13 @@ * @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 (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); @@ -25493,7 +26490,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]]; } @@ -25588,9 +26585,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 +26615,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -25645,9 +26646,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.parent != null && message.hasOwnProperty("parent")) if (!$util.isString(message.parent)) return "parent: string expected"; @@ -25671,9 +26676,13 @@ * @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 (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); @@ -25769,7 +26778,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]]; } @@ -25856,9 +26865,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 +26881,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 +26891,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,14 +26926,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.backups != null && message.hasOwnProperty("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; } @@ -25932,7 +26949,7 @@ 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,9 +26965,13 @@ * @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 (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)) @@ -25959,7 +26980,7 @@ for (var i = 0; i < object.backups.length; ++i) { if (typeof object.backups[i] !== "object") 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) @@ -25971,7 +26992,7 @@ for (var i = 0; i < object.warnings.length; ++i) { if (typeof object.warnings[i] !== "object") 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; @@ -26061,7 +27082,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]]; } @@ -26136,9 +27157,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 +27171,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 +27210,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.backup != null && message.hasOwnProperty("backup")) { - var error = $root.google.cloud.sql.v1.Backup.verify(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); + var error = $root.google.protobuf.FieldMask.verify(message.updateMask, long + 1); if (error) return "updateMask." + error; } @@ -26209,19 +27238,23 @@ * @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 (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") 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") 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; }; @@ -26299,7 +27332,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]]; } @@ -26364,9 +27397,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 +27415,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -26409,9 +27446,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -26426,9 +27467,13 @@ * @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 (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); @@ -26526,7 +27571,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]]; } @@ -26831,9 +27876,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 +27918,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 +27926,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 +27950,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 +27962,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 +27974,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,9 +28013,13 @@ * @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 (!$util.isString(message.name)) @@ -26997,7 +28050,7 @@ 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); + var error = $root.google.type.Interval.verify(message.backupInterval, long + 1); if (error) return "backupInterval." + error; } @@ -27015,7 +28068,7 @@ break; } if (message.error != null && message.hasOwnProperty("error")) { - var error = $root.google.cloud.sql.v1.OperationError.verify(message.error); + var error = $root.google.cloud.sql.v1.OperationError.verify(message.error, long + 1); if (error) return "error." + error; } @@ -27047,7 +28100,7 @@ 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; } @@ -27099,6 +28152,7 @@ case 272: case 408: case 557: + case 684: case 26: case 27: case 28: @@ -27107,6 +28161,9 @@ case 200: case 201: case 202: + case 549: + case 550: + case 551: break; } if (message.maxChargeableBytes != null && message.hasOwnProperty("maxChargeableBytes")) { @@ -27115,12 +28172,12 @@ return "maxChargeableBytes: integer|Long expected"; } if (message.instanceDeletionTime != null && message.hasOwnProperty("instanceDeletionTime")) { - var error = $root.google.protobuf.Timestamp.verify(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); + var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.instanceSettings, long + 1); if (error) return "instanceSettings." + error; } @@ -27128,12 +28185,12 @@ 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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzi, long + 1); if (error) return "satisfiesPzi." + error; } @@ -27148,9 +28205,13 @@ * @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 (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); @@ -27191,7 +28252,7 @@ if (object.backupInterval != null) { if (typeof object.backupInterval !== "object") 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: @@ -27232,7 +28293,7 @@ if (object.error != null) { if (typeof object.error !== "object") 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); @@ -27272,7 +28333,7 @@ if (object.expiryTime != null) { if (typeof object.expiryTime !== "object") 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 +28514,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,6 +28550,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; } if (object.maxChargeableBytes != null) if ($util.Long) @@ -27498,24 +28575,24 @@ if (object.instanceDeletionTime != null) { if (typeof object.instanceDeletionTime !== "object") 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") 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") 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") 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; }; @@ -29165,7 +30242,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]]; } @@ -29240,9 +30317,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 +30339,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29289,9 +30370,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -29309,9 +30394,13 @@ * @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 (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); @@ -29394,7 +30483,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]]; } @@ -29469,9 +30558,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 +30580,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29518,9 +30611,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -29538,9 +30635,13 @@ * @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 (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); @@ -29623,7 +30724,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]]; } @@ -29698,9 +30799,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 +30821,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29747,9 +30852,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -29767,9 +30876,13 @@ * @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 (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); @@ -29853,7 +30966,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]]; } @@ -29938,9 +31051,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 +31073,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,9 +31108,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -30001,7 +31122,7 @@ 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); + var error = $root.google.cloud.sql.v1.InstancesCloneRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -30016,9 +31137,13 @@ * @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 (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); @@ -30027,7 +31152,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -30113,7 +31238,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]]; } @@ -30248,9 +31373,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 +31403,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 +31411,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -30313,9 +31442,13 @@ * @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 (!$util.isString(message.instance)) @@ -30338,7 +31471,7 @@ 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; } @@ -30357,9 +31490,13 @@ * @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 (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); @@ -30379,7 +31516,7 @@ if (object.finalBackupExpiryTime != null) { if (typeof object.finalBackupExpiryTime !== "object") 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); @@ -30482,7 +31619,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]]; } @@ -30567,9 +31704,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 +31726,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,9 +31761,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -30630,7 +31775,7 @@ 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); + var error = $root.google.cloud.sql.v1.InstancesDemoteMasterRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -30645,9 +31790,13 @@ * @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 (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); @@ -30656,7 +31805,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -30739,7 +31888,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]]; } @@ -30824,9 +31973,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 +31995,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,9 +32030,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -30887,7 +32044,7 @@ 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); + var error = $root.google.cloud.sql.v1.InstancesDemoteRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -30902,9 +32059,13 @@ * @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 (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); @@ -30913,7 +32074,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -30996,7 +32157,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]]; } @@ -31081,9 +32242,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 +32264,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,9 +32299,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -31144,7 +32313,7 @@ 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); + var error = $root.google.cloud.sql.v1.InstancesExportRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -31159,9 +32328,13 @@ * @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 (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); @@ -31170,7 +32343,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -31253,7 +32426,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]]; } @@ -31338,9 +32511,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 +32533,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,9 +32568,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -31401,7 +32582,7 @@ 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); + var error = $root.google.cloud.sql.v1.InstancesFailoverRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -31416,9 +32597,13 @@ * @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 (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); @@ -31427,7 +32612,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -31509,7 +32694,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]]; } @@ -31584,9 +32769,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 +32791,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -31633,9 +32822,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -31653,9 +32846,13 @@ * @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 (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); @@ -31739,7 +32936,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]]; } @@ -31824,9 +33021,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 +33043,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,9 +33078,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -31887,7 +33092,7 @@ 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); + var error = $root.google.cloud.sql.v1.InstancesImportRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -31902,9 +33107,13 @@ * @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 (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); @@ -31913,7 +33122,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -31995,7 +33204,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]]; } @@ -32070,9 +33279,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 +33297,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 +33332,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.project != null && message.hasOwnProperty("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); + var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.body, long + 1); if (error) return "body." + error; } @@ -32141,16 +33358,20 @@ * @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 (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") 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; }; @@ -32231,7 +33452,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]]; } @@ -32326,9 +33547,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 +33577,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32383,9 +33608,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.filter != null && message.hasOwnProperty("filter")) if (!$util.isString(message.filter)) return "filter: string expected"; @@ -32409,9 +33638,13 @@ * @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 (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); @@ -32504,7 +33737,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]]; } @@ -32579,9 +33812,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 +33834,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32628,9 +33865,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -32648,9 +33889,13 @@ * @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 (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); @@ -32733,7 +33978,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]]; } @@ -32808,9 +34053,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 +34075,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32857,9 +34106,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -32877,9 +34130,13 @@ * @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 (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); @@ -32962,7 +34219,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]]; } @@ -33037,9 +34294,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 +34316,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -33086,9 +34347,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -33106,9 +34371,13 @@ * @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 (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); @@ -33192,7 +34461,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]]; } @@ -33277,9 +34546,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 +34568,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,9 +34603,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -33340,7 +34617,7 @@ 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); + var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.body, long + 1); if (error) return "body." + error; } @@ -33355,9 +34632,13 @@ * @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 (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); @@ -33366,7 +34647,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -33449,7 +34730,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]]; } @@ -33534,9 +34815,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 +34841,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -33587,9 +34872,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -33610,9 +34899,13 @@ * @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 (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); @@ -33701,7 +34994,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]]; } @@ -33786,9 +35079,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 +35101,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,9 +35136,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -33849,7 +35150,7 @@ 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); + var error = $root.google.protobuf.Duration.verify(message.dbTimeout, long + 1); if (error) return "dbTimeout." + error; } @@ -33864,9 +35165,13 @@ * @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 (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); @@ -33875,7 +35180,7 @@ if (object.dbTimeout != null) { if (typeof object.dbTimeout !== "object") 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; }; @@ -33958,7 +35263,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]]; } @@ -34043,9 +35348,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 +35374,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -34096,9 +35405,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -34125,9 +35438,13 @@ * @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 (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); @@ -34249,7 +35566,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]]; } @@ -34324,9 +35641,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 +35663,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -34373,9 +35694,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -34393,9 +35718,13 @@ * @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 (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); @@ -34479,7 +35808,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]]; } @@ -34564,9 +35893,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 +35915,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,9 +35950,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -34627,7 +35964,7 @@ 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); + var error = $root.google.cloud.sql.v1.InstancesRestoreBackupRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -34642,9 +35979,13 @@ * @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 (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); @@ -34653,7 +35994,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -34736,7 +36077,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]]; } @@ -34821,9 +36162,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 +36184,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,9 +36219,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -34884,7 +36233,7 @@ 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); + var error = $root.google.cloud.sql.v1.InstancesRotateServerCaRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -34899,9 +36248,13 @@ * @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 (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); @@ -34910,7 +36263,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -34993,7 +36346,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]]; } @@ -35078,9 +36431,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 +36453,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,9 +36488,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -35141,7 +36502,7 @@ 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); + var error = $root.google.cloud.sql.v1.InstancesRotateServerCertificateRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -35156,9 +36517,13 @@ * @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 (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); @@ -35167,7 +36532,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -35250,7 +36615,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]]; } @@ -35335,9 +36700,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 +36722,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,9 +36757,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -35398,7 +36771,7 @@ 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); + var error = $root.google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -35413,9 +36786,13 @@ * @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 (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); @@ -35424,7 +36801,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -35506,7 +36883,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]]; } @@ -35581,9 +36958,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 +36980,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -35630,9 +37011,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -35650,9 +37035,13 @@ * @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 (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); @@ -35735,7 +37124,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]]; } @@ -35810,9 +37199,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 +37221,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -35859,9 +37252,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -35879,9 +37276,13 @@ * @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 (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); @@ -35965,7 +37366,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]]; } @@ -36050,9 +37451,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 +37473,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,9 +37508,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -36113,7 +37522,7 @@ 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); + var error = $root.google.cloud.sql.v1.InstancesTruncateLogRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -36128,9 +37537,13 @@ * @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 (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); @@ -36139,7 +37552,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -36222,7 +37635,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]]; } @@ -36307,9 +37720,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 +37742,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,9 +37777,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -36370,7 +37791,7 @@ 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); + var error = $root.google.cloud.sql.v1.PerformDiskShrinkContext.verify(message.body, long + 1); if (error) return "body." + error; } @@ -36385,9 +37806,13 @@ * @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 (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); @@ -36396,7 +37821,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -36479,7 +37904,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]]; } @@ -36564,9 +37989,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 +38011,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,9 +38046,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -36627,7 +38060,7 @@ 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); + var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.body, long + 1); if (error) return "body." + error; } @@ -36642,9 +38075,13 @@ * @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 (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); @@ -36653,7 +38090,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -36736,7 +38173,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]]; } @@ -36821,9 +38258,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 +38280,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,9 +38315,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -36884,7 +38329,7 @@ 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); + var error = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.verify(message.body, long + 1); if (error) return "body." + error; } @@ -36899,9 +38344,13 @@ * @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 (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); @@ -36910,7 +38359,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -36993,7 +38442,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]]; } @@ -37078,9 +38527,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 +38549,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,9 +38584,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -37141,7 +38598,7 @@ 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); + var error = $root.google.cloud.sql.v1.InstancesReencryptRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -37156,9 +38613,13 @@ * @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 (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); @@ -37167,7 +38628,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -37248,7 +38709,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]]; } @@ -37322,9 +38783,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 +38797,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 +38832,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")) { 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 +38859,18 @@ * @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 (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") 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; }; @@ -37473,7 +38946,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]]; } @@ -37563,9 +39036,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 +39058,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -37612,9 +39089,13 @@ * @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")) { properties._backupLimit = 1; @@ -37643,9 +39124,13 @@ * @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 (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; @@ -37781,7 +39266,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]]; } @@ -37846,9 +39331,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 +39349,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -37891,9 +39380,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.database != null && message.hasOwnProperty("database")) if (!$util.isString(message.database)) return "database: string expected"; @@ -37908,9 +39401,13 @@ * @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 (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); @@ -37987,7 +39484,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]]; } @@ -38062,9 +39559,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 +39581,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -38111,9 +39612,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -38131,9 +39636,13 @@ * @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 (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); @@ -38224,7 +39733,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]]; } @@ -38384,9 +39893,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 +39927,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 +39941,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,9 +39976,13 @@ * @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 (!$util.isString(message.instance)) @@ -38491,7 +40008,7 @@ if (message.mysqlSyncConfig != null && message.hasOwnProperty("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; } @@ -38519,7 +40036,7 @@ 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 +40052,13 @@ * @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 (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); @@ -38570,7 +40091,7 @@ if (object.mysqlSyncConfig != null) { if (typeof object.mysqlSyncConfig !== "object") 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: @@ -38623,7 +40144,7 @@ for (var i = 0; i < object.selectedObjects.length; ++i) { if (typeof object.selectedObjects[i] !== "object") 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; @@ -38768,7 +40289,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]]; } @@ -38917,9 +40438,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 +40468,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 +40484,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -38990,9 +40515,13 @@ * @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 (!$util.isString(message.instance)) @@ -39015,7 +40544,7 @@ if (message.mysqlSyncConfig != null && message.hasOwnProperty("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; } @@ -39053,9 +40582,13 @@ * @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 (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); @@ -39086,7 +40619,7 @@ if (object.mysqlSyncConfig != null) { if (typeof object.mysqlSyncConfig !== "object") 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: @@ -39231,7 +40764,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]]; } @@ -39306,9 +40839,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 +40861,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -39355,9 +40892,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -39375,9 +40916,13 @@ * @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 (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); @@ -39461,7 +41006,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]]; } @@ -39546,9 +41091,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 +41113,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,9 +41148,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -39609,7 +41162,7 @@ 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); + var error = $root.google.cloud.sql.v1.SslCertsCreateEphemeralRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -39624,9 +41177,13 @@ * @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 (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); @@ -39635,7 +41192,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -39716,7 +41273,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]]; } @@ -39781,9 +41338,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 +41352,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 +41387,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.cloneContext != null && message.hasOwnProperty("cloneContext")) { - var error = $root.google.cloud.sql.v1.CloneContext.verify(message.cloneContext); + var error = $root.google.cloud.sql.v1.CloneContext.verify(message.cloneContext, long + 1); if (error) return "cloneContext." + error; } @@ -39845,14 +41410,18 @@ * @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 (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") 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; }; @@ -39926,7 +41495,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]]; } @@ -39991,9 +41560,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 +41574,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 +41609,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.demoteMasterContext != null && message.hasOwnProperty("demoteMasterContext")) { - var error = $root.google.cloud.sql.v1.DemoteMasterContext.verify(message.demoteMasterContext); + var error = $root.google.cloud.sql.v1.DemoteMasterContext.verify(message.demoteMasterContext, long + 1); if (error) return "demoteMasterContext." + error; } @@ -40055,14 +41632,18 @@ * @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 (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") 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; }; @@ -40136,7 +41717,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]]; } @@ -40201,9 +41782,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 +41796,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 +41831,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.demoteContext != null && message.hasOwnProperty("demoteContext")) { - var error = $root.google.cloud.sql.v1.DemoteContext.verify(message.demoteContext); + var error = $root.google.cloud.sql.v1.DemoteContext.verify(message.demoteContext, long + 1); if (error) return "demoteContext." + error; } @@ -40265,14 +41854,18 @@ * @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 (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") 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; }; @@ -40346,7 +41939,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]]; } @@ -40411,9 +42004,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 +42018,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 +42053,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.exportContext != null && message.hasOwnProperty("exportContext")) { - var error = $root.google.cloud.sql.v1.ExportContext.verify(message.exportContext); + var error = $root.google.cloud.sql.v1.ExportContext.verify(message.exportContext, long + 1); if (error) return "exportContext." + error; } @@ -40475,14 +42076,18 @@ * @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 (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") 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; }; @@ -40556,7 +42161,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]]; } @@ -40621,9 +42226,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 +42240,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 +42275,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.failoverContext != null && message.hasOwnProperty("failoverContext")) { - var error = $root.google.cloud.sql.v1.FailoverContext.verify(message.failoverContext); + var error = $root.google.cloud.sql.v1.FailoverContext.verify(message.failoverContext, long + 1); if (error) return "failoverContext." + error; } @@ -40685,14 +42298,18 @@ * @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 (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") 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; }; @@ -40767,7 +42384,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]]; } @@ -40842,9 +42459,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 +42481,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -40891,9 +42512,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.publicKey != null && message.hasOwnProperty("publicKey")) if (!$util.isString(message.publicKey)) return "publicKey: string expected"; @@ -40911,9 +42536,13 @@ * @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 (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); @@ -40995,7 +42624,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]]; } @@ -41060,9 +42689,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 +42703,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 +42738,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.importContext != null && message.hasOwnProperty("importContext")) { - var error = $root.google.cloud.sql.v1.ImportContext.verify(message.importContext); + var error = $root.google.cloud.sql.v1.ImportContext.verify(message.importContext, long + 1); if (error) return "importContext." + error; } @@ -41124,14 +42761,18 @@ * @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 (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") 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; }; @@ -41205,7 +42846,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]]; } @@ -41270,9 +42911,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 +42925,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 +42960,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.preCheckMajorVersionUpgradeContext != null && message.hasOwnProperty("preCheckMajorVersionUpgradeContext")) { - var error = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.verify(message.preCheckMajorVersionUpgradeContext); + var error = $root.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext.verify(message.preCheckMajorVersionUpgradeContext, long + 1); if (error) return "preCheckMajorVersionUpgradeContext." + error; } @@ -41334,14 +42983,18 @@ * @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 (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") 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; }; @@ -41420,7 +43073,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]]; } @@ -41517,9 +43170,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 +43190,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 +43204,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -41578,9 +43235,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -41588,7 +43249,7 @@ 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; } @@ -41597,7 +43258,7 @@ 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; } @@ -41616,9 +43277,13 @@ * @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 (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); @@ -41629,7 +43294,7 @@ for (var i = 0; i < object.warnings.length; ++i) { if (typeof object.warnings[i] !== "object") 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) { @@ -41639,7 +43304,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") 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) @@ -41737,7 +43402,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]]; } @@ -41823,9 +43488,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 +43504,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 +43516,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -41878,14 +43547,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.certs != null && message.hasOwnProperty("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; } @@ -41907,9 +43580,13 @@ * @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 (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)) @@ -41918,7 +43595,7 @@ for (var i = 0; i < object.certs.length; ++i) { if (typeof object.certs[i] !== "object") 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) @@ -42013,7 +43690,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]]; } @@ -42110,9 +43787,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 +43803,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 +43821,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -42171,14 +43852,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.caCerts != null && message.hasOwnProperty("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; } @@ -42187,7 +43872,7 @@ 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; } @@ -42209,9 +43894,13 @@ * @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 (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)) @@ -42220,7 +43909,7 @@ for (var i = 0; i < object.caCerts.length; ++i) { if (typeof object.caCerts[i] !== "object") 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) { @@ -42230,7 +43919,7 @@ for (var i = 0; i < object.serverCerts.length; ++i) { if (typeof object.serverCerts[i] !== "object") 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) @@ -42330,7 +44019,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]]; } @@ -42416,9 +44105,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 +44121,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 +44133,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -42471,14 +44164,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.certs != null && message.hasOwnProperty("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; } @@ -42500,9 +44197,13 @@ * @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 (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)) @@ -42511,7 +44212,7 @@ for (var i = 0; i < object.certs.length; ++i) { if (typeof object.certs[i] !== "object") 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) @@ -42606,7 +44307,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]]; } @@ -42712,9 +44413,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 +44427,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 +44439,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 +44449,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -42775,11 +44480,15 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.restoreBackupContext != null && message.hasOwnProperty("restoreBackupContext")) { - var error = $root.google.cloud.sql.v1.RestoreBackupContext.verify(message.restoreBackupContext); + var error = $root.google.cloud.sql.v1.RestoreBackupContext.verify(message.restoreBackupContext, long + 1); if (error) return "restoreBackupContext." + error; } @@ -42790,7 +44499,7 @@ 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); + var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.restoreInstanceSettings, long + 1); if (error) return "restoreInstanceSettings." + error; } @@ -42812,14 +44521,18 @@ * @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 (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") 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); @@ -42828,7 +44541,7 @@ if (object.restoreInstanceSettings != null) { if (typeof object.restoreInstanceSettings !== "object") 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)) @@ -42926,7 +44639,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]]; } @@ -42991,9 +44704,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 +44718,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 +44753,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.rotateServerCaContext != null && message.hasOwnProperty("rotateServerCaContext")) { - var error = $root.google.cloud.sql.v1.RotateServerCaContext.verify(message.rotateServerCaContext); + var error = $root.google.cloud.sql.v1.RotateServerCaContext.verify(message.rotateServerCaContext, long + 1); if (error) return "rotateServerCaContext." + error; } @@ -43055,14 +44776,18 @@ * @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 (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") 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; }; @@ -43136,7 +44861,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]]; } @@ -43201,9 +44926,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 +44940,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 +44975,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.rotateServerCertificateContext != null && message.hasOwnProperty("rotateServerCertificateContext")) { - var error = $root.google.cloud.sql.v1.RotateServerCertificateContext.verify(message.rotateServerCertificateContext); + var error = $root.google.cloud.sql.v1.RotateServerCertificateContext.verify(message.rotateServerCertificateContext, long + 1); if (error) return "rotateServerCertificateContext." + error; } @@ -43265,14 +44998,18 @@ * @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 (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") 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; }; @@ -43346,7 +45083,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]]; } @@ -43411,9 +45148,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 +45162,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 +45197,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.rotateEntraIdCertificateContext != null && message.hasOwnProperty("rotateEntraIdCertificateContext")) { - var error = $root.google.cloud.sql.v1.RotateEntraIdCertificateContext.verify(message.rotateEntraIdCertificateContext); + var error = $root.google.cloud.sql.v1.RotateEntraIdCertificateContext.verify(message.rotateEntraIdCertificateContext, long + 1); if (error) return "rotateEntraIdCertificateContext." + error; } @@ -43475,14 +45220,18 @@ * @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 (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") 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; }; @@ -43556,7 +45305,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]]; } @@ -43621,9 +45370,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 +45384,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 +45419,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.truncateLogContext != null && message.hasOwnProperty("truncateLogContext")) { - var error = $root.google.cloud.sql.v1.TruncateLogContext.verify(message.truncateLogContext); + var error = $root.google.cloud.sql.v1.TruncateLogContext.verify(message.truncateLogContext, long + 1); if (error) return "truncateLogContext." + error; } @@ -43685,14 +45442,18 @@ * @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 (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") 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; }; @@ -43766,7 +45527,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]]; } @@ -43831,9 +45592,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 +45606,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 +45641,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.acquireSsrsLeaseContext != null && message.hasOwnProperty("acquireSsrsLeaseContext")) { - var error = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.verify(message.acquireSsrsLeaseContext); + var error = $root.google.cloud.sql.v1.AcquireSsrsLeaseContext.verify(message.acquireSsrsLeaseContext, long + 1); if (error) return "acquireSsrsLeaseContext." + error; } @@ -43895,14 +45664,18 @@ * @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 (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") 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; }; @@ -43978,7 +45751,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]]; } @@ -44063,9 +45836,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 +45858,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,9 +45893,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -44126,7 +45907,7 @@ 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); + var error = $root.google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -44141,9 +45922,13 @@ * @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 (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); @@ -44152,7 +45937,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -44237,7 +46022,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]]; } @@ -44324,9 +46109,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 +46129,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,9 +46170,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -44391,7 +46184,7 @@ 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; } @@ -44400,7 +46193,7 @@ 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 +46209,13 @@ * @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 (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); @@ -44429,7 +46226,7 @@ for (var i = 0; i < object.errors.length; ++i) { if (typeof object.errors[i] !== "object") 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) { @@ -44439,7 +46236,7 @@ for (var i = 0; i < object.warnings.length; ++i) { if (typeof object.warnings[i] !== "object") 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; @@ -44530,7 +46327,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]]; } @@ -44615,9 +46412,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 +46438,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -44668,9 +46469,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -44691,9 +46496,13 @@ * @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 (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); @@ -44796,7 +46605,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]]; } @@ -44890,9 +46699,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 +46721,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,9 +46756,13 @@ * @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 (!$util.isString(message.instance)) @@ -44956,7 +46773,7 @@ if (message.sourceInstanceDeletionTime != null && message.hasOwnProperty("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,9 +46789,13 @@ * @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 (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); @@ -44983,7 +46804,7 @@ if (object.sourceInstanceDeletionTime != null) { if (typeof object.sourceInstanceDeletionTime !== "object") 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; }; @@ -45068,7 +46889,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]]; } @@ -45153,9 +46974,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 +46992,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 +47031,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("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); + 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); + var error = $root.google.protobuf.Timestamp.verify(message.earliestRecoveryTime, long + 1); if (error) return "earliestRecoveryTime." + error; } @@ -45233,21 +47062,25 @@ * @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 (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") 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") 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; }; @@ -45340,7 +47173,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]]; } @@ -45549,9 +47382,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 +47408,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 +47434,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 +47446,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -45640,9 +47477,13 @@ * @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 (!$util.isString(message.kind)) @@ -45654,12 +47495,12 @@ 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); + 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); + var error = $root.google.protobuf.Timestamp.verify(message.pointInTime, long + 1); if (error) return "pointInTime." + error; } @@ -45686,7 +47527,7 @@ if (message.sourceInstanceDeletionTime != null && message.hasOwnProperty("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; } @@ -45712,9 +47553,13 @@ * @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 (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); @@ -45732,12 +47577,12 @@ if (object.binLogCoordinates != null) { if (typeof object.binLogCoordinates !== "object") 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") 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); @@ -45755,7 +47600,7 @@ if (object.sourceInstanceDeletionTime != null) { if (typeof object.sourceInstanceDeletionTime !== "object") 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); @@ -45881,6 +47726,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 +47740,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 +47803,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 +47866,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 @@ -46031,6 +47910,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()).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; }; @@ -46058,9 +47944,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 +47962,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 +47985,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,9 +48031,13 @@ * @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")) { properties._datasource = 1; @@ -46137,7 +48045,7 @@ return "datasource: string expected"; } if (message.pointInTime != null && message.hasOwnProperty("pointInTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.pointInTime); + var error = $root.google.protobuf.Timestamp.verify(message.pointInTime, long + 1); if (error) return "pointInTime." + error; } @@ -46166,6 +48074,23 @@ if (!$util.isString(message.preferredSecondaryZone)) return "preferredSecondaryZone: string expected"; } + if (message.targetInstanceSettings != null && message.hasOwnProperty("targetInstanceSettings")) { + var error = $root.google.cloud.sql.v1.DatabaseInstance.verify(message.targetInstanceSettings, long + 1); + if (error) + return "targetInstanceSettings." + error; + } + if (message.targetInstanceClearSettingsFieldNames != null && message.hasOwnProperty("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 && message.hasOwnProperty("region")) { + properties._region = 1; + if (!$util.isString(message.region)) + return "region: string expected"; + } return null; }; @@ -46177,16 +48102,20 @@ * @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 (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") 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 +48127,20 @@ message.preferredZone = String(object.preferredZone); if (object.preferredSecondaryZone != null) message.preferredSecondaryZone = String(object.preferredSecondaryZone); + if (object.targetInstanceSettings != null) { + if (typeof object.targetInstanceSettings !== "object") + 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; }; @@ -46214,8 +48157,12 @@ if (!options) options = {}; var object = {}; - if (options.defaults) + if (options.arrays || options.defaults) + object.targetInstanceClearSettingsFieldNames = []; + if (options.defaults) { object.pointInTime = null; + object.targetInstanceSettings = null; + } if (message.datasource != null && message.hasOwnProperty("datasource")) { object.datasource = message.datasource; if (options.oneofs) @@ -46248,6 +48195,18 @@ if (options.oneofs) object._preferredSecondaryZone = "preferredSecondaryZone"; } + if (message.targetInstanceSettings != null && message.hasOwnProperty("targetInstanceSettings")) + object.targetInstanceSettings = $root.google.cloud.sql.v1.DatabaseInstance.toObject(message.targetInstanceSettings, options); + 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 && message.hasOwnProperty("region")) { + object.region = message.region; + if (options.oneofs) + object._region = "region"; + } return object; }; @@ -46302,7 +48261,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]]; } @@ -46387,9 +48346,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 +48372,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -46440,9 +48403,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.binLogFileName != null && message.hasOwnProperty("binLogFileName")) if (!$util.isString(message.binLogFileName)) return "binLogFileName: string expected"; @@ -46463,9 +48430,13 @@ * @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 (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); @@ -46624,7 +48595,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]]; } @@ -47263,9 +49234,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 +49260,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 +49268,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 +49282,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 +49316,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 +49363,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 +49375,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 +49387,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 +49407,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 +49431,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 +49466,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 +49482,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,9 +49523,13 @@ * @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 (!$util.isString(message.kind)) @@ -47615,6 +49596,7 @@ case 272: case 408: case 557: + case 684: case 26: case 27: case 28: @@ -47623,10 +49605,13 @@ 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); + var error = $root.google.cloud.sql.v1.Settings.verify(message.settings, long + 1); if (error) return "settings." + error; } @@ -47634,7 +49619,7 @@ 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); + var error = $root.google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica.verify(message.failoverReplica, long + 1); if (error) return "failoverReplica." + error; } @@ -47649,12 +49634,12 @@ return "replicaNames: string[] expected"; } if (message.maxDiskSize != null && message.hasOwnProperty("maxDiskSize")) { - var error = $root.google.protobuf.Int64Value.verify(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); + var error = $root.google.protobuf.Int64Value.verify(message.currentDiskSize, long + 1); if (error) return "currentDiskSize." + error; } @@ -47662,13 +49647,13 @@ 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); + var error = $root.google.cloud.sql.v1.SslCert.verify(message.serverCaCert, long + 1); if (error) return "serverCaCert." + error; } @@ -47693,12 +49678,12 @@ 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); + 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); + var error = $root.google.cloud.sql.v1.ReplicaConfiguration.verify(message.replicaConfiguration, long + 1); if (error) return "replicaConfiguration." + error; } @@ -47727,6 +49712,7 @@ case 3: case 4: case 5: + case 8: break; } } @@ -47746,12 +49732,12 @@ 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); + 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); + var error = $root.google.cloud.sql.v1.DiskEncryptionStatus.verify(message.diskEncryptionStatus, long + 1); if (error) return "diskEncryptionStatus." + error; } @@ -47759,12 +49745,12 @@ 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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzs, long + 1); if (error) return "satisfiesPzs." + error; } @@ -47774,13 +49760,13 @@ if (message.outOfDiskReport != null && message.hasOwnProperty("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); + var error = $root.google.protobuf.Timestamp.verify(message.createTime, long + 1); if (error) return "createTime." + error; } @@ -47798,7 +49784,7 @@ 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; } @@ -47835,27 +49821,27 @@ return "writeEndpoint: string expected"; } if (message.replicationCluster != null && message.hasOwnProperty("replicationCluster")) { - var error = $root.google.cloud.sql.v1.ReplicationCluster.verify(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")) { 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); + var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzi, long + 1); if (error) return "satisfiesPzi." + error; } if (message.switchTransactionLogsToCloudStorageEnabled != null && message.hasOwnProperty("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; } @@ -47863,7 +49849,7 @@ if (message.includeReplicasForMajorVersionUpgrade != null && message.hasOwnProperty("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; } @@ -47885,7 +49871,7 @@ 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; } @@ -47894,7 +49880,7 @@ 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 +49896,13 @@ * @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 (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 +50129,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 +50165,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") 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") 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); @@ -48196,12 +50202,12 @@ if (object.maxDiskSize != null) { if (typeof object.maxDiskSize !== "object") 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") 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)) @@ -48210,13 +50216,13 @@ for (var i = 0; i < object.ipAddresses.length; ++i) { if (typeof object.ipAddresses[i] !== "object") 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") 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: @@ -48255,12 +50261,12 @@ if (object.onPremisesConfiguration != null) { if (typeof object.onPremisesConfiguration !== "object") 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") 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 +50325,10 @@ case 5: message.suspensionReason[i] = 5; break; + case "PROJECT_ABUSE": + case 8: + message.suspensionReason[i] = 8; + break; } } if (object.connectionName != null) @@ -48334,36 +50344,36 @@ if (object.diskEncryptionConfiguration != null) { if (typeof object.diskEncryptionConfiguration !== "object") 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") 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") 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") 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") 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") 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)) @@ -48381,7 +50391,7 @@ for (var i = 0; i < object.upgradableDatabaseVersions.length; ++i) { if (typeof object.upgradableDatabaseVersions[i] !== "object") 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) { @@ -48415,34 +50425,37 @@ if (object.replicationCluster != null) { if (typeof object.replicationCluster !== "object") 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") 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") 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") 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") 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") 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; @@ -48453,7 +50466,7 @@ for (var i = 0; i < object.nodes.length; ++i) { if (typeof object.nodes[i] !== "object") 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) { @@ -48463,7 +50476,7 @@ for (var i = 0; i < object.dnsNames.length; ++i) { if (typeof object.dnsNames[i] !== "object") 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; @@ -48667,8 +50680,11 @@ 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")) { object.nodeCount = message.nodeCount; @@ -48763,7 +50779,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]]; } @@ -48838,9 +50854,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 +50872,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 +50907,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("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); + var error = $root.google.protobuf.BoolValue.verify(message.available, long + 1); if (error) return "available." + error; } @@ -48909,16 +50933,20 @@ * @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 (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") 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; }; @@ -48999,7 +51027,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]]; } @@ -49103,9 +51131,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 +51145,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 +51157,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,12 +51192,16 @@ * @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); + var error = $root.google.protobuf.Timestamp.verify(message.startTime, long + 1); if (error) return "startTime." + error; } @@ -49178,7 +51214,7 @@ if (message.scheduleDeadlineTime != null && message.hasOwnProperty("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,14 +51230,18 @@ * @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 (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") 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); @@ -49210,7 +51250,7 @@ if (object.scheduleDeadlineTime != null) { if (typeof object.scheduleDeadlineTime !== "object") 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; }; @@ -49297,7 +51337,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]]; } @@ -49387,9 +51427,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 +51449,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -49436,9 +51480,13 @@ * @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")) { properties._sqlOutOfDiskState = 1; @@ -49467,9 +51515,13 @@ * @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 (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: @@ -49613,7 +51665,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]]; } @@ -49784,9 +51836,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 +51860,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 +51874,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 +51884,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,9 +51919,13 @@ * @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")) { properties._name = 1; @@ -49881,7 +51941,7 @@ 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; } @@ -49912,7 +51972,7 @@ 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; } @@ -49926,7 +51986,7 @@ 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 +52002,13 @@ * @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 (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); @@ -49957,7 +52021,7 @@ for (var i = 0; i < object.ipAddresses.length; ++i) { if (typeof object.ipAddresses[i] !== "object") 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) @@ -50013,7 +52077,7 @@ for (var i = 0; i < object.dnsNames.length; ++i) { if (typeof object.dnsNames[i] !== "object") 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) @@ -50025,7 +52089,7 @@ for (var i = 0; i < object.pscAutoConnections.length; ++i) { if (typeof object.pscAutoConnections[i] !== "object") 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; @@ -50149,7 +52213,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]]; } @@ -50303,9 +52367,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 +52405,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -50368,9 +52436,13 @@ * @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")) { properties._entitled = 1; @@ -50413,9 +52485,13 @@ * @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 (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); @@ -50529,7 +52605,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]]; } @@ -50614,9 +52690,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 +52716,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -50667,9 +52747,13 @@ * @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"; if (message.psaWriteEndpoint != null && message.hasOwnProperty("psaWriteEndpoint")) if (!$util.isString(message.psaWriteEndpoint)) return "psaWriteEndpoint: string expected"; @@ -50690,9 +52774,13 @@ * @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 (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); @@ -50781,7 +52869,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]]; } @@ -50887,9 +52975,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 +53001,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -50940,9 +53032,13 @@ * @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")) { properties._majorVersion = 1; @@ -50970,9 +53066,13 @@ * @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 (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); @@ -51063,7 +53163,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]]; } @@ -51128,9 +53228,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 +53242,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 +53277,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.reschedule != null && message.hasOwnProperty("reschedule")) { - var error = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.verify(message.reschedule); + var error = $root.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.verify(message.reschedule, long + 1); if (error) return "reschedule." + error; } @@ -51192,14 +53300,18 @@ * @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 (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") 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; }; @@ -51289,7 +53401,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]]; } @@ -51364,9 +53476,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 +53494,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,9 +53529,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.rescheduleType != null && message.hasOwnProperty("rescheduleType")) switch (message.rescheduleType) { default: @@ -51427,7 +53547,7 @@ break; } if (message.scheduleTime != null && message.hasOwnProperty("scheduleTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.scheduleTime); + var error = $root.google.protobuf.Timestamp.verify(message.scheduleTime, long + 1); if (error) return "scheduleTime." + error; } @@ -51442,9 +53562,13 @@ * @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 (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: @@ -51473,7 +53597,7 @@ if (object.scheduleTime != null) { if (typeof object.scheduleTime !== "object") 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; }; @@ -51558,7 +53682,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]]; } @@ -51663,9 +53787,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 +53805,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 +53813,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 +53821,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -51724,14 +53852,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("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); + var error = $root.google.protobuf.BoolValue.verify(message.verifyGtidConsistency, long + 1); if (error) return "verifyGtidConsistency." + error; } @@ -51739,7 +53871,7 @@ 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); + var error = $root.google.cloud.sql.v1.DemoteMasterConfiguration.verify(message.replicaConfiguration, long + 1); if (error) return "replicaConfiguration." + error; } @@ -51757,23 +53889,27 @@ * @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 (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") 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") 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); @@ -51863,7 +53999,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]]; } @@ -51938,9 +54074,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 +54096,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -51987,9 +54127,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -52007,9 +54151,13 @@ * @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 (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); @@ -52092,7 +54240,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]]; } @@ -52167,9 +54315,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 +54337,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -52216,9 +54368,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.settingsVersion != null && message.hasOwnProperty("settingsVersion")) if (!$util.isInteger(message.settingsVersion) && !(message.settingsVersion && $util.isInteger(message.settingsVersion.low) && $util.isInteger(message.settingsVersion.high))) return "settingsVersion: integer|Long expected"; @@ -52236,9 +54392,13 @@ * @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 (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) @@ -52337,7 +54497,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]]; } @@ -52432,9 +54592,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 +54622,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -52489,9 +54653,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -52515,9 +54683,13 @@ * @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 (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); @@ -52624,7 +54796,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]]; } @@ -52699,9 +54871,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 +54893,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -52748,9 +54924,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -52768,9 +54948,13 @@ * @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 (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); @@ -52853,7 +55037,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]]; } @@ -52928,9 +55112,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 +55134,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -52977,9 +55165,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -52997,9 +55189,13 @@ * @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 (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); @@ -53082,7 +55278,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]]; } @@ -53157,9 +55353,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 +55375,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -53206,9 +55406,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -53226,9 +55430,13 @@ * @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 (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); @@ -53311,7 +55519,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]]; } @@ -53386,9 +55594,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 +55616,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -53435,9 +55647,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -53455,9 +55671,13 @@ * @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 (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); @@ -53541,7 +55761,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]]; } @@ -53626,9 +55846,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 +55872,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -53679,9 +55903,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -53764,9 +55992,13 @@ * @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 (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); @@ -54223,7 +56455,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]]; } @@ -54288,9 +56520,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 +56538,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -54333,9 +56569,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.database != null && message.hasOwnProperty("database")) if (!$util.isString(message.database)) return "database: string expected"; @@ -54350,9 +56590,13 @@ * @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 (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); @@ -54439,7 +56683,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]]; } @@ -54605,9 +56849,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 +56895,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 +56909,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -54692,9 +56940,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.hostPort != null && message.hasOwnProperty("hostPort")) if (!$util.isString(message.hostPort)) return "hostPort: string expected"; @@ -54720,7 +56972,7 @@ 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); + var error = $root.google.cloud.sql.v1.InstanceReference.verify(message.sourceInstance, long + 1); if (error) return "sourceInstance." + error; } @@ -54728,7 +56980,7 @@ 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; } @@ -54754,9 +57006,13 @@ * @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 (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); @@ -54777,7 +57033,7 @@ if (object.sourceInstance != null) { if (typeof object.sourceInstance !== "object") 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)) @@ -54786,7 +57042,7 @@ for (var i = 0; i < object.selectedObjects.length; ++i) { if (typeof object.selectedObjects[i] !== "object") 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) { @@ -54941,7 +57197,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]]; } @@ -55036,9 +57292,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 +57310,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 +57353,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("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); + 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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.cascadableReplica, long + 1); if (error) return "cascadableReplica." + error; } @@ -55125,26 +57389,30 @@ * @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 (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") 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") 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") 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; }; @@ -55230,7 +57498,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]]; } @@ -55315,9 +57583,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 +57605,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,9 +57640,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -55378,7 +57654,7 @@ 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); + var error = $root.google.cloud.sql.v1.ExecuteSqlPayload.verify(message.body, long + 1); if (error) return "body." + error; } @@ -55393,9 +57669,13 @@ * @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 (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); @@ -55404,7 +57684,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -55491,7 +57771,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]]; } @@ -55630,9 +57910,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 +57952,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -55699,9 +57983,13 @@ * @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 (!$util.isString(message.user)) @@ -55743,9 +58031,13 @@ * @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 (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); @@ -55907,7 +58199,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]]; } @@ -56004,9 +58296,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 +58312,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,20 +58361,24 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.messages != null && message.hasOwnProperty("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); + var error = $root.google.cloud.sql.v1.Metadata.verify(message.metadata, long + 1); if (error) return "metadata." + error; } @@ -56086,13 +58386,13 @@ 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); + var error = $root.google.rpc.Status.verify(message.status, long + 1); if (error) return "status." + error; } @@ -56107,9 +58407,13 @@ * @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 (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)) @@ -56118,13 +58422,13 @@ for (var i = 0; i < object.messages.length; ++i) { if (typeof object.messages[i] !== "object") 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") 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)) @@ -56133,13 +58437,13 @@ for (var i = 0; i < object.results.length; ++i) { if (typeof object.results[i] !== "object") 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") 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; }; @@ -56229,7 +58533,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]]; } @@ -56319,9 +58623,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 +58645,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -56368,9 +58676,13 @@ * @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")) { properties._message = 1; @@ -56393,9 +58705,13 @@ * @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 (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); @@ -56488,7 +58804,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]]; } @@ -56595,9 +58911,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 +58927,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 +58945,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,14 +58980,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.columns != null && message.hasOwnProperty("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; } @@ -56676,7 +59000,7 @@ 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; } @@ -56688,7 +59012,7 @@ 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); + var error = $root.google.rpc.Status.verify(message.status, long + 1); if (error) return "status." + error; } @@ -56703,9 +59027,13 @@ * @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 (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)) @@ -56714,7 +59042,7 @@ for (var i = 0; i < object.columns.length; ++i) { if (typeof object.columns[i] !== "object") 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) { @@ -56724,7 +59052,7 @@ for (var i = 0; i < object.rows.length; ++i) { if (typeof object.rows[i] !== "object") 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) @@ -56734,7 +59062,7 @@ if (object.status != null) { if (typeof object.status !== "object") 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; }; @@ -56830,7 +59158,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]]; } @@ -56905,9 +59233,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 +59255,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -56954,9 +59286,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -56974,9 +59310,13 @@ * @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 (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); @@ -57059,7 +59399,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]]; } @@ -57125,9 +59465,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 +59481,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 +59516,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.values != null && message.hasOwnProperty("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,9 +59543,13 @@ * @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 (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)) @@ -57206,7 +59558,7 @@ for (var i = 0; i < object.values.length; ++i) { if (typeof object.values[i] !== "object") 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; @@ -57285,7 +59637,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]]; } @@ -57360,9 +59712,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 +59734,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -57409,9 +59765,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.value != null && message.hasOwnProperty("value")) if (!$util.isString(message.value)) return "value: string expected"; @@ -57429,9 +59789,13 @@ * @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 (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); @@ -57513,7 +59877,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]]; } @@ -57578,9 +59942,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 +59956,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 +59991,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.sqlStatementExecutionTime != null && message.hasOwnProperty("sqlStatementExecutionTime")) { - var error = $root.google.protobuf.Duration.verify(message.sqlStatementExecutionTime); + var error = $root.google.protobuf.Duration.verify(message.sqlStatementExecutionTime, long + 1); if (error) return "sqlStatementExecutionTime." + error; } @@ -57642,14 +60014,18 @@ * @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 (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") 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; }; @@ -57725,7 +60101,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]]; } @@ -57810,9 +60186,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 +60208,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,9 +60243,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -57873,7 +60257,7 @@ 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); + var error = $root.google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -57888,9 +60272,13 @@ * @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 (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); @@ -57899,7 +60287,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -57980,7 +60368,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]]; } @@ -58045,9 +60433,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 +60451,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -58090,9 +60482,13 @@ * @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"; if (message.operationId != null && message.hasOwnProperty("operationId")) if (!$util.isString(message.operationId)) return "operationId: string expected"; @@ -58107,9 +60503,13 @@ * @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 (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); @@ -58186,7 +60586,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]]; } @@ -58261,9 +60661,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 +60683,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -58310,9 +60714,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -58330,9 +60738,13 @@ * @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 (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); @@ -58414,7 +60826,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]]; } @@ -58479,9 +60891,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 +60909,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -58524,9 +60940,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.operationId != null && message.hasOwnProperty("operationId")) if (!$util.isString(message.operationId)) return "operationId: string expected"; @@ -58541,9 +60961,13 @@ * @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 (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); @@ -58620,7 +61044,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]]; } @@ -58695,9 +61119,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 +61137,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 +61172,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.parent != null && message.hasOwnProperty("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); + var error = $root.google.cloud.sql.v1.PointInTimeRestoreContext.verify(message.context, long + 1); if (error) return "context." + error; } @@ -58766,16 +61198,20 @@ * @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 (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") 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; }; @@ -58862,6 +61298,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 +61307,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; })(); @@ -58996,7 +61434,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]]; } @@ -59081,9 +61519,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 +61541,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,9 +61576,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -59144,7 +61590,7 @@ 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); + var error = $root.google.protobuf.Timestamp.verify(message.readTime, long + 1); if (error) return "readTime." + error; } @@ -59159,9 +61605,13 @@ * @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 (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); @@ -59170,7 +61620,7 @@ if (object.readTime != null) { if (typeof object.readTime !== "object") 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; }; @@ -59269,7 +61719,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]]; } @@ -59481,9 +61931,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 +61949,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 +61991,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 +62001,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 +62016,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -59593,15 +62047,19 @@ * @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 (!$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); + var error = $root.google.cloud.sql.v1.SslCert.verify(message.serverCaCert, long + 1); if (error) return "serverCaCert." + error; } @@ -59609,7 +62067,7 @@ 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; } @@ -59664,6 +62122,7 @@ case 272: case 408: case 557: + case 684: case 26: case 27: case 28: @@ -59672,6 +62131,9 @@ case 200: case 201: case 202: + case 549: + case 550: + case 551: break; } if (message.backendType != null && message.hasOwnProperty("backendType")) @@ -59711,7 +62173,7 @@ 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; } @@ -59725,7 +62187,7 @@ 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; } @@ -59753,16 +62215,20 @@ * @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 (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") 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)) @@ -59771,7 +62237,7 @@ for (var i = 0; i < object.ipAddresses.length; ++i) { if (typeof object.ipAddresses[i] !== "object") 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 +62421,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 +62457,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: @@ -60054,7 +62536,7 @@ for (var i = 0; i < object.dnsNames.length; ++i) { if (typeof object.dnsNames[i] !== "object") 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) @@ -60066,7 +62548,7 @@ for (var i = 0; i < object.nodes.length; ++i) { if (typeof object.nodes[i] !== "object") 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) { @@ -60241,7 +62723,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]]; } @@ -60353,9 +62835,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 +62855,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 +62865,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,9 +62900,13 @@ * @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")) { properties._name = 1; @@ -60427,7 +62917,7 @@ 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; } @@ -60441,7 +62931,7 @@ 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 +62947,13 @@ * @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 (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); @@ -60470,7 +62964,7 @@ for (var i = 0; i < object.ipAddresses.length; ++i) { if (typeof object.ipAddresses[i] !== "object") 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) @@ -60482,7 +62976,7 @@ for (var i = 0; i < object.dnsNames.length; ++i) { if (typeof object.dnsNames[i] !== "object") 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; @@ -60599,7 +63093,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]]; } @@ -60714,9 +63208,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 +63238,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,9 +63277,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -60795,12 +63297,12 @@ 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); + 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); + var error = $root.google.protobuf.Duration.verify(message.validDuration, long + 1); if (error) return "validDuration." + error; } @@ -60815,9 +63317,13 @@ * @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 (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); @@ -60830,12 +63336,12 @@ if (object.readTime != null) { if (typeof object.readTime !== "object") 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") 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; }; @@ -60925,7 +63431,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]]; } @@ -60990,9 +63496,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 +63510,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 +63545,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.ephemeralCert != null && message.hasOwnProperty("ephemeralCert")) { - var error = $root.google.cloud.sql.v1.SslCert.verify(message.ephemeralCert); + var error = $root.google.cloud.sql.v1.SslCert.verify(message.ephemeralCert, long + 1); if (error) return "ephemeralCert." + error; } @@ -61054,14 +63568,18 @@ * @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 (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") 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; }; @@ -61370,7 +63888,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]]; } @@ -61455,9 +63973,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 +63999,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -61508,9 +64030,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.database != null && message.hasOwnProperty("database")) if (!$util.isString(message.database)) return "database: string expected"; @@ -61531,9 +64057,13 @@ * @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 (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); @@ -61622,7 +64152,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]]; } @@ -61707,9 +64237,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 +64263,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -61760,9 +64294,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.database != null && message.hasOwnProperty("database")) if (!$util.isString(message.database)) return "database: string expected"; @@ -61783,9 +64321,13 @@ * @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 (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); @@ -61874,7 +64416,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]]; } @@ -61959,9 +64501,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 +64523,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,9 +64558,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -62022,7 +64572,7 @@ 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); + var error = $root.google.cloud.sql.v1.Database.verify(message.body, long + 1); if (error) return "body." + error; } @@ -62037,9 +64587,13 @@ * @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 (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); @@ -62048,7 +64602,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -62130,7 +64684,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]]; } @@ -62205,9 +64759,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 +64781,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -62254,9 +64812,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -62274,9 +64836,13 @@ * @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 (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); @@ -62361,7 +64927,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]]; } @@ -62456,9 +65022,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 +65048,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,9 +65083,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.database != null && message.hasOwnProperty("database")) if (!$util.isString(message.database)) return "database: string expected"; @@ -62526,7 +65100,7 @@ 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); + var error = $root.google.cloud.sql.v1.Database.verify(message.body, long + 1); if (error) return "body." + error; } @@ -62541,9 +65115,13 @@ * @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 (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); @@ -62554,7 +65132,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -62640,7 +65218,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]]; } @@ -62716,9 +65294,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 +65314,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,9 +65349,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -62777,7 +65363,7 @@ 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 +65379,13 @@ * @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 (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); @@ -62806,7 +65396,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") 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; @@ -63027,7 +65617,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]]; } @@ -63111,9 +65701,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 +65723,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -63160,9 +65754,13 @@ * @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 (!$util.isString(message.databaseVersion)) @@ -63189,9 +65787,13 @@ * @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 (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); @@ -63294,7 +65896,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]]; } @@ -63370,9 +65972,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 +65992,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,9 +66027,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -63431,7 +66041,7 @@ 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 +66057,13 @@ * @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 (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); @@ -63460,7 +66074,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") 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; @@ -63557,7 +66171,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]]; } @@ -63765,9 +66379,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 +66418,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 +66434,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 +66457,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,9 +66492,13 @@ * @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 (!$util.isString(message.name)) @@ -63945,6 +66567,7 @@ case 272: case 408: case 557: + case 684: case 26: case 27: case 28: @@ -63953,6 +66576,9 @@ case 200: case 201: case 202: + case 549: + case 550: + case 551: break; } } @@ -63964,17 +66590,17 @@ return "allowedStringValues: string[] expected"; } if (message.minValue != null && message.hasOwnProperty("minValue")) { - var error = $root.google.protobuf.Int64Value.verify(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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.requiresRestart, long + 1); if (error) return "requiresRestart." + error; } @@ -63982,7 +66608,7 @@ 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); + var error = $root.google.protobuf.BoolValue.verify(message.inBeta, long + 1); if (error) return "inBeta." + error; } @@ -64012,7 +66638,7 @@ 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 +66654,13 @@ * @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 (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 +66887,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 +66923,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) { @@ -64301,24 +66947,24 @@ if (object.minValue != null) { if (typeof object.minValue !== "object") 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") 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") 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") 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)) @@ -64359,7 +67005,7 @@ if (object.recommendedIntValue != null) { if (typeof object.recommendedIntValue !== "object") 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; }; @@ -64735,7 +67381,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]]; } @@ -64810,9 +67456,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 +67478,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -64859,9 +67509,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.operation != null && message.hasOwnProperty("operation")) if (!$util.isString(message.operation)) return "operation: string expected"; @@ -64879,9 +67533,13 @@ * @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 (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); @@ -64966,7 +67624,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]]; } @@ -65061,9 +67719,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 +67749,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -65118,9 +67780,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -65144,9 +67810,13 @@ * @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 (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); @@ -65241,7 +67911,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]]; } @@ -65327,9 +67997,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 +68017,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 +68025,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -65382,9 +68056,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -65392,7 +68070,7 @@ 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; } @@ -65411,9 +68089,13 @@ * @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 (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); @@ -65424,7 +68106,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") 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) @@ -65513,7 +68195,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]]; } @@ -65588,9 +68270,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 +68292,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -65637,9 +68323,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.operation != null && message.hasOwnProperty("operation")) if (!$util.isString(message.operation)) return "operation: string expected"; @@ -65657,9 +68347,13 @@ * @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 (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); @@ -65945,7 +68639,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]]; } @@ -66030,9 +68724,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 +68750,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -66083,9 +68781,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -66106,9 +68808,13 @@ * @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 (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); @@ -66197,7 +68903,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]]; } @@ -66282,9 +68988,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 +69014,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -66335,9 +69045,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -66358,9 +69072,13 @@ * @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 (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); @@ -66449,7 +69167,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]]; } @@ -66534,9 +69252,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 +69274,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,9 +69309,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -66597,7 +69323,7 @@ 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); + var error = $root.google.cloud.sql.v1.SslCertsInsertRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -66612,9 +69338,13 @@ * @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 (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); @@ -66623,7 +69353,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -66705,7 +69435,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]]; } @@ -66780,9 +69510,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 +69532,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -66829,9 +69563,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -66849,9 +69587,13 @@ * @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 (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); @@ -66933,7 +69675,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]]; } @@ -66998,9 +69740,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 +69758,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -67043,9 +69789,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.commonName != null && message.hasOwnProperty("commonName")) if (!$util.isString(message.commonName)) return "commonName: string expected"; @@ -67060,9 +69810,13 @@ * @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 (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); @@ -67141,7 +69895,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]]; } @@ -67236,9 +69990,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 +70008,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 +70051,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("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); + 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); + 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); + var error = $root.google.cloud.sql.v1.SslCertDetail.verify(message.clientCert, long + 1); if (error) return "clientCert." + error; } @@ -67325,26 +70087,30 @@ * @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 (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") 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") 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") 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; }; @@ -67430,7 +70196,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]]; } @@ -67506,9 +70272,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 +70292,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,9 +70327,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -67567,7 +70341,7 @@ 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 +70357,13 @@ * @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 (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); @@ -67596,7 +70374,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") 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; @@ -67746,7 +70524,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]]; } @@ -67811,9 +70589,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 +70607,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -67856,9 +70638,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.project != null && message.hasOwnProperty("project")) if (!$util.isString(message.project)) return "project: string expected"; @@ -67873,9 +70659,13 @@ * @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 (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); @@ -67953,7 +70743,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]]; } @@ -68029,9 +70819,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 +70839,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,9 +70874,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -68090,7 +70888,7 @@ 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 +70904,13 @@ * @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 (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); @@ -68119,7 +70921,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") 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; @@ -68206,7 +71008,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]]; } @@ -68312,9 +71114,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 +71150,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -68375,9 +71181,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.tier != null && message.hasOwnProperty("tier")) if (!$util.isString(message.tier)) return "tier: string expected"; @@ -68408,9 +71218,13 @@ * @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 (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); @@ -68747,7 +71561,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]]; } @@ -68842,9 +71656,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 +71686,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -68899,9 +71717,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.host != null && message.hasOwnProperty("host")) if (!$util.isString(message.host)) return "host: string expected"; @@ -68925,9 +71747,13 @@ * @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 (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); @@ -69022,7 +71848,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]]; } @@ -69117,9 +71943,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 +71973,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -69174,9 +72004,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -69200,9 +72034,13 @@ * @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 (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); @@ -69296,7 +72134,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]]; } @@ -69381,9 +72219,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 +72241,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,9 +72276,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -69444,7 +72290,7 @@ 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); + var error = $root.google.cloud.sql.v1.User.verify(message.body, long + 1); if (error) return "body." + error; } @@ -69459,9 +72305,13 @@ * @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 (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); @@ -69470,7 +72320,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -69552,7 +72402,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]]; } @@ -69627,9 +72477,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 +72499,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -69676,9 +72530,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -69696,9 +72554,13 @@ * @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 (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); @@ -69787,7 +72649,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]]; } @@ -69922,9 +72784,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 +72824,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,9 +72859,13 @@ * @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 (!$util.isString(message.host)) @@ -70022,7 +72892,7 @@ return "revokeExistingRoles: boolean expected"; } if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1.User.verify(message.body); + var error = $root.google.cloud.sql.v1.User.verify(message.body, long + 1); if (error) return "body." + error; } @@ -70037,9 +72907,13 @@ * @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 (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); @@ -70061,7 +72935,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -70164,7 +73038,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]]; } @@ -70269,9 +73143,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 +73161,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 +73169,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 +73177,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -70330,14 +73208,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.allowedFailedAttempts != null && message.hasOwnProperty("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); + var error = $root.google.protobuf.Duration.verify(message.passwordExpirationDuration, long + 1); if (error) return "passwordExpirationDuration." + error; } @@ -70345,7 +73227,7 @@ 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); + var error = $root.google.cloud.sql.v1.PasswordStatus.verify(message.status, long + 1); if (error) return "status." + error; } @@ -70363,23 +73245,27 @@ * @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 (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") 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") 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); @@ -70469,7 +73355,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]]; } @@ -70544,9 +73430,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 +73448,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 +73483,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.locked != null && message.hasOwnProperty("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); + var error = $root.google.protobuf.Timestamp.verify(message.passwordExpirationTime, long + 1); if (error) return "passwordExpirationTime." + error; } @@ -70615,16 +73509,20 @@ * @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 (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") 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; }; @@ -70716,7 +73614,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]]; } @@ -70938,9 +73836,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 +73882,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 +73890,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 +73908,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -71037,9 +73939,13 @@ * @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 (!$util.isString(message.kind)) @@ -71078,7 +73984,7 @@ if (message.sqlserverUserDetails != null && message.hasOwnProperty("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; } @@ -71087,7 +73993,7 @@ 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); + var error = $root.google.cloud.sql.v1.UserPasswordValidationPolicy.verify(message.passwordPolicy, long + 1); if (error) return "passwordPolicy." + error; } @@ -71132,9 +74038,13 @@ * @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 (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); @@ -71189,14 +74099,14 @@ if (object.sqlserverUserDetails != null) { if (typeof object.sqlserverUserDetails !== "object") 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") 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: @@ -71431,7 +74341,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]]; } @@ -71507,9 +74417,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 +74441,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -71558,9 +74472,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.disabled != null && message.hasOwnProperty("disabled")) if (typeof message.disabled !== "boolean") return "disabled: boolean expected"; @@ -71582,9 +74500,13 @@ * @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 (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); @@ -71677,7 +74599,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]]; } @@ -71763,9 +74685,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 +74705,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 +74713,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -71818,9 +74744,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -71828,7 +74758,7 @@ 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; } @@ -71847,9 +74777,13 @@ * @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 (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); @@ -71860,7 +74794,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") 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) @@ -74384,7 +77318,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]]; } @@ -74459,9 +77393,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 +77411,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 +77446,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.parent != null && message.hasOwnProperty("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); + var error = $root.google.cloud.sql.v1beta4.Backup.verify(message.backup, long + 1); if (error) return "backup." + error; } @@ -74530,16 +77472,20 @@ * @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 (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") 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; }; @@ -74617,7 +77563,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]]; } @@ -74682,9 +77628,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 +77646,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -74727,9 +77677,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -74744,9 +77698,13 @@ * @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 (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); @@ -74825,7 +77783,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]]; } @@ -74920,9 +77878,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 +77908,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -74977,9 +77939,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.parent != null && message.hasOwnProperty("parent")) if (!$util.isString(message.parent)) return "parent: string expected"; @@ -75003,9 +77969,13 @@ * @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 (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); @@ -75101,7 +78071,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]]; } @@ -75188,9 +78158,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 +78174,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 +78184,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,14 +78219,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.backups != null && message.hasOwnProperty("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; } @@ -75264,7 +78242,7 @@ 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,9 +78258,13 @@ * @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 (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)) @@ -75291,7 +78273,7 @@ for (var i = 0; i < object.backups.length; ++i) { if (typeof object.backups[i] !== "object") 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) @@ -75303,7 +78285,7 @@ for (var i = 0; i < object.warnings.length; ++i) { if (typeof object.warnings[i] !== "object") 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; @@ -75393,7 +78375,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]]; } @@ -75468,9 +78450,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 +78464,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 +78503,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.backup != null && message.hasOwnProperty("backup")) { - var error = $root.google.cloud.sql.v1beta4.Backup.verify(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); + var error = $root.google.protobuf.FieldMask.verify(message.updateMask, long + 1); if (error) return "updateMask." + error; } @@ -75541,19 +78531,23 @@ * @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 (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") 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") 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; }; @@ -75631,7 +78625,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]]; } @@ -75696,9 +78690,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 +78708,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -75741,9 +78739,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -75758,9 +78760,13 @@ * @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 (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); @@ -75838,7 +78844,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]]; } @@ -75923,9 +78929,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 +78955,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -75976,9 +78986,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.id != null && message.hasOwnProperty("id")) if (!$util.isInteger(message.id) && !(message.id && $util.isInteger(message.id.low) && $util.isInteger(message.id.high))) return "id: integer|Long expected"; @@ -75999,9 +79013,13 @@ * @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 (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) @@ -76104,7 +79122,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]]; } @@ -76189,9 +79207,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 +79233,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -76242,9 +79264,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.id != null && message.hasOwnProperty("id")) if (!$util.isInteger(message.id) && !(message.id && $util.isInteger(message.id.low) && $util.isInteger(message.id.high))) return "id: integer|Long expected"; @@ -76265,9 +79291,13 @@ * @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 (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) @@ -76370,7 +79400,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]]; } @@ -76455,9 +79485,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 +79507,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,9 +79542,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -76518,7 +79556,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.BackupRun.verify(message.body, long + 1); if (error) return "body." + error; } @@ -76533,9 +79571,13 @@ * @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 (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); @@ -76544,7 +79586,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -76628,7 +79670,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]]; } @@ -76723,9 +79765,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 +79795,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -76780,9 +79826,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -76806,9 +79856,13 @@ * @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 (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); @@ -76902,7 +79956,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]]; } @@ -76987,9 +80041,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 +80067,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -77040,9 +80098,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.database != null && message.hasOwnProperty("database")) if (!$util.isString(message.database)) return "database: string expected"; @@ -77063,9 +80125,13 @@ * @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 (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); @@ -77154,7 +80220,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]]; } @@ -77239,9 +80305,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 +80331,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -77292,9 +80362,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.database != null && message.hasOwnProperty("database")) if (!$util.isString(message.database)) return "database: string expected"; @@ -77315,9 +80389,13 @@ * @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 (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); @@ -77406,7 +80484,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]]; } @@ -77491,9 +80569,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 +80591,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,9 +80626,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -77554,7 +80640,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.Database.verify(message.body, long + 1); if (error) return "body." + error; } @@ -77569,9 +80655,13 @@ * @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 (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); @@ -77580,7 +80670,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -77662,7 +80752,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]]; } @@ -77737,9 +80827,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 +80849,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -77786,9 +80880,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -77806,9 +80904,13 @@ * @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 (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); @@ -77893,7 +80995,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]]; } @@ -77988,9 +81090,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 +81116,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,9 +81151,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.database != null && message.hasOwnProperty("database")) if (!$util.isString(message.database)) return "database: string expected"; @@ -78058,7 +81168,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.Database.verify(message.body, long + 1); if (error) return "body." + error; } @@ -78073,9 +81183,13 @@ * @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 (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); @@ -78086,7 +81200,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -78171,7 +81285,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]]; } @@ -78255,9 +81369,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 +81391,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -78304,9 +81422,13 @@ * @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 (!$util.isString(message.databaseVersion)) @@ -78333,9 +81455,13 @@ * @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 (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); @@ -78437,7 +81563,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]]; } @@ -78512,9 +81638,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 +81660,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -78561,9 +81691,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -78581,9 +81715,13 @@ * @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 (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); @@ -78666,7 +81804,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]]; } @@ -78741,9 +81879,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 +81901,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -78790,9 +81932,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -78810,9 +81956,13 @@ * @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 (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); @@ -78895,7 +82045,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]]; } @@ -78970,9 +82120,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 +82142,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -79019,9 +82173,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -79039,9 +82197,13 @@ * @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 (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); @@ -79125,7 +82287,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]]; } @@ -79210,9 +82372,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 +82394,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,9 +82429,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -79273,7 +82443,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.InstancesCloneRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -79288,9 +82458,13 @@ * @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 (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); @@ -79299,7 +82473,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -79385,7 +82559,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]]; } @@ -79520,9 +82694,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 +82724,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 +82732,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -79585,9 +82763,13 @@ * @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 (!$util.isString(message.instance)) @@ -79610,7 +82792,7 @@ 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; } @@ -79629,9 +82811,13 @@ * @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 (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); @@ -79651,7 +82837,7 @@ if (object.finalBackupExpiryTime != null) { if (typeof object.finalBackupExpiryTime !== "object") 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); @@ -79754,7 +82940,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]]; } @@ -79839,9 +83025,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 +83047,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,9 +83082,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -79902,7 +83096,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.InstancesDemoteMasterRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -79917,9 +83111,13 @@ * @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 (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); @@ -79928,7 +83126,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -80011,7 +83209,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]]; } @@ -80096,9 +83294,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 +83316,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,9 +83351,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -80159,7 +83365,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.InstancesDemoteRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -80174,9 +83380,13 @@ * @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 (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); @@ -80185,7 +83395,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -80268,7 +83478,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]]; } @@ -80353,9 +83563,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 +83585,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,9 +83620,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -80416,7 +83634,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.InstancesExportRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -80431,9 +83649,13 @@ * @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 (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); @@ -80442,7 +83664,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -80525,7 +83747,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]]; } @@ -80610,9 +83832,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 +83854,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,9 +83889,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -80673,7 +83903,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.InstancesFailoverRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -80688,9 +83918,13 @@ * @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 (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); @@ -80699,7 +83933,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -80781,7 +84015,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]]; } @@ -80856,9 +84090,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 +84112,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -80905,9 +84143,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -80925,9 +84167,13 @@ * @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 (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); @@ -81011,7 +84257,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]]; } @@ -81096,9 +84342,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 +84364,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,9 +84399,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -81159,7 +84413,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.InstancesImportRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -81174,9 +84428,13 @@ * @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 (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); @@ -81185,7 +84443,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -81267,7 +84525,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]]; } @@ -81342,9 +84600,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 +84618,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 +84653,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.project != null && message.hasOwnProperty("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); + var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.body, long + 1); if (error) return "body." + error; } @@ -81413,16 +84679,20 @@ * @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 (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") 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; }; @@ -81503,7 +84773,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]]; } @@ -81598,9 +84868,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 +84898,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -81655,9 +84929,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.filter != null && message.hasOwnProperty("filter")) if (!$util.isString(message.filter)) return "filter: string expected"; @@ -81681,9 +84959,13 @@ * @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 (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); @@ -81776,7 +85058,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]]; } @@ -81851,9 +85133,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 +85155,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -81900,9 +85186,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -81920,9 +85210,13 @@ * @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 (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); @@ -82005,7 +85299,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]]; } @@ -82080,9 +85374,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 +85396,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -82129,9 +85427,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -82149,9 +85451,13 @@ * @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 (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); @@ -82234,7 +85540,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]]; } @@ -82309,9 +85615,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 +85637,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -82358,9 +85668,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -82378,9 +85692,13 @@ * @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 (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); @@ -82464,7 +85782,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]]; } @@ -82549,9 +85867,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(); @@ -82567,11 +85889,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; } } @@ -82602,9 +85924,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -82612,7 +85938,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.body, long + 1); if (error) return "body." + error; } @@ -82627,9 +85953,13 @@ * @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 (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); @@ -82638,7 +85968,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -82721,7 +86051,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]]; } @@ -82806,9 +86136,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 +86162,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -82859,9 +86193,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -82882,9 +86220,13 @@ * @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 (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); @@ -82973,7 +86315,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]]; } @@ -83058,9 +86400,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 +86422,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,9 +86457,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -83121,7 +86471,7 @@ 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); + var error = $root.google.protobuf.Duration.verify(message.dbTimeout, long + 1); if (error) return "dbTimeout." + error; } @@ -83136,9 +86486,13 @@ * @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 (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); @@ -83147,7 +86501,7 @@ if (object.dbTimeout != null) { if (typeof object.dbTimeout !== "object") 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; }; @@ -83230,7 +86584,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]]; } @@ -83315,9 +86669,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 +86695,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -83368,9 +86726,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -83397,9 +86759,13 @@ * @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 (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); @@ -83521,7 +86887,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]]; } @@ -83596,9 +86962,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 +86984,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -83645,9 +87015,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -83665,9 +87039,13 @@ * @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 (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); @@ -83751,7 +87129,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]]; } @@ -83836,9 +87214,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 +87236,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,9 +87271,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -83899,7 +87285,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.InstancesRestoreBackupRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -83914,9 +87300,13 @@ * @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 (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); @@ -83925,7 +87315,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -84008,7 +87398,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]]; } @@ -84093,9 +87483,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 +87505,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,9 +87540,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -84156,7 +87554,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.InstancesRotateServerCaRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -84171,9 +87569,13 @@ * @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 (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); @@ -84182,7 +87584,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -84265,7 +87667,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]]; } @@ -84350,9 +87752,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 +87774,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,9 +87809,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -84413,7 +87823,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.InstancesRotateServerCertificateRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -84428,9 +87838,13 @@ * @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 (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); @@ -84439,7 +87853,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -84522,7 +87936,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]]; } @@ -84607,9 +88021,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 +88043,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,9 +88078,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -84670,7 +88092,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.InstancesRotateEntraIdCertificateRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -84685,9 +88107,13 @@ * @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 (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); @@ -84696,7 +88122,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -84778,7 +88204,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]]; } @@ -84853,9 +88279,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 +88301,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -84902,9 +88332,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -84922,9 +88356,13 @@ * @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 (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); @@ -85007,7 +88445,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]]; } @@ -85082,9 +88520,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 +88542,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -85131,9 +88573,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -85151,9 +88597,13 @@ * @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 (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); @@ -85237,7 +88687,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]]; } @@ -85322,9 +88772,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 +88794,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,9 +88829,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -85385,7 +88843,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.InstancesTruncateLogRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -85400,9 +88858,13 @@ * @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 (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); @@ -85411,7 +88873,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -85494,7 +88956,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]]; } @@ -85579,9 +89041,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 +89063,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,9 +89098,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -85642,7 +89112,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.body, long + 1); if (error) return "body." + error; } @@ -85657,9 +89127,13 @@ * @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 (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); @@ -85668,7 +89142,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -85751,7 +89225,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]]; } @@ -85836,9 +89310,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 +89332,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,9 +89367,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -85899,7 +89381,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.InstancesReencryptRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -85914,9 +89396,13 @@ * @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 (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); @@ -85925,7 +89411,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -86006,7 +89492,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]]; } @@ -86080,9 +89566,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 +89580,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 +89615,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")) { 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 +89642,18 @@ * @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 (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") 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; }; @@ -86231,7 +89729,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]]; } @@ -86321,9 +89819,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 +89841,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -86370,9 +89872,13 @@ * @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")) { properties._backupLimit = 1; @@ -86401,9 +89907,13 @@ * @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 (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; @@ -86523,7 +90033,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]]; } @@ -86608,9 +90118,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 +90140,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,9 +90175,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -86671,7 +90189,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.verify(message.body, long + 1); if (error) return "body." + error; } @@ -86686,9 +90204,13 @@ * @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 (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); @@ -86697,7 +90219,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -86780,7 +90302,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]]; } @@ -86865,9 +90387,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 +90409,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,9 +90444,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -86928,7 +90458,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.PerformDiskShrinkContext.verify(message.body, long + 1); if (error) return "body." + error; } @@ -86943,9 +90473,13 @@ * @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 (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); @@ -86954,7 +90488,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -87053,7 +90587,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]]; } @@ -87118,9 +90652,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 +90670,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -87163,9 +90701,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.database != null && message.hasOwnProperty("database")) if (!$util.isString(message.database)) return "database: string expected"; @@ -87180,9 +90722,13 @@ * @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 (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); @@ -87267,7 +90813,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]]; } @@ -87427,9 +90973,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 +91007,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 +91021,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,9 +91056,13 @@ * @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 (!$util.isString(message.instance)) @@ -87534,7 +91088,7 @@ if (message.mysqlSyncConfig != null && message.hasOwnProperty("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; } @@ -87562,7 +91116,7 @@ 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 +91132,13 @@ * @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 (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); @@ -87613,7 +91171,7 @@ if (object.mysqlSyncConfig != null) { if (typeof object.mysqlSyncConfig !== "object") 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: @@ -87666,7 +91224,7 @@ for (var i = 0; i < object.selectedObjects.length; ++i) { if (typeof object.selectedObjects[i] !== "object") 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; @@ -87811,7 +91369,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]]; } @@ -87960,9 +91518,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 +91548,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 +91564,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -88033,9 +91595,13 @@ * @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 (!$util.isString(message.instance)) @@ -88058,7 +91624,7 @@ if (message.mysqlSyncConfig != null && message.hasOwnProperty("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; } @@ -88096,9 +91662,13 @@ * @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 (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); @@ -88129,7 +91699,7 @@ if (object.mysqlSyncConfig != null) { if (typeof object.mysqlSyncConfig !== "object") 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: @@ -88274,7 +91844,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]]; } @@ -88349,9 +91919,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 +91941,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -88398,9 +91972,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -88418,9 +91996,13 @@ * @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 (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); @@ -88503,7 +92085,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]]; } @@ -88578,9 +92160,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 +92182,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -88627,9 +92213,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.operation != null && message.hasOwnProperty("operation")) if (!$util.isString(message.operation)) return "operation: string expected"; @@ -88647,9 +92237,13 @@ * @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 (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); @@ -88734,7 +92328,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]]; } @@ -88829,9 +92423,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 +92453,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -88886,9 +92484,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -88912,9 +92514,13 @@ * @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 (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); @@ -89007,7 +92613,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]]; } @@ -89082,9 +92688,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 +92710,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -89131,9 +92741,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.operation != null && message.hasOwnProperty("operation")) if (!$util.isString(message.operation)) return "operation: string expected"; @@ -89151,9 +92765,13 @@ * @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 (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); @@ -89237,7 +92855,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]]; } @@ -89322,9 +92940,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 +92962,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,9 +92997,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -89385,7 +93011,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.SslCertsCreateEphemeralRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -89400,9 +93026,13 @@ * @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 (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); @@ -89411,7 +93041,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -89494,7 +93124,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]]; } @@ -89579,9 +93209,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 +93235,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -89632,9 +93266,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -89655,9 +93293,13 @@ * @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 (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); @@ -89746,7 +93388,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]]; } @@ -89831,9 +93473,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 +93499,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -89884,9 +93530,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -89907,9 +93557,13 @@ * @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 (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); @@ -89998,7 +93652,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]]; } @@ -90083,9 +93737,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 +93759,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,9 +93794,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -90146,7 +93808,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.SslCertsInsertRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -90161,9 +93823,13 @@ * @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 (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); @@ -90172,7 +93838,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -90254,7 +93920,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]]; } @@ -90329,9 +93995,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 +94017,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -90378,9 +94048,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -90398,9 +94072,13 @@ * @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 (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); @@ -90483,7 +94161,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]]; } @@ -90558,9 +94236,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 +94258,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -90607,9 +94289,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -90627,9 +94313,13 @@ * @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 (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); @@ -90713,7 +94403,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]]; } @@ -90807,9 +94497,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 +94519,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,9 +94554,13 @@ * @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 (!$util.isString(message.instance)) @@ -90873,7 +94571,7 @@ if (message.sourceInstanceDeletionTime != null && message.hasOwnProperty("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,9 +94587,13 @@ * @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 (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); @@ -90900,7 +94602,7 @@ if (object.sourceInstanceDeletionTime != null) { if (typeof object.sourceInstanceDeletionTime !== "object") 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; }; @@ -90985,7 +94687,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]]; } @@ -91070,9 +94772,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 +94790,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 +94829,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("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); + 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); + var error = $root.google.protobuf.Timestamp.verify(message.earliestRecoveryTime, long + 1); if (error) return "earliestRecoveryTime." + error; } @@ -91150,21 +94860,25 @@ * @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 (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") 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") 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; }; @@ -91247,7 +94961,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]]; } @@ -91332,9 +95046,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 +95068,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,9 +95103,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -91395,7 +95117,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.ExecuteSqlPayload.verify(message.body, long + 1); if (error) return "body." + error; } @@ -91410,9 +95132,13 @@ * @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 (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); @@ -91421,7 +95147,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -91503,7 +95229,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]]; } @@ -91578,9 +95304,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 +95326,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -91627,9 +95357,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -91647,9 +95381,13 @@ * @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 (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); @@ -91731,7 +95469,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]]; } @@ -91796,9 +95534,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 +95552,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -91841,9 +95583,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.operationId != null && message.hasOwnProperty("operationId")) if (!$util.isString(message.operationId)) return "operationId: string expected"; @@ -91858,9 +95604,13 @@ * @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 (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); @@ -91942,7 +95692,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]]; } @@ -92081,9 +95831,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 +95873,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -92150,9 +95904,13 @@ * @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 (!$util.isString(message.user)) @@ -92194,9 +95952,13 @@ * @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 (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); @@ -92358,7 +96120,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]]; } @@ -92455,9 +96217,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 +96233,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,20 +96282,24 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.messages != null && message.hasOwnProperty("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); + var error = $root.google.cloud.sql.v1beta4.Metadata.verify(message.metadata, long + 1); if (error) return "metadata." + error; } @@ -92537,13 +96307,13 @@ 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); + var error = $root.google.rpc.Status.verify(message.status, long + 1); if (error) return "status." + error; } @@ -92558,9 +96328,13 @@ * @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 (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)) @@ -92569,13 +96343,13 @@ for (var i = 0; i < object.messages.length; ++i) { if (typeof object.messages[i] !== "object") 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") 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)) @@ -92584,13 +96358,13 @@ for (var i = 0; i < object.results.length; ++i) { if (typeof object.results[i] !== "object") 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") 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; }; @@ -92680,7 +96454,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]]; } @@ -92770,9 +96544,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 +96566,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -92819,9 +96597,13 @@ * @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")) { properties._message = 1; @@ -92844,9 +96626,13 @@ * @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 (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); @@ -92939,7 +96725,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]]; } @@ -93046,9 +96832,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 +96848,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 +96866,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,14 +96901,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.columns != null && message.hasOwnProperty("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; } @@ -93127,7 +96921,7 @@ 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; } @@ -93139,7 +96933,7 @@ 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); + var error = $root.google.rpc.Status.verify(message.status, long + 1); if (error) return "status." + error; } @@ -93154,9 +96948,13 @@ * @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 (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)) @@ -93165,7 +96963,7 @@ for (var i = 0; i < object.columns.length; ++i) { if (typeof object.columns[i] !== "object") 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) { @@ -93175,7 +96973,7 @@ for (var i = 0; i < object.rows.length; ++i) { if (typeof object.rows[i] !== "object") 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) @@ -93185,7 +96983,7 @@ if (object.status != null) { if (typeof object.status !== "object") 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; }; @@ -93281,7 +97079,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]]; } @@ -93356,9 +97154,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 +97176,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -93405,9 +97207,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -93425,9 +97231,13 @@ * @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 (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); @@ -93510,7 +97320,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]]; } @@ -93576,9 +97386,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 +97402,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 +97437,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.values != null && message.hasOwnProperty("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,9 +97464,13 @@ * @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 (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)) @@ -93657,7 +97479,7 @@ for (var i = 0; i < object.values.length; ++i) { if (typeof object.values[i] !== "object") 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; @@ -93736,7 +97558,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]]; } @@ -93811,9 +97633,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 +97655,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -93860,9 +97686,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.value != null && message.hasOwnProperty("value")) if (!$util.isString(message.value)) return "value: string expected"; @@ -93880,9 +97710,13 @@ * @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 (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); @@ -93964,7 +97798,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]]; } @@ -94029,9 +97863,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 +97877,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 +97912,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.sqlStatementExecutionTime != null && message.hasOwnProperty("sqlStatementExecutionTime")) { - var error = $root.google.protobuf.Duration.verify(message.sqlStatementExecutionTime); + var error = $root.google.protobuf.Duration.verify(message.sqlStatementExecutionTime, long + 1); if (error) return "sqlStatementExecutionTime." + error; } @@ -94093,14 +97935,18 @@ * @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 (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") 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; }; @@ -94176,7 +98022,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]]; } @@ -94261,9 +98107,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 +98129,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,9 +98164,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -94324,7 +98178,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.InstancesAcquireSsrsLeaseRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -94339,9 +98193,13 @@ * @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 (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); @@ -94350,7 +98208,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -94433,7 +98291,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]]; } @@ -94518,9 +98376,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 +98398,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,9 +98433,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -94581,7 +98447,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.InstancesPreCheckMajorVersionUpgradeRequest.verify(message.body, long + 1); if (error) return "body." + error; } @@ -94596,9 +98462,13 @@ * @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 (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); @@ -94607,7 +98477,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -94688,7 +98558,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]]; } @@ -94762,9 +98632,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 +98650,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -94807,9 +98681,13 @@ * @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")) { properties._operationId = 1; @@ -94827,9 +98705,13 @@ * @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 (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); @@ -94907,7 +98789,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]]; } @@ -94982,9 +98864,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 +98882,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 +98917,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.parent != null && message.hasOwnProperty("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); + var error = $root.google.cloud.sql.v1beta4.PointInTimeRestoreContext.verify(message.context, long + 1); if (error) return "context." + error; } @@ -95053,16 +98943,20 @@ * @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 (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") 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; }; @@ -95143,7 +99037,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]]; } @@ -95238,9 +99132,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 +99150,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 +99162,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -95295,14 +99193,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.value != null && message.hasOwnProperty("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); + var error = $root.google.protobuf.Timestamp.verify(message.expirationTime, long + 1); if (error) return "expirationTime." + error; } @@ -95323,16 +99225,20 @@ * @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 (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") 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); @@ -95422,7 +99328,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]]; } @@ -95507,9 +99413,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 +99439,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -95560,9 +99470,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.code != null && message.hasOwnProperty("code")) switch (message.code) { default: @@ -95591,9 +99505,13 @@ * @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 (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: @@ -95727,7 +99645,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]]; } @@ -95802,9 +99720,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 +99738,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,9 +99773,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.retentionUnit != null && message.hasOwnProperty("retentionUnit")) switch (message.retentionUnit) { default: @@ -95863,7 +99789,7 @@ break; } if (message.retainedBackups != null && message.hasOwnProperty("retainedBackups")) { - var error = $root.google.protobuf.Int32Value.verify(message.retainedBackups); + var error = $root.google.protobuf.Int32Value.verify(message.retainedBackups, long + 1); if (error) return "retainedBackups." + error; } @@ -95878,9 +99804,13 @@ * @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 (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: @@ -95901,7 +99831,7 @@ if (object.retainedBackups != null) { if (typeof object.retainedBackups !== "object") 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; }; @@ -96003,7 +99933,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]]; } @@ -96183,9 +100113,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 +100131,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 +100139,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 +100151,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 +100171,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -96268,15 +100202,19 @@ * @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 (!$util.isString(message.startTime)) return "startTime: string expected"; if (message.enabled != null && message.hasOwnProperty("enabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.enabled); + var error = $root.google.protobuf.BoolValue.verify(message.enabled, long + 1); if (error) return "enabled." + error; } @@ -96284,12 +100222,12 @@ 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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.replicationLogArchivingEnabled, long + 1); if (error) return "replicationLogArchivingEnabled." + error; } @@ -96297,17 +100235,17 @@ 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); + 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); + 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); + var error = $root.google.cloud.sql.v1beta4.BackupRetentionSettings.verify(message.backupRetentionSettings, long + 1); if (error) return "backupRetentionSettings." + error; } @@ -96347,45 +100285,49 @@ * @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 (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") 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") 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") 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") 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") 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") 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: @@ -96602,7 +100544,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]]; } @@ -96856,9 +100798,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 +100820,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 +100828,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 +100848,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 +100868,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 +100888,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -96973,9 +100919,13 @@ * @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 (!$util.isString(message.kind)) @@ -96997,7 +100947,7 @@ break; } if (message.enqueuedTime != null && message.hasOwnProperty("enqueuedTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.enqueuedTime); + var error = $root.google.protobuf.Timestamp.verify(message.enqueuedTime, long + 1); if (error) return "enqueuedTime." + error; } @@ -97005,17 +100955,17 @@ 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); + 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); + 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); + var error = $root.google.cloud.sql.v1beta4.OperationError.verify(message.error, long + 1); if (error) return "error." + error; } @@ -97032,7 +100982,7 @@ 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); + var error = $root.google.protobuf.Timestamp.verify(message.windowStartTime, long + 1); if (error) return "windowStartTime." + error; } @@ -97103,12 +101053,12 @@ break; } if (message.diskEncryptionConfiguration != null && message.hasOwnProperty("diskEncryptionConfiguration")) { - var error = $root.google.cloud.sql.v1beta4.DiskEncryptionConfiguration.verify(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); + var error = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.verify(message.diskEncryptionStatus, long + 1); if (error) return "diskEncryptionStatus." + error; } @@ -97140,9 +101090,13 @@ * @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 (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); @@ -97197,7 +101151,7 @@ if (object.enqueuedTime != null) { if (typeof object.enqueuedTime !== "object") 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) @@ -97211,17 +101165,17 @@ if (object.startTime != null) { if (typeof object.startTime !== "object") 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") 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") 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: @@ -97248,7 +101202,7 @@ if (object.windowStartTime != null) { if (typeof object.windowStartTime !== "object") 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); @@ -97471,12 +101425,12 @@ if (object.diskEncryptionConfiguration != null) { if (typeof object.diskEncryptionConfiguration !== "object") 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") 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: @@ -97670,7 +101624,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]]; } @@ -97975,9 +101929,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 +101971,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 +101979,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 +102003,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 +102015,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 +102027,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,9 +102066,13 @@ * @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 (!$util.isString(message.name)) @@ -98141,7 +102103,7 @@ 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); + var error = $root.google.type.Interval.verify(message.backupInterval, long + 1); if (error) return "backupInterval." + error; } @@ -98159,7 +102121,7 @@ break; } if (message.error != null && message.hasOwnProperty("error")) { - var error = $root.google.cloud.sql.v1beta4.OperationError.verify(message.error); + var error = $root.google.cloud.sql.v1beta4.OperationError.verify(message.error, long + 1); if (error) return "error." + error; } @@ -98191,7 +102153,7 @@ 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; } @@ -98259,12 +102221,12 @@ return "maxChargeableBytes: integer|Long expected"; } if (message.instanceDeletionTime != null && message.hasOwnProperty("instanceDeletionTime")) { - var error = $root.google.protobuf.Timestamp.verify(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); + var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.instanceSettings, long + 1); if (error) return "instanceSettings." + error; } @@ -98272,12 +102234,12 @@ 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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzi, long + 1); if (error) return "satisfiesPzi." + error; } @@ -98292,9 +102254,13 @@ * @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 (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); @@ -98335,7 +102301,7 @@ if (object.backupInterval != null) { if (typeof object.backupInterval !== "object") 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: @@ -98376,7 +102342,7 @@ if (object.error != null) { if (typeof object.error !== "object") 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); @@ -98416,7 +102382,7 @@ if (object.expiryTime != null) { if (typeof object.expiryTime !== "object") 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: @@ -98642,24 +102608,24 @@ if (object.instanceDeletionTime != null) { if (typeof object.instanceDeletionTime !== "object") 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") 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") 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") 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; }; @@ -98857,7 +102823,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]]; } @@ -98943,9 +102909,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 +102929,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 +102937,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -98998,9 +102968,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -99008,7 +102982,7 @@ 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; } @@ -99027,9 +103001,13 @@ * @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 (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); @@ -99040,7 +103018,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") 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) @@ -99130,7 +103108,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]]; } @@ -99215,9 +103193,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 +103219,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -99268,9 +103250,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.binLogFileName != null && message.hasOwnProperty("binLogFileName")) if (!$util.isString(message.binLogFileName)) return "binLogFileName: string expected"; @@ -99291,9 +103277,13 @@ * @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 (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); @@ -99396,7 +103386,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]]; } @@ -99481,9 +103471,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 +103497,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -99534,9 +103528,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.backupId != null && message.hasOwnProperty("backupId")) if (!$util.isInteger(message.backupId) && !(message.backupId && $util.isInteger(message.backupId.low) && $util.isInteger(message.backupId.high))) return "backupId: integer|Long expected"; @@ -99557,9 +103555,13 @@ * @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 (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) @@ -99672,7 +103674,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]]; } @@ -99881,9 +103883,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 +103909,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 +103935,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 +103947,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -99972,9 +103978,13 @@ * @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 (!$util.isString(message.kind)) @@ -99986,12 +103996,12 @@ 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); + 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); + var error = $root.google.protobuf.Timestamp.verify(message.pointInTime, long + 1); if (error) return "pointInTime." + error; } @@ -100018,7 +104028,7 @@ if (message.sourceInstanceDeletionTime != null && message.hasOwnProperty("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; } @@ -100044,9 +104054,13 @@ * @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 (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); @@ -100064,12 +104078,12 @@ if (object.binLogCoordinates != null) { if (typeof object.binLogCoordinates !== "object") 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") 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); @@ -100087,7 +104101,7 @@ if (object.sourceInstanceDeletionTime != null) { if (typeof object.sourceInstanceDeletionTime !== "object") 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); @@ -100228,7 +104242,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]]; } @@ -100387,9 +104401,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 +104447,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,9 +104482,13 @@ * @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 (!$util.isString(message.kind)) @@ -100495,7 +104517,7 @@ if (message.sqlserverDatabaseDetails != null && message.hasOwnProperty("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 +104533,13 @@ * @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 (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); @@ -100534,7 +104560,7 @@ if (object.sqlserverDatabaseDetails != null) { if (typeof object.sqlserverDatabaseDetails !== "object") 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; }; @@ -100636,7 +104662,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]]; } @@ -100711,9 +104737,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 +104759,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -100760,9 +104790,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.compatibilityLevel != null && message.hasOwnProperty("compatibilityLevel")) if (!$util.isInteger(message.compatibilityLevel)) return "compatibilityLevel: integer expected"; @@ -100780,9 +104814,13 @@ * @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 (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; @@ -100865,7 +104903,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]]; } @@ -100940,9 +104978,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 +105000,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -100989,9 +105031,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -101009,9 +105055,13 @@ * @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 (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); @@ -101094,7 +105144,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]]; } @@ -101169,9 +105219,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 +105241,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -101218,9 +105272,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -101238,9 +105296,13 @@ * @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 (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); @@ -101324,7 +105386,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]]; } @@ -101409,9 +105471,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 +105497,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -101462,9 +105528,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -101485,9 +105555,13 @@ * @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 (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); @@ -101632,7 +105706,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]]; } @@ -102277,9 +106351,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 +106377,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 +106385,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 +106399,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 +106433,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 +106480,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 +106492,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 +106504,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 +106524,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 +106548,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 +106583,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 +106599,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,9 +106640,13 @@ * @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 (!$util.isString(message.kind)) @@ -102640,7 +106724,7 @@ break; } if (message.settings != null && message.hasOwnProperty("settings")) { - var error = $root.google.cloud.sql.v1beta4.Settings.verify(message.settings); + var error = $root.google.cloud.sql.v1beta4.Settings.verify(message.settings, long + 1); if (error) return "settings." + error; } @@ -102648,7 +106732,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.SqlFailoverReplica.verify(message.failoverReplica, long + 1); if (error) return "failoverReplica." + error; } @@ -102663,12 +106747,12 @@ return "replicaNames: string[] expected"; } if (message.maxDiskSize != null && message.hasOwnProperty("maxDiskSize")) { - var error = $root.google.protobuf.Int64Value.verify(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); + var error = $root.google.protobuf.Int64Value.verify(message.currentDiskSize, long + 1); if (error) return "currentDiskSize." + error; } @@ -102676,13 +106760,13 @@ 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); + var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.serverCaCert, long + 1); if (error) return "serverCaCert." + error; } @@ -102707,12 +106791,12 @@ 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); + 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); + var error = $root.google.cloud.sql.v1beta4.ReplicaConfiguration.verify(message.replicaConfiguration, long + 1); if (error) return "replicaConfiguration." + error; } @@ -102760,12 +106844,12 @@ 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); + 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); + var error = $root.google.cloud.sql.v1beta4.DiskEncryptionStatus.verify(message.diskEncryptionStatus, long + 1); if (error) return "diskEncryptionStatus." + error; } @@ -102773,12 +106857,12 @@ 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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzs, long + 1); if (error) return "satisfiesPzs." + error; } @@ -102788,13 +106872,13 @@ if (message.outOfDiskReport != null && message.hasOwnProperty("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); + var error = $root.google.protobuf.Timestamp.verify(message.createTime, long + 1); if (error) return "createTime." + error; } @@ -102812,7 +106896,7 @@ 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; } @@ -102851,7 +106935,7 @@ if (message.replicationCluster != null && message.hasOwnProperty("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; } @@ -102859,20 +106943,20 @@ if (message.geminiConfig != null && message.hasOwnProperty("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); + var error = $root.google.protobuf.BoolValue.verify(message.satisfiesPzi, long + 1); if (error) return "satisfiesPzi." + error; } if (message.switchTransactionLogsToCloudStorageEnabled != null && message.hasOwnProperty("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; } @@ -102880,7 +106964,7 @@ if (message.includeReplicasForMajorVersionUpgrade != null && message.hasOwnProperty("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; } @@ -102902,7 +106986,7 @@ 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; } @@ -102911,7 +106995,7 @@ 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 +107011,13 @@ * @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 (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); @@ -103192,14 +107280,14 @@ if (object.settings != null) { if (typeof object.settings !== "object") 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") 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); @@ -103213,12 +107301,12 @@ if (object.maxDiskSize != null) { if (typeof object.maxDiskSize !== "object") 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") 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)) @@ -103227,13 +107315,13 @@ for (var i = 0; i < object.ipAddresses.length; ++i) { if (typeof object.ipAddresses[i] !== "object") 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") 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: @@ -103272,12 +107360,12 @@ if (object.onPremisesConfiguration != null) { if (typeof object.onPremisesConfiguration !== "object") 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") 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: @@ -103351,36 +107439,36 @@ if (object.diskEncryptionConfiguration != null) { if (typeof object.diskEncryptionConfiguration !== "object") 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") 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") 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") 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") 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") 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)) @@ -103398,7 +107486,7 @@ for (var i = 0; i < object.upgradableDatabaseVersions.length; ++i) { if (typeof object.upgradableDatabaseVersions[i] !== "object") 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) { @@ -103432,34 +107520,37 @@ if (object.replicationCluster != null) { if (typeof object.replicationCluster !== "object") 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") 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") 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") 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") 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") 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; @@ -103470,7 +107561,7 @@ for (var i = 0; i < object.nodes.length; ++i) { if (typeof object.nodes[i] !== "object") 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) { @@ -103480,7 +107571,7 @@ for (var i = 0; i < object.dnsNames.length; ++i) { if (typeof object.dnsNames[i] !== "object") 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; @@ -103686,8 +107777,11 @@ 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")) { object.nodeCount = message.nodeCount; @@ -103782,7 +107876,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]]; } @@ -103857,9 +107951,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 +107969,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 +108004,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("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); + var error = $root.google.protobuf.BoolValue.verify(message.available, long + 1); if (error) return "available." + error; } @@ -103928,16 +108030,20 @@ * @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 (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") 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; }; @@ -104018,7 +108124,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]]; } @@ -104122,9 +108228,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 +108242,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 +108254,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,12 +108289,16 @@ * @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); + var error = $root.google.protobuf.Timestamp.verify(message.startTime, long + 1); if (error) return "startTime." + error; } @@ -104197,7 +108311,7 @@ if (message.scheduleDeadlineTime != null && message.hasOwnProperty("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,14 +108327,18 @@ * @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 (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") 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); @@ -104229,7 +108347,7 @@ if (object.scheduleDeadlineTime != null) { if (typeof object.scheduleDeadlineTime !== "object") 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; }; @@ -104316,7 +108434,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]]; } @@ -104406,9 +108524,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 +108546,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -104455,9 +108577,13 @@ * @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")) { properties._sqlOutOfDiskState = 1; @@ -104486,9 +108612,13 @@ * @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 (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: @@ -104632,7 +108762,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]]; } @@ -104803,9 +108933,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 +108957,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 +108971,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 +108981,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,9 +109016,13 @@ * @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")) { properties._name = 1; @@ -104900,7 +109038,7 @@ 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; } @@ -104931,7 +109069,7 @@ 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; } @@ -104945,7 +109083,7 @@ 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 +109099,13 @@ * @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 (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); @@ -104976,7 +109118,7 @@ for (var i = 0; i < object.ipAddresses.length; ++i) { if (typeof object.ipAddresses[i] !== "object") 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) @@ -105032,7 +109174,7 @@ for (var i = 0; i < object.dnsNames.length; ++i) { if (typeof object.dnsNames[i] !== "object") 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) @@ -105044,7 +109186,7 @@ for (var i = 0; i < object.pscAutoConnections.length; ++i) { if (typeof object.pscAutoConnections[i] !== "object") 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; @@ -105166,7 +109308,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]]; } @@ -105261,9 +109403,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 +109433,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -105318,9 +109464,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -105363,9 +109513,13 @@ * @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 (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); @@ -105570,7 +109724,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]]; } @@ -105724,9 +109878,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 +109916,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -105789,9 +109947,13 @@ * @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")) { properties._entitled = 1; @@ -105834,9 +109996,13 @@ * @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 (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); @@ -105950,7 +110116,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]]; } @@ -106056,9 +110222,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 +110248,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -106109,9 +110279,13 @@ * @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")) { properties._psaWriteEndpoint = 1; @@ -106139,9 +110313,13 @@ * @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 (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); @@ -106234,7 +110412,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]]; } @@ -106340,9 +110518,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 +110544,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -106393,9 +110575,13 @@ * @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")) { properties._majorVersion = 1; @@ -106423,9 +110609,13 @@ * @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 (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); @@ -106518,7 +110708,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]]; } @@ -106594,9 +110784,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 +110804,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,9 +110839,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -106655,7 +110853,7 @@ 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 +110869,13 @@ * @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 (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); @@ -106684,7 +110886,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") 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; @@ -106767,7 +110969,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]]; } @@ -106842,9 +111044,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 +111062,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 +111097,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("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); + var error = $root.google.cloud.sql.v1beta4.DemoteMasterMySqlReplicaConfiguration.verify(message.mysqlReplicaConfiguration, long + 1); if (error) return "mysqlReplicaConfiguration." + error; } @@ -106913,16 +111123,20 @@ * @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 (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") 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; }; @@ -107004,7 +111218,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]]; } @@ -107109,9 +111323,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 +111341,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 +111349,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 +111357,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -107170,14 +111388,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("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); + var error = $root.google.protobuf.BoolValue.verify(message.verifyGtidConsistency, long + 1); if (error) return "verifyGtidConsistency." + error; } @@ -107185,7 +111407,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.DemoteMasterConfiguration.verify(message.replicaConfiguration, long + 1); if (error) return "replicaConfiguration." + error; } @@ -107203,23 +111425,27 @@ * @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 (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") 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") 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); @@ -107313,7 +111539,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]]; } @@ -107428,9 +111654,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 +111692,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -107493,9 +111723,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -107525,9 +111759,13 @@ * @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 (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); @@ -107630,7 +111868,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]]; } @@ -107705,9 +111943,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 +111965,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -107754,9 +111996,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -107774,9 +112020,13 @@ * @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 (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); @@ -107887,7 +112137,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]]; } @@ -108033,9 +112283,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 +112311,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 +112323,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,9 +112366,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.uri != null && message.hasOwnProperty("uri")) if (!$util.isString(message.uri)) return "uri: string expected"; @@ -108129,12 +112387,12 @@ 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); + 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); + var error = $root.google.cloud.sql.v1beta4.ExportContext.SqlCsvExportOptions.verify(message.csvExportOptions, long + 1); if (error) return "csvExportOptions." + error; } @@ -108150,17 +112408,17 @@ break; } if (message.offload != null && message.hasOwnProperty("offload")) { - var error = $root.google.protobuf.BoolValue.verify(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); + 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); + var error = $root.google.cloud.sql.v1beta4.ExportContext.SqlTdeExportOptions.verify(message.tdeExportOptions, long + 1); if (error) return "tdeExportOptions." + error; } @@ -108175,9 +112433,13 @@ * @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 (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); @@ -108193,12 +112455,12 @@ if (object.sqlExportOptions != null) { if (typeof object.sqlExportOptions !== "object") 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") 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: @@ -108231,17 +112493,17 @@ if (object.offload != null) { if (typeof object.offload !== "object") 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") 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") 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; }; @@ -108345,7 +112607,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]]; } @@ -108450,9 +112712,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 +112746,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -108511,9 +112777,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.selectQuery != null && message.hasOwnProperty("selectQuery")) if (!$util.isString(message.selectQuery)) return "selectQuery: string expected"; @@ -108540,9 +112810,13 @@ * @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 (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); @@ -108645,7 +112919,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]]; } @@ -108761,9 +113035,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 +113055,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,9 +113106,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.tables != null && message.hasOwnProperty("tables")) { if (!Array.isArray(message.tables)) return "tables: array expected"; @@ -108839,27 +113121,27 @@ return "tables: string[] expected"; } if (message.schemaOnly != null && message.hasOwnProperty("schemaOnly")) { - var error = $root.google.protobuf.BoolValue.verify(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); + 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); + 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); + 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); + var error = $root.google.cloud.sql.v1beta4.ExportContext.SqlExportOptions.PostgresExportOptions.verify(message.postgresExportOptions, long + 1); if (error) return "postgresExportOptions." + error; } @@ -108874,9 +113156,13 @@ * @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 (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)) @@ -108888,27 +113174,27 @@ if (object.schemaOnly != null) { if (typeof object.schemaOnly !== "object") 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") 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") 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") 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") 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; }; @@ -108999,7 +113285,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]]; } @@ -109064,9 +113350,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 +113364,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 +113399,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.masterData != null && message.hasOwnProperty("masterData")) { - var error = $root.google.protobuf.Int32Value.verify(message.masterData); + var error = $root.google.protobuf.Int32Value.verify(message.masterData, long + 1); if (error) return "masterData." + error; } @@ -109128,14 +113422,18 @@ * @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 (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") 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; }; @@ -109210,7 +113508,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]]; } @@ -109285,9 +113583,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 +113597,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 +113636,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.clean != null && message.hasOwnProperty("clean")) { - var error = $root.google.protobuf.BoolValue.verify(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); + var error = $root.google.protobuf.BoolValue.verify(message.ifExists, long + 1); if (error) return "ifExists." + error; } @@ -109358,19 +113664,23 @@ * @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 (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") 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") 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; }; @@ -109457,7 +113767,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]]; } @@ -109582,9 +113892,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 +113906,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 +113918,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,16 +113965,20 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.striped != null && message.hasOwnProperty("striped")) { - var error = $root.google.protobuf.BoolValue.verify(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); + var error = $root.google.protobuf.Int32Value.verify(message.stripeCount, long + 1); if (error) return "stripeCount." + error; } @@ -109675,22 +113993,22 @@ break; } if (message.copyOnly != null && message.hasOwnProperty("copyOnly")) { - var error = $root.google.protobuf.BoolValue.verify(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); + 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); + 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); + var error = $root.google.protobuf.Timestamp.verify(message.exportLogEndTime, long + 1); if (error) return "exportLogEndTime." + error; } @@ -109705,19 +114023,23 @@ * @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 (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") 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") 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: @@ -109746,22 +114068,22 @@ if (object.copyOnly != null) { if (typeof object.copyOnly !== "object") 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") 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") 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") 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; }; @@ -109857,7 +114179,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]]; } @@ -109952,9 +114274,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 +114304,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -110009,9 +114335,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.certificatePath != null && message.hasOwnProperty("certificatePath")) if (!$util.isString(message.certificatePath)) return "certificatePath: string expected"; @@ -110035,9 +114365,13 @@ * @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 (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); @@ -110133,7 +114467,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]]; } @@ -110208,9 +114542,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 +114564,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -110257,9 +114595,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.settingsVersion != null && message.hasOwnProperty("settingsVersion")) if (!$util.isInteger(message.settingsVersion) && !(message.settingsVersion && $util.isInteger(message.settingsVersion.low) && $util.isInteger(message.settingsVersion.high))) return "settingsVersion: integer|Long expected"; @@ -110277,9 +114619,13 @@ * @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 (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) @@ -110390,7 +114736,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]]; } @@ -110598,9 +114944,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 +114983,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 +114999,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 +115022,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,9 +115057,13 @@ * @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 (!$util.isString(message.name)) @@ -110797,17 +115151,17 @@ return "allowedStringValues: string[] expected"; } if (message.minValue != null && message.hasOwnProperty("minValue")) { - var error = $root.google.protobuf.Int64Value.verify(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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.requiresRestart, long + 1); if (error) return "requiresRestart." + error; } @@ -110815,7 +115169,7 @@ 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); + var error = $root.google.protobuf.BoolValue.verify(message.inBeta, long + 1); if (error) return "inBeta." + error; } @@ -110845,7 +115199,7 @@ 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 +115215,13 @@ * @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 (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); @@ -111134,24 +115492,24 @@ if (object.minValue != null) { if (typeof object.minValue !== "object") 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") 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") 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") 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)) @@ -111192,7 +115550,7 @@ if (object.recommendedIntValue != null) { if (typeof object.recommendedIntValue !== "object") 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; }; @@ -111323,7 +115681,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]]; } @@ -111399,9 +115757,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 +115777,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,9 +115812,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -111460,7 +115826,7 @@ 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 +115842,13 @@ * @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 (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); @@ -111489,7 +115859,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") 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; @@ -111579,7 +115949,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]]; } @@ -111724,9 +116094,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 +116124,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 +116132,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,9 +116175,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.uri != null && message.hasOwnProperty("uri")) if (!$util.isString(message.uri)) return "uri: string expected"; @@ -111825,7 +116203,7 @@ break; } if (message.csvImportOptions != null && message.hasOwnProperty("csvImportOptions")) { - var error = $root.google.cloud.sql.v1beta4.ImportContext.SqlCsvImportOptions.verify(message.csvImportOptions); + var error = $root.google.cloud.sql.v1beta4.ImportContext.SqlCsvImportOptions.verify(message.csvImportOptions, long + 1); if (error) return "csvImportOptions." + error; } @@ -111833,17 +116211,17 @@ 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); + 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); + 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); + var error = $root.google.cloud.sql.v1beta4.ImportContext.SqlTdeImportOptions.verify(message.tdeImportOptions, long + 1); if (error) return "tdeImportOptions." + error; } @@ -111858,9 +116236,13 @@ * @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 (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); @@ -111899,24 +116281,24 @@ if (object.csvImportOptions != null) { if (typeof object.csvImportOptions !== "object") 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") 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") 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") 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; }; @@ -112014,7 +116396,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]]; } @@ -112099,9 +116481,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 +116495,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 +116538,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.threads != null && message.hasOwnProperty("threads")) { - var error = $root.google.protobuf.Int32Value.verify(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); + 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); + var error = $root.google.cloud.sql.v1beta4.ImportContext.SqlImportOptions.PostgresImportOptions.verify(message.postgresImportOptions, long + 1); if (error) return "postgresImportOptions." + error; } @@ -112181,24 +116571,28 @@ * @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 (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") 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") 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") 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; }; @@ -112277,7 +116671,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]]; } @@ -112352,9 +116746,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 +116760,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 +116799,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.clean != null && message.hasOwnProperty("clean")) { - var error = $root.google.protobuf.BoolValue.verify(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); + var error = $root.google.protobuf.BoolValue.verify(message.ifExists, long + 1); if (error) return "ifExists." + error; } @@ -112425,19 +116827,23 @@ * @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 (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") 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") 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; }; @@ -112524,7 +116930,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]]; } @@ -112640,9 +117046,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 +117086,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -112707,9 +117117,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.table != null && message.hasOwnProperty("table")) if (!$util.isString(message.table)) return "table: string expected"; @@ -112743,9 +117157,13 @@ * @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 (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); @@ -112862,7 +117280,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]]; } @@ -112987,9 +117405,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 +117419,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 +117439,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 +117447,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -113056,26 +117478,30 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.encryptionOptions != null && message.hasOwnProperty("encryptionOptions")) { - var error = $root.google.cloud.sql.v1beta4.ImportContext.SqlBakImportOptions.EncryptionOptions.verify(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); + 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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.recoveryOnly, long + 1); if (error) return "recoveryOnly." + error; } @@ -113090,7 +117516,7 @@ break; } if (message.stopAt != null && message.hasOwnProperty("stopAt")) { - var error = $root.google.protobuf.Timestamp.verify(message.stopAt); + var error = $root.google.protobuf.Timestamp.verify(message.stopAt, long + 1); if (error) return "stopAt." + error; } @@ -113108,29 +117534,33 @@ * @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 (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") 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") 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") 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") 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: @@ -113159,7 +117589,7 @@ if (object.stopAt != null) { if (typeof object.stopAt !== "object") 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); @@ -113254,7 +117684,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]]; } @@ -113349,9 +117779,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 +117805,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,9 +117840,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.certPath != null && message.hasOwnProperty("certPath")) if (!$util.isString(message.certPath)) return "certPath: string expected"; @@ -113419,7 +117857,7 @@ 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); + var error = $root.google.protobuf.BoolValue.verify(message.keepEncrypted, long + 1); if (error) return "keepEncrypted." + error; } @@ -113434,9 +117872,13 @@ * @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 (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); @@ -113447,7 +117889,7 @@ if (object.keepEncrypted != null) { if (typeof object.keepEncrypted !== "object") 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; }; @@ -113537,7 +117979,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]]; } @@ -113632,9 +118074,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 +118104,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -113689,9 +118135,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.certificatePath != null && message.hasOwnProperty("certificatePath")) if (!$util.isString(message.certificatePath)) return "certificatePath: string expected"; @@ -113715,9 +118165,13 @@ * @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 (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); @@ -113830,7 +118284,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]]; } @@ -113895,9 +118349,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 +118363,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 +118398,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.cloneContext != null && message.hasOwnProperty("cloneContext")) { - var error = $root.google.cloud.sql.v1beta4.CloneContext.verify(message.cloneContext); + var error = $root.google.cloud.sql.v1beta4.CloneContext.verify(message.cloneContext, long + 1); if (error) return "cloneContext." + error; } @@ -113959,14 +118421,18 @@ * @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 (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") 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; }; @@ -114040,7 +118506,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]]; } @@ -114105,9 +118571,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 +118585,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 +118620,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.demoteMasterContext != null && message.hasOwnProperty("demoteMasterContext")) { - var error = $root.google.cloud.sql.v1beta4.DemoteMasterContext.verify(message.demoteMasterContext); + var error = $root.google.cloud.sql.v1beta4.DemoteMasterContext.verify(message.demoteMasterContext, long + 1); if (error) return "demoteMasterContext." + error; } @@ -114169,14 +118643,18 @@ * @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 (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") 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; }; @@ -114250,7 +118728,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]]; } @@ -114315,9 +118793,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 +118807,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 +118842,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.demoteContext != null && message.hasOwnProperty("demoteContext")) { - var error = $root.google.cloud.sql.v1beta4.DemoteContext.verify(message.demoteContext); + var error = $root.google.cloud.sql.v1beta4.DemoteContext.verify(message.demoteContext, long + 1); if (error) return "demoteContext." + error; } @@ -114379,14 +118865,18 @@ * @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 (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") 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; }; @@ -114460,7 +118950,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]]; } @@ -114525,9 +119015,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 +119029,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 +119064,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.exportContext != null && message.hasOwnProperty("exportContext")) { - var error = $root.google.cloud.sql.v1beta4.ExportContext.verify(message.exportContext); + var error = $root.google.cloud.sql.v1beta4.ExportContext.verify(message.exportContext, long + 1); if (error) return "exportContext." + error; } @@ -114589,14 +119087,18 @@ * @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 (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") 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; }; @@ -114670,7 +119172,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]]; } @@ -114735,9 +119237,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 +119251,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 +119286,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.failoverContext != null && message.hasOwnProperty("failoverContext")) { - var error = $root.google.cloud.sql.v1beta4.FailoverContext.verify(message.failoverContext); + var error = $root.google.cloud.sql.v1beta4.FailoverContext.verify(message.failoverContext, long + 1); if (error) return "failoverContext." + error; } @@ -114799,14 +119309,18 @@ * @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 (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") 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; }; @@ -114880,7 +119394,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]]; } @@ -114945,9 +119459,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 +119473,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 +119508,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.importContext != null && message.hasOwnProperty("importContext")) { - var error = $root.google.cloud.sql.v1beta4.ImportContext.verify(message.importContext); + var error = $root.google.cloud.sql.v1beta4.ImportContext.verify(message.importContext, long + 1); if (error) return "importContext." + error; } @@ -115009,14 +119531,18 @@ * @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 (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") 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; }; @@ -115090,7 +119616,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]]; } @@ -115155,9 +119681,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 +119695,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 +119730,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.preCheckMajorVersionUpgradeContext != null && message.hasOwnProperty("preCheckMajorVersionUpgradeContext")) { - var error = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.verify(message.preCheckMajorVersionUpgradeContext); + var error = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.verify(message.preCheckMajorVersionUpgradeContext, long + 1); if (error) return "preCheckMajorVersionUpgradeContext." + error; } @@ -115219,14 +119753,18 @@ * @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 (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") 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; }; @@ -115301,7 +119839,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]]; } @@ -115367,9 +119905,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 +119921,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 +119956,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.initialSyncFlags != null && message.hasOwnProperty("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,9 +119983,13 @@ * @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 (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)) @@ -115448,7 +119998,7 @@ for (var i = 0; i < object.initialSyncFlags.length; ++i) { if (typeof object.initialSyncFlags[i] !== "object") 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; @@ -115531,7 +120081,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]]; } @@ -115628,9 +120178,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 +120198,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 +120212,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -115689,9 +120243,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -115699,7 +120257,7 @@ 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; } @@ -115708,7 +120266,7 @@ 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; } @@ -115727,9 +120285,13 @@ * @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 (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); @@ -115740,7 +120302,7 @@ for (var i = 0; i < object.warnings.length; ++i) { if (typeof object.warnings[i] !== "object") 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) { @@ -115750,7 +120312,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") 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) @@ -115848,7 +120410,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]]; } @@ -115934,9 +120496,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 +120512,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 +120524,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -115989,14 +120555,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.certs != null && message.hasOwnProperty("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; } @@ -116018,9 +120588,13 @@ * @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 (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)) @@ -116029,7 +120603,7 @@ for (var i = 0; i < object.certs.length; ++i) { if (typeof object.certs[i] !== "object") 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) @@ -116124,7 +120698,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]]; } @@ -116221,9 +120795,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 +120811,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 +120829,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -116282,14 +120860,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.caCerts != null && message.hasOwnProperty("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; } @@ -116298,7 +120880,7 @@ 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; } @@ -116320,9 +120902,13 @@ * @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 (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)) @@ -116331,7 +120917,7 @@ for (var i = 0; i < object.caCerts.length; ++i) { if (typeof object.caCerts[i] !== "object") 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) { @@ -116341,7 +120927,7 @@ for (var i = 0; i < object.serverCerts.length; ++i) { if (typeof object.serverCerts[i] !== "object") 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) @@ -116441,7 +121027,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]]; } @@ -116527,9 +121113,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 +121129,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 +121141,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -116582,14 +121172,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.certs != null && message.hasOwnProperty("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; } @@ -116611,9 +121205,13 @@ * @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 (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)) @@ -116622,7 +121220,7 @@ for (var i = 0; i < object.certs.length; ++i) { if (typeof object.certs[i] !== "object") 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) @@ -116717,7 +121315,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]]; } @@ -116823,9 +121421,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 +121435,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 +121447,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 +121457,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -116886,11 +121488,15 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.restoreBackupContext != null && message.hasOwnProperty("restoreBackupContext")) { - var error = $root.google.cloud.sql.v1beta4.RestoreBackupContext.verify(message.restoreBackupContext); + var error = $root.google.cloud.sql.v1beta4.RestoreBackupContext.verify(message.restoreBackupContext, long + 1); if (error) return "restoreBackupContext." + error; } @@ -116901,7 +121507,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.DatabaseInstance.verify(message.restoreInstanceSettings, long + 1); if (error) return "restoreInstanceSettings." + error; } @@ -116923,14 +121529,18 @@ * @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 (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") 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); @@ -116939,7 +121549,7 @@ if (object.restoreInstanceSettings != null) { if (typeof object.restoreInstanceSettings !== "object") 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)) @@ -117037,7 +121647,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]]; } @@ -117102,9 +121712,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 +121726,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 +121761,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.rotateServerCaContext != null && message.hasOwnProperty("rotateServerCaContext")) { - var error = $root.google.cloud.sql.v1beta4.RotateServerCaContext.verify(message.rotateServerCaContext); + var error = $root.google.cloud.sql.v1beta4.RotateServerCaContext.verify(message.rotateServerCaContext, long + 1); if (error) return "rotateServerCaContext." + error; } @@ -117166,14 +121784,18 @@ * @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 (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") 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; }; @@ -117247,7 +121869,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]]; } @@ -117312,9 +121934,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 +121948,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 +121983,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.rotateServerCertificateContext != null && message.hasOwnProperty("rotateServerCertificateContext")) { - var error = $root.google.cloud.sql.v1beta4.RotateServerCertificateContext.verify(message.rotateServerCertificateContext); + var error = $root.google.cloud.sql.v1beta4.RotateServerCertificateContext.verify(message.rotateServerCertificateContext, long + 1); if (error) return "rotateServerCertificateContext." + error; } @@ -117376,14 +122006,18 @@ * @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 (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") 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; }; @@ -117457,7 +122091,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]]; } @@ -117522,9 +122156,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 +122170,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 +122205,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.rotateEntraIdCertificateContext != null && message.hasOwnProperty("rotateEntraIdCertificateContext")) { - var error = $root.google.cloud.sql.v1beta4.RotateEntraIdCertificateContext.verify(message.rotateEntraIdCertificateContext); + var error = $root.google.cloud.sql.v1beta4.RotateEntraIdCertificateContext.verify(message.rotateEntraIdCertificateContext, long + 1); if (error) return "rotateEntraIdCertificateContext." + error; } @@ -117586,14 +122228,18 @@ * @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 (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") 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; }; @@ -117667,7 +122313,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]]; } @@ -117732,9 +122378,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 +122392,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 +122427,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.truncateLogContext != null && message.hasOwnProperty("truncateLogContext")) { - var error = $root.google.cloud.sql.v1beta4.TruncateLogContext.verify(message.truncateLogContext); + var error = $root.google.cloud.sql.v1beta4.TruncateLogContext.verify(message.truncateLogContext, long + 1); if (error) return "truncateLogContext." + error; } @@ -117796,14 +122450,18 @@ * @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 (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") 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; }; @@ -117877,7 +122535,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]]; } @@ -117942,9 +122600,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 +122614,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 +122649,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.acquireSsrsLeaseContext != null && message.hasOwnProperty("acquireSsrsLeaseContext")) { - var error = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.verify(message.acquireSsrsLeaseContext); + var error = $root.google.cloud.sql.v1beta4.AcquireSsrsLeaseContext.verify(message.acquireSsrsLeaseContext, long + 1); if (error) return "acquireSsrsLeaseContext." + error; } @@ -118006,14 +122672,18 @@ * @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 (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") 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; }; @@ -118093,7 +122763,7 @@ function PointInTimeRestoreContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -118257,9 +122927,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 +122945,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: { @@ -118295,7 +122969,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -118326,9 +123000,13 @@ * @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")) { properties._datasource = 1; @@ -118336,7 +123014,7 @@ return "datasource: string expected"; } if (message.pointInTime != null && message.hasOwnProperty("pointInTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.pointInTime); + var error = $root.google.protobuf.Timestamp.verify(message.pointInTime, long + 1); if (error) return "pointInTime." + error; } @@ -118376,16 +123054,20 @@ * @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 (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") 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); @@ -118499,7 +123181,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]]; } @@ -118564,9 +123246,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 +123264,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -118609,9 +123295,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.targetSizeGb != null && message.hasOwnProperty("targetSizeGb")) if (!$util.isInteger(message.targetSizeGb) && !(message.targetSizeGb && $util.isInteger(message.targetSizeGb.low) && $util.isInteger(message.targetSizeGb.high))) return "targetSizeGb: integer|Long expected"; @@ -118626,9 +123316,13 @@ * @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 (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) @@ -118721,7 +123415,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]]; } @@ -118822,9 +123516,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 +123544,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -118877,9 +123575,13 @@ * @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")) { properties._message = 1; @@ -118916,9 +123618,13 @@ * @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 (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); @@ -119059,7 +123765,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]]; } @@ -119145,9 +123851,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 +123871,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 +123879,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -119200,9 +123910,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.targetDatabaseVersion != null && message.hasOwnProperty("targetDatabaseVersion")) switch (message.targetDatabaseVersion) { default: @@ -119264,7 +123978,7 @@ 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; } @@ -119283,9 +123997,13 @@ * @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 (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: @@ -119506,7 +124224,7 @@ for (var i = 0; i < object.preCheckResponse.length; ++i) { if (typeof object.preCheckResponse[i] !== "object") 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) @@ -119596,7 +124314,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]]; } @@ -119681,9 +124399,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 +124425,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -119734,9 +124456,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -119757,9 +124483,13 @@ * @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 (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); @@ -119864,7 +124594,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]]; } @@ -119951,9 +124681,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 +124701,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,9 +124742,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -120018,7 +124756,7 @@ 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; } @@ -120027,7 +124765,7 @@ 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 +124781,13 @@ * @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 (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); @@ -120056,7 +124798,7 @@ for (var i = 0; i < object.errors.length; ++i) { if (typeof object.errors[i] !== "object") 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) { @@ -120066,7 +124808,7 @@ for (var i = 0; i < object.warnings.length; ++i) { if (typeof object.warnings[i] !== "object") 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; @@ -120157,7 +124899,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]]; } @@ -120242,9 +124984,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 +125010,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -120295,9 +125041,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -120380,9 +125130,13 @@ * @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 (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); @@ -120852,7 +125606,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]]; } @@ -121056,9 +125810,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 +125824,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 +125832,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 +125846,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 +125854,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 +125876,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -121149,12 +125907,16 @@ * @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); + var error = $root.google.protobuf.BoolValue.verify(message.ipv4Enabled, long + 1); if (error) return "ipv4Enabled." + error; } @@ -121162,7 +125924,7 @@ 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); + var error = $root.google.protobuf.BoolValue.verify(message.requireSsl, long + 1); if (error) return "requireSsl." + error; } @@ -121170,7 +125932,7 @@ 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; } @@ -121179,7 +125941,7 @@ 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); + var error = $root.google.protobuf.BoolValue.verify(message.enablePrivatePathForGoogleCloudServices, long + 1); if (error) return "enablePrivatePathForGoogleCloudServices." + error; } @@ -121196,7 +125958,7 @@ if (message.pscConfig != null && message.hasOwnProperty("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; } @@ -121247,21 +126009,25 @@ * @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 (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") 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") 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)) @@ -121270,7 +126036,7 @@ for (var i = 0; i < object.authorizedNetworks.length; ++i) { if (typeof object.authorizedNetworks[i] !== "object") 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) @@ -121278,7 +126044,7 @@ if (object.enablePrivatePathForGoogleCloudServices != null) { if (typeof object.enablePrivatePathForGoogleCloudServices !== "object") 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: @@ -121307,7 +126073,7 @@ if (object.pscConfig != null) { if (typeof object.pscConfig !== "object") 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: @@ -121541,7 +126307,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]]; } @@ -121647,9 +126413,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,7 +126439,7 @@ 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: { @@ -121677,7 +126447,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -121708,9 +126478,13 @@ * @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")) { properties._pscEnabled = 1; @@ -121728,7 +126502,7 @@ 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; } @@ -121747,9 +126521,13 @@ * @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 (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); @@ -121767,7 +126545,7 @@ for (var i = 0; i < object.pscAutoConnections.length; ++i) { if (typeof object.pscAutoConnections[i] !== "object") 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) @@ -121867,7 +126645,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]]; } @@ -121993,9 +126771,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(); @@ -122023,7 +126805,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -122054,9 +126836,13 @@ * @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 (!$util.isString(message.consumerProject)) @@ -122090,9 +126876,13 @@ * @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 (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); @@ -122197,7 +126987,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]]; } @@ -122282,9 +127072,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 +127094,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,9 +127129,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.type != null && message.hasOwnProperty("type")) switch (message.type) { default: @@ -122353,7 +127151,7 @@ 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); + var error = $root.google.protobuf.Timestamp.verify(message.timeToRetire, long + 1); if (error) return "timeToRetire." + error; } @@ -122368,9 +127166,13 @@ * @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 (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: @@ -122405,7 +127207,7 @@ if (object.timeToRetire != null) { if (typeof object.timeToRetire !== "object") 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; }; @@ -122489,7 +127291,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]]; } @@ -122584,9 +127386,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 +127416,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -122641,9 +127447,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.followGaeApplication != null && message.hasOwnProperty("followGaeApplication")) if (!$util.isString(message.followGaeApplication)) return "followGaeApplication: string expected"; @@ -122667,9 +127477,13 @@ * @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 (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); @@ -122764,7 +127578,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]]; } @@ -122859,9 +127673,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 +127687,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 +127703,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -122916,16 +127734,20 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.hour != null && message.hasOwnProperty("hour")) { - var error = $root.google.protobuf.Int32Value.verify(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); + var error = $root.google.protobuf.Int32Value.verify(message.day, long + 1); if (error) return "day." + error; } @@ -122953,19 +127775,23 @@ * @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 (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") 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") 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: @@ -123077,7 +127903,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]]; } @@ -123162,9 +127988,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 +128014,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -123215,9 +128045,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.startDate != null && message.hasOwnProperty("startDate")) if (!$util.isString(message.startDate)) return "startDate: string expected"; @@ -123238,9 +128072,13 @@ * @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 (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); @@ -123332,7 +128170,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]]; } @@ -123447,9 +128285,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 +128311,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,9 +128354,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.queryInsightsEnabled != null && message.hasOwnProperty("queryInsightsEnabled")) if (typeof message.queryInsightsEnabled !== "boolean") return "queryInsightsEnabled: boolean expected"; @@ -123525,17 +128371,17 @@ 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); + 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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.enhancedQueryInsightsEnabled, long + 1); if (error) return "enhancedQueryInsightsEnabled." + error; } @@ -123550,9 +128396,13 @@ * @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 (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); @@ -123563,17 +128413,17 @@ if (object.queryStringLength != null) { if (typeof object.queryStringLength !== "object") 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") 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") 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; }; @@ -123673,7 +128523,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]]; } @@ -123838,9 +128688,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 +128714,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 +128738,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 +128746,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -123923,9 +128777,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.dumpFilePath != null && message.hasOwnProperty("dumpFilePath")) if (!$util.isString(message.dumpFilePath)) return "dumpFilePath: string expected"; @@ -123936,12 +128794,12 @@ 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); + 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); + var error = $root.google.protobuf.Int64Value.verify(message.masterHeartbeatPeriod, long + 1); if (error) return "masterHeartbeatPeriod." + error; } @@ -123958,7 +128816,7 @@ 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); + var error = $root.google.protobuf.BoolValue.verify(message.verifyServerCertificate, long + 1); if (error) return "verifyServerCertificate." + error; } @@ -123976,9 +128834,13 @@ * @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 (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); @@ -123989,12 +128851,12 @@ if (object.connectRetryInterval != null) { if (typeof object.connectRetryInterval !== "object") 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") 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); @@ -124007,7 +128869,7 @@ if (object.verifyServerCertificate != null) { if (typeof object.verifyServerCertificate !== "object") 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); @@ -124114,7 +128976,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]]; } @@ -124179,9 +129041,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 +129059,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -124224,9 +129090,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.database != null && message.hasOwnProperty("database")) if (!$util.isString(message.database)) return "database: string expected"; @@ -124241,9 +129111,13 @@ * @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 (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); @@ -124330,7 +129204,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]]; } @@ -124496,9 +129370,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 +129416,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 +129430,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -124583,9 +129461,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.hostPort != null && message.hasOwnProperty("hostPort")) if (!$util.isString(message.hostPort)) return "hostPort: string expected"; @@ -124611,7 +129493,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.InstanceReference.verify(message.sourceInstance, long + 1); if (error) return "sourceInstance." + error; } @@ -124619,7 +129501,7 @@ 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; } @@ -124645,9 +129527,13 @@ * @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 (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); @@ -124668,7 +129554,7 @@ if (object.sourceInstance != null) { if (typeof object.sourceInstance !== "object") 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)) @@ -124677,7 +129563,7 @@ for (var i = 0; i < object.selectedObjects.length; ++i) { if (typeof object.selectedObjects[i] !== "object") 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) { @@ -124830,7 +129716,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]]; } @@ -124905,9 +129791,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 +129813,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -124954,9 +129844,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kmsKeyName != null && message.hasOwnProperty("kmsKeyName")) if (!$util.isString(message.kmsKeyName)) return "kmsKeyName: string expected"; @@ -124974,9 +129868,13 @@ * @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 (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); @@ -125059,7 +129957,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]]; } @@ -125134,9 +130032,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 +130054,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -125183,9 +130085,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kmsKeyVersionName != null && message.hasOwnProperty("kmsKeyVersionName")) if (!$util.isString(message.kmsKeyVersionName)) return "kmsKeyVersionName: string expected"; @@ -125203,9 +130109,13 @@ * @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 (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); @@ -125307,7 +130217,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]]; } @@ -125386,9 +130296,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 +130314,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -125431,9 +130345,13 @@ * @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")) { properties.subOperationDetails = 1; @@ -125459,9 +130377,13 @@ * @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 (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: @@ -125583,7 +130505,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]]; } @@ -125838,9 +130760,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 +130790,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 +130814,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 +130846,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,9 +130885,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -125982,27 +130912,27 @@ 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); + 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); + 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); + 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); + 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); + var error = $root.google.cloud.sql.v1beta4.ApiWarning.verify(message.apiWarning, long + 1); if (error) return "apiWarning." + error; } @@ -126065,22 +130995,22 @@ break; } if (message.importContext != null && message.hasOwnProperty("importContext")) { - var error = $root.google.cloud.sql.v1beta4.ImportContext.verify(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); + 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); + 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); + var error = $root.google.cloud.sql.v1beta4.PreCheckMajorVersionUpgradeContext.verify(message.preCheckMajorVersionUpgradeContext, long + 1); if (error) return "preCheckMajorVersionUpgradeContext." + error; } @@ -126097,12 +131027,12 @@ 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); + 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); + var error = $root.google.cloud.sql.v1beta4.SqlSubOperationType.verify(message.subOperationType, long + 1); if (error) return "subOperationType." + error; } @@ -126117,9 +131047,13 @@ * @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 (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); @@ -126154,27 +131088,27 @@ if (object.insertTime != null) { if (typeof object.insertTime !== "object") 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") 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") 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") 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") 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: @@ -126395,22 +131329,22 @@ if (object.importContext != null) { if (typeof object.importContext !== "object") 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") 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") 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") 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); @@ -126423,12 +131357,12 @@ if (object.acquireSsrsLeaseContext != null) { if (typeof object.acquireSsrsLeaseContext !== "object") 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") 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; }; @@ -126694,7 +131628,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]]; } @@ -126779,9 +131713,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 +131739,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -126832,9 +131770,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -126855,9 +131797,13 @@ * @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 (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); @@ -126946,7 +131892,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]]; } @@ -127022,9 +131968,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 +131988,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,9 +132023,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -127083,7 +132037,7 @@ 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 +132053,13 @@ * @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 (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); @@ -127112,7 +132070,7 @@ for (var i = 0; i < object.errors.length; ++i) { if (typeof object.errors[i] !== "object") 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; @@ -127200,7 +132158,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]]; } @@ -127325,9 +132283,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 +132297,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 +132305,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,11 +132356,15 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.minLength != null && message.hasOwnProperty("minLength")) { - var error = $root.google.protobuf.Int32Value.verify(message.minLength); + var error = $root.google.protobuf.Int32Value.verify(message.minLength, long + 1); if (error) return "minLength." + error; } @@ -127411,27 +132377,27 @@ break; } if (message.reuseInterval != null && message.hasOwnProperty("reuseInterval")) { - var error = $root.google.protobuf.Int32Value.verify(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); + 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); + 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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.disallowCompromisedCredentials, long + 1); if (error) return "disallowCompromisedCredentials." + error; } @@ -127446,14 +132412,18 @@ * @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 (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") 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: @@ -127474,27 +132444,27 @@ if (object.reuseInterval != null) { if (typeof object.reuseInterval !== "object") 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") 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") 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") 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") 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; }; @@ -127604,7 +132574,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]]; } @@ -127690,9 +132660,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 +132680,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 +132688,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -127745,9 +132719,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -127755,7 +132733,7 @@ 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; } @@ -127774,9 +132752,13 @@ * @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 (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); @@ -127787,7 +132769,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") 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) @@ -127878,7 +132860,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]]; } @@ -127973,9 +132955,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 +132973,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 +133016,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("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); + 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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.cascadableReplica, long + 1); if (error) return "cascadableReplica." + error; } @@ -128062,26 +133052,30 @@ * @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 (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") 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") 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") 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; }; @@ -128168,7 +133162,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]]; } @@ -128263,9 +133257,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 +133287,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -128320,9 +133318,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -128346,9 +133348,13 @@ * @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 (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); @@ -128455,7 +133461,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]]; } @@ -128530,9 +133536,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 +133558,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -128579,9 +133589,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -128599,9 +133613,13 @@ * @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 (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); @@ -128684,7 +133702,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]]; } @@ -128759,9 +133777,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 +133799,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -128808,9 +133830,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -128828,9 +133854,13 @@ * @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 (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); @@ -128913,7 +133943,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]]; } @@ -128988,9 +134018,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 +134040,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -129037,9 +134071,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -129057,9 +134095,13 @@ * @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 (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); @@ -129141,7 +134183,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]]; } @@ -129206,9 +134248,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 +134266,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -129251,9 +134297,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.dataCacheEnabled != null && message.hasOwnProperty("dataCacheEnabled")) if (typeof message.dataCacheEnabled !== "boolean") return "dataCacheEnabled: boolean expected"; @@ -129268,9 +134318,13 @@ * @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 (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); @@ -129347,7 +134401,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]]; } @@ -129437,9 +134491,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 +134513,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -129486,9 +134544,13 @@ * @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")) { properties._enabled = 1; @@ -129511,9 +134573,13 @@ * @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 (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); @@ -129645,7 +134711,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]]; } @@ -130199,9 +135265,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 +135279,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 +135312,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 +135334,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 +135342,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 +135364,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 +135394,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 +135418,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 +135426,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 +135458,15 @@ 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 50: { @@ -130402,7 +135474,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 +135482,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,12 +135517,16 @@ * @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); + var error = $root.google.protobuf.Int64Value.verify(message.settingsVersion, long + 1); if (error) return "settingsVersion." + error; } @@ -130503,7 +135579,7 @@ break; } if (message.storageAutoResizeLimit != null && message.hasOwnProperty("storageAutoResizeLimit")) { - var error = $root.google.protobuf.Int64Value.verify(message.storageAutoResizeLimit); + var error = $root.google.protobuf.Int64Value.verify(message.storageAutoResizeLimit, long + 1); if (error) return "storageAutoResizeLimit." + error; } @@ -130518,17 +135594,17 @@ break; } if (message.ipConfiguration != null && message.hasOwnProperty("ipConfiguration")) { - var error = $root.google.cloud.sql.v1beta4.IpConfiguration.verify(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); + 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); + var error = $root.google.cloud.sql.v1beta4.LocationPreference.verify(message.locationPreference, long + 1); if (error) return "locationPreference." + error; } @@ -130536,7 +135612,7 @@ 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; } @@ -130553,32 +135629,32 @@ break; } if (message.maintenanceWindow != null && message.hasOwnProperty("maintenanceWindow")) { - var error = $root.google.cloud.sql.v1beta4.MaintenanceWindow.verify(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); + 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); + 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); + 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); + 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); + var error = $root.google.cloud.sql.v1beta4.SqlActiveDirectoryConfig.verify(message.activeDirectoryConfig, long + 1); if (error) return "activeDirectoryConfig." + error; } @@ -130589,23 +135665,23 @@ 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); + 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); + 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); + var error = $root.google.cloud.sql.v1beta4.SqlServerAuditConfig.verify(message.sqlServerAuditConfig, long + 1); if (error) return "sqlServerAuditConfig." + error; } @@ -130628,7 +135704,7 @@ break; } if (message.deletionProtectionEnabled != null && message.hasOwnProperty("deletionProtectionEnabled")) { - var error = $root.google.protobuf.BoolValue.verify(message.deletionProtectionEnabled); + var error = $root.google.protobuf.BoolValue.verify(message.deletionProtectionEnabled, long + 1); if (error) return "deletionProtectionEnabled." + error; } @@ -130636,32 +135712,32 @@ 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); + 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); + 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); + 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); + 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); + 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); + var error = $root.google.protobuf.BoolValue.verify(message.retainBackupsOnDelete, long + 1); if (error) return "retainBackupsOnDelete." + error; } @@ -130678,7 +135754,7 @@ if (message.connectionPoolConfig != null && message.hasOwnProperty("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; } @@ -130686,7 +135762,7 @@ if (message.finalBackupConfig != null && message.hasOwnProperty("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; } @@ -130694,7 +135770,7 @@ if (message.readPoolAutoScaleConfig != null && message.hasOwnProperty("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; } @@ -130705,7 +135781,7 @@ return "autoUpgradeEnabled: boolean expected"; } if (message.entraidConfig != null && message.hasOwnProperty("entraidConfig")) { - var error = $root.google.cloud.sql.v1beta4.SqlServerEntraIdConfig.verify(message.entraidConfig); + var error = $root.google.cloud.sql.v1beta4.SqlServerEntraIdConfig.verify(message.entraidConfig, long + 1); if (error) return "entraidConfig." + error; } @@ -130721,7 +135797,7 @@ } } if (message.performanceCaptureConfig != null && message.hasOwnProperty("performanceCaptureConfig")) { - var error = $root.google.cloud.sql.v1beta4.PerformanceCaptureConfig.verify(message.performanceCaptureConfig); + var error = $root.google.cloud.sql.v1beta4.PerformanceCaptureConfig.verify(message.performanceCaptureConfig, long + 1); if (error) return "performanceCaptureConfig." + error; } @@ -130736,14 +135812,18 @@ * @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 (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") 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)) @@ -130760,8 +135840,11 @@ if (typeof object.userLabels !== "object") 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: @@ -130826,7 +135909,7 @@ if (object.storageAutoResizeLimit != null) { if (typeof object.storageAutoResizeLimit !== "object") 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: @@ -130855,17 +135938,17 @@ if (object.ipConfiguration != null) { if (typeof object.ipConfiguration !== "object") 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") 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") 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)) @@ -130874,7 +135957,7 @@ for (var i = 0; i < object.databaseFlags.length; ++i) { if (typeof object.databaseFlags[i] !== "object") 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) { @@ -130908,32 +135991,32 @@ if (object.maintenanceWindow != null) { if (typeof object.maintenanceWindow !== "object") 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") 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") 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") 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") 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") 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); @@ -130944,23 +136027,23 @@ for (var i = 0; i < object.denyMaintenancePeriods.length; ++i) { if (typeof object.denyMaintenancePeriods[i] !== "object") 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") 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") 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") 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: @@ -131005,39 +136088,39 @@ if (object.deletionProtectionEnabled != null) { if (typeof object.deletionProtectionEnabled !== "object") 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") 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") 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") 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") 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") 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") 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) @@ -131060,24 +136143,24 @@ if (object.connectionPoolConfig != null) { if (typeof object.connectionPoolConfig !== "object") 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") 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") 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.autoUpgradeEnabled != null) message.autoUpgradeEnabled = Boolean(object.autoUpgradeEnabled); if (object.entraidConfig != null) { if (typeof object.entraidConfig !== "object") 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: @@ -131102,7 +136185,7 @@ if (object.performanceCaptureConfig != null) { if (typeof object.performanceCaptureConfig !== "object") 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; }; @@ -131177,8 +136260,11 @@ 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")) 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; @@ -131416,7 +136502,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]]; } @@ -131570,9 +136656,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(); @@ -131604,7 +136694,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -131635,9 +136725,13 @@ * @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")) { properties._enabled = 1; @@ -131680,9 +136774,13 @@ * @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 (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); @@ -131794,7 +136892,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]]; } @@ -131859,9 +136957,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 +136975,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -131904,9 +137006,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.threadsPerCore != null && message.hasOwnProperty("threadsPerCore")) if (!$util.isInteger(message.threadsPerCore)) return "threadsPerCore: integer expected"; @@ -131921,9 +137027,13 @@ * @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 (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; @@ -132007,7 +137117,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]]; } @@ -132152,9 +137262,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 +137288,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 +137296,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 +137312,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -132229,9 +137343,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -132242,7 +137360,7 @@ 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); + var error = $root.google.protobuf.Timestamp.verify(message.createTime, long + 1); if (error) return "createTime." + error; } @@ -132250,7 +137368,7 @@ 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); + var error = $root.google.protobuf.Timestamp.verify(message.expirationTime, long + 1); if (error) return "expirationTime." + error; } @@ -132274,9 +137392,13 @@ * @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 (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); @@ -132287,14 +137409,14 @@ if (object.createTime != null) { if (typeof object.createTime !== "object") 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") 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); @@ -132400,7 +137522,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]]; } @@ -132475,9 +137597,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 +137611,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 +137619,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -132524,11 +137650,15 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.certInfo != null && message.hasOwnProperty("certInfo")) { - var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.certInfo); + var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.certInfo, long + 1); if (error) return "certInfo." + error; } @@ -132546,14 +137676,18 @@ * @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 (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") 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); @@ -132634,7 +137768,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]]; } @@ -132709,9 +137843,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 +137865,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -132758,9 +137896,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.publicKey != null && message.hasOwnProperty("publicKey")) if (!$util.isString(message.publicKey)) return "publicKey: string expected"; @@ -132778,9 +137920,13 @@ * @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 (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); @@ -132862,7 +138008,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]]; } @@ -132927,9 +138073,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 +138091,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -132972,9 +138122,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.commonName != null && message.hasOwnProperty("commonName")) if (!$util.isString(message.commonName)) return "commonName: string expected"; @@ -132989,9 +138143,13 @@ * @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 (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); @@ -133067,7 +138225,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]]; } @@ -133132,9 +138290,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 +138304,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 +138339,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.reschedule != null && message.hasOwnProperty("reschedule")) { - var error = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.verify(message.reschedule); + var error = $root.google.cloud.sql.v1beta4.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule.verify(message.reschedule, long + 1); if (error) return "reschedule." + error; } @@ -133196,14 +138362,18 @@ * @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 (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") 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; }; @@ -133293,7 +138463,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]]; } @@ -133368,9 +138538,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 +138556,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,9 +138591,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.rescheduleType != null && message.hasOwnProperty("rescheduleType")) switch (message.rescheduleType) { default: @@ -133431,7 +138609,7 @@ break; } if (message.scheduleTime != null && message.hasOwnProperty("scheduleTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.scheduleTime); + var error = $root.google.protobuf.Timestamp.verify(message.scheduleTime, long + 1); if (error) return "scheduleTime." + error; } @@ -133446,9 +138624,13 @@ * @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 (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: @@ -133477,7 +138659,7 @@ if (object.scheduleTime != null) { if (typeof object.scheduleTime !== "object") 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; }; @@ -133561,7 +138743,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]]; } @@ -133656,9 +138838,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 +138856,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 +138899,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("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); + 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); + 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); + var error = $root.google.cloud.sql.v1beta4.SslCertDetail.verify(message.clientCert, long + 1); if (error) return "clientCert." + error; } @@ -133745,26 +138935,30 @@ * @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 (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") 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") 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") 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; }; @@ -133850,7 +139044,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]]; } @@ -133926,9 +139120,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 +139140,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,9 +139175,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -133987,7 +139189,7 @@ 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 +139205,13 @@ * @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 (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); @@ -134016,7 +139222,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") 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; @@ -134099,7 +139305,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]]; } @@ -134174,9 +139380,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 +139402,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -134223,9 +139433,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -134243,9 +139457,13 @@ * @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 (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); @@ -134333,7 +139551,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]]; } @@ -134449,9 +139667,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 +139707,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -134516,9 +139738,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -134559,9 +139785,13 @@ * @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 (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); @@ -134715,7 +139945,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]]; } @@ -134810,9 +140040,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 +140062,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,9 +140101,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -134877,12 +140115,12 @@ 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); + 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); + var error = $root.google.protobuf.Duration.verify(message.uploadInterval, long + 1); if (error) return "uploadInterval." + error; } @@ -134897,9 +140135,13 @@ * @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 (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); @@ -134908,12 +140150,12 @@ if (object.retentionInterval != null) { if (typeof object.retentionInterval !== "object") 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") 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; }; @@ -134999,7 +140241,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]]; } @@ -135084,9 +140326,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 +140352,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -135137,9 +140383,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -135160,9 +140410,13 @@ * @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 (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); @@ -135370,7 +140624,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]]; } @@ -135445,9 +140699,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 +140721,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -135494,9 +140752,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -135514,9 +140776,13 @@ * @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 (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); @@ -135605,7 +140871,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]]; } @@ -135770,9 +141036,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 +141064,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 +141080,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -135841,9 +141111,13 @@ * @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")) { properties._enabled = 1; @@ -135864,7 +141138,7 @@ 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; } @@ -135895,9 +141169,13 @@ * @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 (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); @@ -135912,7 +141190,7 @@ for (var i = 0; i < object.targetMetrics.length; ++i) { if (typeof object.targetMetrics[i] !== "object") 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) @@ -136024,7 +141302,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]]; } @@ -136114,9 +141392,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 +141414,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -136163,9 +141445,13 @@ * @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")) { properties._metric = 1; @@ -136188,9 +141474,13 @@ * @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 (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); @@ -136280,7 +141570,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]]; } @@ -136381,9 +141671,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 +141691,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 +141699,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -136436,9 +141730,13 @@ * @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")) { properties._connectionPoolingEnabled = 1; @@ -136449,7 +141747,7 @@ 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; } @@ -136470,9 +141768,13 @@ * @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 (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); @@ -136483,7 +141785,7 @@ for (var i = 0; i < object.flags.length; ++i) { if (typeof object.flags[i] !== "object") 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) @@ -136794,7 +142096,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]]; } @@ -136916,9 +142218,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 +142244,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,9 +142279,13 @@ * @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")) { properties._setupLogin = 1; @@ -136995,7 +142305,7 @@ if (message.duration != null && message.hasOwnProperty("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 +142321,13 @@ * @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 (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); @@ -137024,7 +142338,7 @@ if (object.duration != null) { if (typeof object.duration !== "object") 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; }; @@ -137259,7 +142573,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]]; } @@ -137344,9 +142658,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 +142680,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,9 +142715,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -137407,7 +142729,7 @@ 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); + var error = $root.google.protobuf.Timestamp.verify(message.readTime, long + 1); if (error) return "readTime." + error; } @@ -137422,9 +142744,13 @@ * @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 (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); @@ -137433,7 +142759,7 @@ if (object.readTime != null) { if (typeof object.readTime !== "object") 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; }; @@ -137532,7 +142858,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]]; } @@ -137744,9 +143070,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 +143088,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 +143130,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 +143140,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: { @@ -137825,7 +143155,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -137856,15 +143186,19 @@ * @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 (!$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); + var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.serverCaCert, long + 1); if (error) return "serverCaCert." + error; } @@ -137872,7 +143206,7 @@ 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; } @@ -137974,7 +143308,7 @@ 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; } @@ -137988,7 +143322,7 @@ 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; } @@ -138016,16 +143350,20 @@ * @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 (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") 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)) @@ -138034,7 +143372,7 @@ for (var i = 0; i < object.ipAddresses.length; ++i) { if (typeof object.ipAddresses[i] !== "object") 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) @@ -138317,7 +143655,7 @@ for (var i = 0; i < object.dnsNames.length; ++i) { if (typeof object.dnsNames[i] !== "object") 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) @@ -138329,7 +143667,7 @@ for (var i = 0; i < object.nodes.length; ++i) { if (typeof object.nodes[i] !== "object") 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) { @@ -138504,7 +143842,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]]; } @@ -138616,9 +143954,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 +143974,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 +143984,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,9 +144019,13 @@ * @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")) { properties._name = 1; @@ -138690,7 +144036,7 @@ 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; } @@ -138704,7 +144050,7 @@ 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 +144066,13 @@ * @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 (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); @@ -138733,7 +144083,7 @@ for (var i = 0; i < object.ipAddresses.length; ++i) { if (typeof object.ipAddresses[i] !== "object") 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) @@ -138745,7 +144095,7 @@ for (var i = 0; i < object.dnsNames.length; ++i) { if (typeof object.dnsNames[i] !== "object") 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; @@ -138862,7 +144212,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]]; } @@ -138977,9 +144327,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 +144357,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,9 +144396,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -139058,12 +144416,12 @@ 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); + 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); + var error = $root.google.protobuf.Duration.verify(message.validDuration, long + 1); if (error) return "validDuration." + error; } @@ -139078,9 +144436,13 @@ * @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 (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); @@ -139093,12 +144455,12 @@ if (object.readTime != null) { if (typeof object.readTime !== "object") 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") 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; }; @@ -139188,7 +144550,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]]; } @@ -139253,9 +144615,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 +144629,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 +144664,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.ephemeralCert != null && message.hasOwnProperty("ephemeralCert")) { - var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.ephemeralCert); + var error = $root.google.cloud.sql.v1beta4.SslCert.verify(message.ephemeralCert, long + 1); if (error) return "ephemeralCert." + error; } @@ -139317,14 +144687,18 @@ * @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 (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") 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; }; @@ -139501,7 +144875,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]]; } @@ -139566,9 +144940,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 +144958,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -139611,9 +144989,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.project != null && message.hasOwnProperty("project")) if (!$util.isString(message.project)) return "project: string expected"; @@ -139628,9 +145010,13 @@ * @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 (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); @@ -139708,7 +145094,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]]; } @@ -139784,9 +145170,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 +145190,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,9 +145225,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -139845,7 +145239,7 @@ 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 +145255,13 @@ * @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 (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); @@ -139874,7 +145272,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") 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; @@ -139961,7 +145359,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]]; } @@ -140067,9 +145465,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 +145501,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -140130,9 +145532,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.tier != null && message.hasOwnProperty("tier")) if (!$util.isString(message.tier)) return "tier: string expected"; @@ -140163,9 +145569,13 @@ * @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 (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); @@ -140502,7 +145912,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]]; } @@ -140597,9 +146007,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 +146037,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -140654,9 +146068,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.host != null && message.hasOwnProperty("host")) if (!$util.isString(message.host)) return "host: string expected"; @@ -140680,9 +146098,13 @@ * @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 (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); @@ -140777,7 +146199,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]]; } @@ -140872,9 +146294,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 +146324,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -140929,9 +146355,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -140955,9 +146385,13 @@ * @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 (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); @@ -141051,7 +146485,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]]; } @@ -141136,9 +146570,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 +146592,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,9 +146627,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -141199,7 +146641,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.User.verify(message.body, long + 1); if (error) return "body." + error; } @@ -141214,9 +146656,13 @@ * @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 (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); @@ -141225,7 +146671,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -141307,7 +146753,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]]; } @@ -141382,9 +146828,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 +146850,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -141431,9 +146881,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.instance != null && message.hasOwnProperty("instance")) if (!$util.isString(message.instance)) return "instance: string expected"; @@ -141451,9 +146905,13 @@ * @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 (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); @@ -141542,7 +147000,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]]; } @@ -141677,9 +147135,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 +147175,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,9 +147210,13 @@ * @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 (!$util.isString(message.host)) @@ -141777,7 +147243,7 @@ return "revokeExistingRoles: boolean expected"; } if (message.body != null && message.hasOwnProperty("body")) { - var error = $root.google.cloud.sql.v1beta4.User.verify(message.body); + var error = $root.google.cloud.sql.v1beta4.User.verify(message.body, long + 1); if (error) return "body." + error; } @@ -141792,9 +147258,13 @@ * @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 (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); @@ -141816,7 +147286,7 @@ if (object.body != null) { if (typeof object.body !== "object") 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; }; @@ -141919,7 +147389,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]]; } @@ -142024,9 +147494,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 +147512,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 +147520,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 +147528,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -142085,14 +147559,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.allowedFailedAttempts != null && message.hasOwnProperty("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); + var error = $root.google.protobuf.Duration.verify(message.passwordExpirationDuration, long + 1); if (error) return "passwordExpirationDuration." + error; } @@ -142100,7 +147578,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.PasswordStatus.verify(message.status, long + 1); if (error) return "status." + error; } @@ -142118,23 +147596,27 @@ * @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 (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") 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") 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); @@ -142224,7 +147706,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]]; } @@ -142299,9 +147781,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 +147799,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 +147834,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.locked != null && message.hasOwnProperty("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); + var error = $root.google.protobuf.Timestamp.verify(message.passwordExpirationTime, long + 1); if (error) return "passwordExpirationTime." + error; } @@ -142370,16 +147860,20 @@ * @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 (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") 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; }; @@ -142471,7 +147965,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]]; } @@ -142693,9 +148187,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 +148233,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 +148241,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 +148259,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -142792,9 +148290,13 @@ * @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 (!$util.isString(message.kind)) @@ -142833,7 +148335,7 @@ if (message.sqlserverUserDetails != null && message.hasOwnProperty("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; } @@ -142842,7 +148344,7 @@ 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); + var error = $root.google.cloud.sql.v1beta4.UserPasswordValidationPolicy.verify(message.passwordPolicy, long + 1); if (error) return "passwordPolicy." + error; } @@ -142887,9 +148389,13 @@ * @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 (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); @@ -142944,14 +148450,14 @@ if (object.sqlserverUserDetails != null) { if (typeof object.sqlserverUserDetails !== "object") 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") 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: @@ -143186,7 +148692,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]]; } @@ -143262,9 +148768,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 +148792,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -143313,9 +148823,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.disabled != null && message.hasOwnProperty("disabled")) if (typeof message.disabled !== "boolean") return "disabled: boolean expected"; @@ -143337,9 +148851,13 @@ * @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 (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); @@ -143432,7 +148950,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]]; } @@ -143518,9 +149036,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 +149056,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 +149064,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -143573,9 +149095,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -143583,7 +149109,7 @@ 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; } @@ -143602,9 +149128,13 @@ * @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 (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); @@ -143615,7 +149145,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") 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) @@ -143723,7 +149253,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]]; } @@ -143799,9 +149329,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 +149345,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 +149353,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -143850,14 +149384,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.rules != null && message.hasOwnProperty("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; } @@ -143876,9 +149414,13 @@ * @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 (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)) @@ -143887,7 +149429,7 @@ for (var i = 0; i < object.rules.length; ++i) { if (typeof object.rules[i] !== "object") 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) @@ -143981,7 +149523,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]]; } @@ -144151,9 +149693,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 +149731,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 +149745,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,9 +149780,13 @@ * @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 (!$util.isString(message.selector)) @@ -144279,7 +149829,7 @@ 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; } @@ -144294,7 +149844,7 @@ 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 +149860,13 @@ * @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 (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); @@ -144329,7 +149883,7 @@ if (object.custom != null) { if (typeof object.custom !== "object") 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); @@ -144342,7 +149896,7 @@ for (var i = 0; i < object.additionalBindings.length; ++i) { if (typeof object.additionalBindings[i] !== "object") 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; @@ -144462,7 +150016,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]]; } @@ -144537,9 +150091,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 +150113,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -144586,9 +150144,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.kind != null && message.hasOwnProperty("kind")) if (!$util.isString(message.kind)) return "kind: string expected"; @@ -144606,9 +150168,13 @@ * @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 (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); @@ -144678,6 +150244,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 +150259,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 +150279,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 @@ -144744,6 +150319,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()).ldelim(); return writer; }; @@ -144771,9 +150348,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 +150376,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,9 +150412,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.referenceDocsUri != null && message.hasOwnProperty("referenceDocsUri")) if (!$util.isString(message.referenceDocsUri)) return "referenceDocsUri: string expected"; @@ -144846,6 +150435,11 @@ break; } } + if (message.selectiveGapicGeneration != null && message.hasOwnProperty("selectiveGapicGeneration")) { + var error = $root.google.api.SelectiveGapicGeneration.verify(message.selectiveGapicGeneration, long + 1); + if (error) + return "selectiveGapicGeneration." + error; + } return null; }; @@ -144857,9 +150451,13 @@ * @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 (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 +150486,11 @@ break; } } + if (object.selectiveGapicGeneration != null) { + if (typeof object.selectiveGapicGeneration !== "object") + throw TypeError(".google.api.CommonLanguageSettings.selectiveGapicGeneration: object expected"); + message.selectiveGapicGeneration = $root.google.api.SelectiveGapicGeneration.fromObject(object.selectiveGapicGeneration, long + 1); + } return message; }; @@ -144906,8 +150509,10 @@ var object = {}; if (options.arrays || options.defaults) object.destinations = []; - if (options.defaults) + if (options.defaults) { object.referenceDocsUri = ""; + object.selectiveGapicGeneration = null; + } if (message.referenceDocsUri != null && message.hasOwnProperty("referenceDocsUri")) object.referenceDocsUri = message.referenceDocsUri; if (message.destinations && message.destinations.length) { @@ -144915,6 +150520,8 @@ 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 && message.hasOwnProperty("selectiveGapicGeneration")) + object.selectiveGapicGeneration = $root.google.api.SelectiveGapicGeneration.toObject(message.selectiveGapicGeneration, options); return object; }; @@ -144977,7 +150584,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]]; } @@ -145142,9 +150749,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 +150775,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,9 +150838,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.version != null && message.hasOwnProperty("version")) if (!$util.isString(message.version)) return "version: string expected"; @@ -145251,42 +150866,42 @@ 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); + 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); + 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); + 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); + 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); + 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); + 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); + 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); + var error = $root.google.api.GoSettings.verify(message.goSettings, long + 1); if (error) return "goSettings." + error; } @@ -145301,9 +150916,13 @@ * @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 (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); @@ -145352,42 +150971,42 @@ if (object.javaSettings != null) { if (typeof object.javaSettings !== "object") 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") 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") 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") 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") 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") 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") 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") 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; }; @@ -145505,7 +151124,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]]; } @@ -145673,9 +151292,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 +151308,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 +151344,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 +151356,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -145764,14 +151387,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.methodSettings != null && message.hasOwnProperty("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; } @@ -145816,7 +151443,7 @@ 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; } @@ -145838,9 +151465,13 @@ * @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 (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)) @@ -145849,7 +151480,7 @@ for (var i = 0; i < object.methodSettings.length; ++i) { if (typeof object.methodSettings[i] !== "object") 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) @@ -145916,7 +151547,7 @@ for (var i = 0; i < object.librarySettings.length; ++i) { if (typeof object.librarySettings[i] !== "object") 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) @@ -146040,7 +151671,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]]; } @@ -146126,9 +151757,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 +151790,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,9 +151835,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.libraryPackage != null && message.hasOwnProperty("libraryPackage")) if (!$util.isString(message.libraryPackage)) return "libraryPackage: string expected"; @@ -146213,7 +151854,7 @@ return "serviceClassNames: string{k:string} expected"; } if (message.common != null && message.hasOwnProperty("common")) { - var error = $root.google.api.CommonLanguageSettings.verify(message.common); + var error = $root.google.api.CommonLanguageSettings.verify(message.common, long + 1); if (error) return "common." + error; } @@ -146228,9 +151869,13 @@ * @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 (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); @@ -146238,13 +151883,16 @@ if (typeof object.serviceClassNames !== "object") 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") 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; }; @@ -146273,8 +151921,11 @@ 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); @@ -146330,7 +151981,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]]; } @@ -146395,9 +152046,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 +152060,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 +152095,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.common != null && message.hasOwnProperty("common")) { - var error = $root.google.api.CommonLanguageSettings.verify(message.common); + var error = $root.google.api.CommonLanguageSettings.verify(message.common, long + 1); if (error) return "common." + error; } @@ -146459,14 +152118,18 @@ * @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 (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") 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; }; @@ -146540,7 +152203,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]]; } @@ -146605,9 +152268,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 +152282,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 +152317,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.common != null && message.hasOwnProperty("common")) { - var error = $root.google.api.CommonLanguageSettings.verify(message.common); + var error = $root.google.api.CommonLanguageSettings.verify(message.common, long + 1); if (error) return "common." + error; } @@ -146669,14 +152340,18 @@ * @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 (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") 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; }; @@ -146737,6 +152412,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 +152426,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 +152438,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 @@ -146788,6 +152472,8 @@ writer = $Writer.create(); 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(); + 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()).ldelim(); return writer; }; @@ -146815,9 +152501,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 +152515,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 +152554,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.common != null && message.hasOwnProperty("common")) { - var error = $root.google.api.CommonLanguageSettings.verify(message.common); + var error = $root.google.api.CommonLanguageSettings.verify(message.common, long + 1); if (error) return "common." + error; } + if (message.experimentalFeatures != null && message.hasOwnProperty("experimentalFeatures")) { + var error = $root.google.api.PythonSettings.ExperimentalFeatures.verify(message.experimentalFeatures, long + 1); + if (error) + return "experimentalFeatures." + error; + } return null; }; @@ -146879,14 +152582,23 @@ * @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 (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") 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 (typeof object.experimentalFeatures !== "object") + throw TypeError(".google.api.PythonSettings.experimentalFeatures: object expected"); + message.experimentalFeatures = $root.google.api.PythonSettings.ExperimentalFeatures.fromObject(object.experimentalFeatures, long + 1); } return message; }; @@ -146904,10 +152616,14 @@ if (!options) options = {}; var object = {}; - if (options.defaults) + if (options.defaults) { object.common = null; + object.experimentalFeatures = null; + } if (message.common != null && message.hasOwnProperty("common")) object.common = $root.google.api.CommonLanguageSettings.toObject(message.common, options); + if (message.experimentalFeatures != null && message.hasOwnProperty("experimentalFeatures")) + object.experimentalFeatures = $root.google.api.PythonSettings.ExperimentalFeatures.toObject(message.experimentalFeatures, options); return object; }; @@ -146937,6 +152653,270 @@ 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) { + if (!writer) + writer = $Writer.create(); + 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).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 && message.hasOwnProperty("restAsyncIoEnabled")) + if (typeof message.restAsyncIoEnabled !== "boolean") + return "restAsyncIoEnabled: boolean expected"; + if (message.protobufPythonicTypesEnabled != null && message.hasOwnProperty("protobufPythonicTypesEnabled")) + if (typeof message.protobufPythonicTypesEnabled !== "boolean") + return "protobufPythonicTypesEnabled: boolean expected"; + if (message.unversionedPackageDisabled != null && message.hasOwnProperty("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 (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) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.restAsyncIoEnabled = false; + object.protobufPythonicTypesEnabled = false; + object.unversionedPackageDisabled = false; + } + if (message.restAsyncIoEnabled != null && message.hasOwnProperty("restAsyncIoEnabled")) + object.restAsyncIoEnabled = message.restAsyncIoEnabled; + if (message.protobufPythonicTypesEnabled != null && message.hasOwnProperty("protobufPythonicTypesEnabled")) + object.protobufPythonicTypesEnabled = message.protobufPythonicTypesEnabled; + if (message.unversionedPackageDisabled != null && message.hasOwnProperty("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 +152940,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]]; } @@ -147025,9 +153005,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 +153019,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 +153054,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.common != null && message.hasOwnProperty("common")) { - var error = $root.google.api.CommonLanguageSettings.verify(message.common); + var error = $root.google.api.CommonLanguageSettings.verify(message.common, long + 1); if (error) return "common." + error; } @@ -147089,14 +153077,18 @@ * @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 (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") 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; }; @@ -147180,7 +153172,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]]; } @@ -147300,9 +153292,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 +153306,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 +153325,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 +153350,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 +153378,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -147409,11 +153409,15 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.common != null && message.hasOwnProperty("common")) { - var error = $root.google.api.CommonLanguageSettings.verify(message.common); + var error = $root.google.api.CommonLanguageSettings.verify(message.common, long + 1); if (error) return "common." + error; } @@ -147465,28 +153469,38 @@ * @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 (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") 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") 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") 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)) @@ -147541,13 +153555,19 @@ 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 +153636,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]]; } @@ -147681,9 +153701,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 +153715,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 +153750,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.common != null && message.hasOwnProperty("common")) { - var error = $root.google.api.CommonLanguageSettings.verify(message.common); + var error = $root.google.api.CommonLanguageSettings.verify(message.common, long + 1); if (error) return "common." + error; } @@ -147745,14 +153773,18 @@ * @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 (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") 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; }; @@ -147813,6 +153845,7 @@ * @memberof google.api * @interface IGoSettings * @property {google.api.ICommonLanguageSettings|null} [common] GoSettings common + * @property {Object.|null} [renamedServices] GoSettings renamedServices */ /** @@ -147824,9 +153857,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 +153872,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 @@ -147864,6 +153906,9 @@ writer = $Writer.create(); 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(); + 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; }; @@ -147891,21 +153936,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 +154010,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.common != null && message.hasOwnProperty("common")) { - var error = $root.google.api.CommonLanguageSettings.verify(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 (!$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 +154041,28 @@ * @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 (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") 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 (typeof object.renamedServices !== "object") + 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; }; @@ -147980,10 +154080,21 @@ if (!options) options = {}; 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); + 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 +154150,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]]; } @@ -148125,9 +154236,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 +154254,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 +154264,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -148180,14 +154295,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.selector != null && message.hasOwnProperty("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); + var error = $root.google.api.MethodSettings.LongRunning.verify(message.longRunning, long + 1); if (error) return "longRunning." + error; } @@ -148209,16 +154328,20 @@ * @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 (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") 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)) @@ -148310,7 +154433,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]]; } @@ -148405,9 +154528,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 +154542,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 +154550,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,11 +154589,15 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.initialPollDelay != null && message.hasOwnProperty("initialPollDelay")) { - var error = $root.google.protobuf.Duration.verify(message.initialPollDelay); + var error = $root.google.protobuf.Duration.verify(message.initialPollDelay, long + 1); if (error) return "initialPollDelay." + error; } @@ -148474,12 +154605,12 @@ 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); + 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); + var error = $root.google.protobuf.Duration.verify(message.totalPollTimeout, long + 1); if (error) return "totalPollTimeout." + error; } @@ -148494,26 +154625,30 @@ * @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 (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") 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") 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") 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; }; @@ -148622,6 +154757,263 @@ 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) { + if (!writer) + writer = $Writer.create(); + 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).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 && message.hasOwnProperty("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 && message.hasOwnProperty("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 (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) { + if (!options) + options = {}; + 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 && message.hasOwnProperty("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 +155096,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]]; } @@ -148834,9 +155226,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 +155277,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -148912,9 +155308,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.type != null && message.hasOwnProperty("type")) if (!$util.isString(message.type)) return "type: string expected"; @@ -148966,9 +155366,13 @@ * @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 (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); @@ -149156,7 +155560,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]]; } @@ -149231,9 +155635,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 +155657,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -149280,9 +155688,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.type != null && message.hasOwnProperty("type")) if (!$util.isString(message.type)) return "type: string expected"; @@ -149300,9 +155712,13 @@ * @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 (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); @@ -149371,6 +155787,7 @@ * @memberof google.api * @interface IFieldInfo * @property {google.api.FieldInfo.Format|null} [format] FieldInfo format + * @property {Array.|null} [referencedTypes] FieldInfo referencedTypes */ /** @@ -149382,9 +155799,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 +155814,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 @@ -149422,6 +155848,9 @@ writer = $Writer.create(); 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()).ldelim(); return writer; }; @@ -149449,9 +155878,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 +155895,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,9 +155933,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.format != null && message.hasOwnProperty("format")) switch (message.format) { default: @@ -149508,6 +155951,15 @@ case 4: break; } + if (message.referencedTypes != null && message.hasOwnProperty("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 +155971,13 @@ * @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 (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 +156007,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 (typeof object.referencedTypes[i] !== "object") + throw TypeError(".google.api.FieldInfo.referencedTypes: object expected"); + message.referencedTypes[i] = $root.google.api.TypeReference.fromObject(object.referencedTypes[i], long + 1); + } + } return message; }; @@ -149567,10 +156033,17 @@ if (!options) options = {}; 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")) 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); + } return object; }; @@ -149623,6 +156096,223 @@ 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) { + if (!writer) + writer = $Writer.create(); + 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).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 && message.hasOwnProperty("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 (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) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.typeName = ""; + if (message.typeName != null && message.hasOwnProperty("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 +156346,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]]; } @@ -149722,9 +156412,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 +156428,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 +156463,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.file != null && message.hasOwnProperty("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,9 +156490,13 @@ * @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 (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)) @@ -149803,7 +156505,7 @@ for (var i = 0; i < object.file.length; ++i) { if (typeof object.file[i] !== "object") 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; @@ -149866,6 +156568,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 +156583,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 +156608,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 +156631,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 +156682,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 @@ -150097,6 +156811,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; }; @@ -150124,9 +156841,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 +156890,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 +156937,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -150241,9 +156968,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -150271,11 +157002,18 @@ if (!$util.isInteger(message.weakDependency[i])) return "weakDependency: integer[] expected"; } + if (message.optionDependency != null && message.hasOwnProperty("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 && message.hasOwnProperty("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; } @@ -150284,7 +157022,7 @@ 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; } @@ -150293,7 +157031,7 @@ 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; } @@ -150302,18 +157040,18 @@ 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); + 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); + var error = $root.google.protobuf.SourceCodeInfo.verify(message.sourceCodeInfo, long + 1); if (error) return "sourceCodeInfo." + error; } @@ -150325,6 +157063,7 @@ default: return "edition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -150348,9 +157087,13 @@ * @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 (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,6 +157120,13 @@ 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"); @@ -150384,7 +157134,7 @@ for (var i = 0; i < object.messageType.length; ++i) { if (typeof object.messageType[i] !== "object") 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) { @@ -150394,7 +157144,7 @@ for (var i = 0; i < object.enumType.length; ++i) { if (typeof object.enumType[i] !== "object") 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) { @@ -150404,7 +157154,7 @@ for (var i = 0; i < object.service.length; ++i) { if (typeof object.service[i] !== "object") 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) { @@ -150414,18 +157164,18 @@ for (var i = 0; i < object.extension.length; ++i) { if (typeof object.extension[i] !== "object") 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") 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") 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 +157190,10 @@ case 0: message.edition = 0; break; + case "EDITION_LEGACY": + case 900: + message.edition = 900; + break; case "EDITION_PROTO2": case 998: message.edition = 998; @@ -150505,6 +157259,7 @@ object.extension = []; object.publicDependency = []; object.weakDependency = []; + object.optionDependency = []; } if (options.defaults) { object.name = ""; @@ -150561,6 +157316,11 @@ object.syntax = message.syntax; if (message.edition != null && message.hasOwnProperty("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 +157369,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 +157391,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 +157475,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 @@ -150766,6 +157535,8 @@ 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; }; @@ -150793,9 +157564,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 +157584,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 +157633,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,9 +157669,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -150900,7 +157683,7 @@ 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; } @@ -150909,7 +157692,7 @@ 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; } @@ -150918,7 +157701,7 @@ 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; } @@ -150927,7 +157710,7 @@ 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; } @@ -150936,7 +157719,7 @@ 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; } @@ -150945,13 +157728,13 @@ 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); + var error = $root.google.protobuf.MessageOptions.verify(message.options, long + 1); if (error) return "options." + error; } @@ -150959,7 +157742,7 @@ 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; } @@ -150971,6 +157754,15 @@ if (!$util.isString(message.reservedName[i])) return "reservedName: string[] expected"; } + if (message.visibility != null && message.hasOwnProperty("visibility")) + switch (message.visibility) { + default: + return "visibility: enum value expected"; + case 0: + case 1: + case 2: + break; + } return null; }; @@ -150982,9 +157774,13 @@ * @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 (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); @@ -150995,7 +157791,7 @@ for (var i = 0; i < object.field.length; ++i) { if (typeof object.field[i] !== "object") 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) { @@ -151005,7 +157801,7 @@ for (var i = 0; i < object.extension.length; ++i) { if (typeof object.extension[i] !== "object") 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) { @@ -151015,7 +157811,7 @@ for (var i = 0; i < object.nestedType.length; ++i) { if (typeof object.nestedType[i] !== "object") 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) { @@ -151025,7 +157821,7 @@ for (var i = 0; i < object.enumType.length; ++i) { if (typeof object.enumType[i] !== "object") 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) { @@ -151035,7 +157831,7 @@ for (var i = 0; i < object.extensionRange.length; ++i) { if (typeof object.extensionRange[i] !== "object") 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) { @@ -151045,13 +157841,13 @@ for (var i = 0; i < object.oneofDecl.length; ++i) { if (typeof object.oneofDecl[i] !== "object") 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") 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)) @@ -151060,7 +157856,7 @@ for (var i = 0; i < object.reservedRange.length; ++i) { if (typeof object.reservedRange[i] !== "object") 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 +157866,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; }; @@ -151099,6 +157915,7 @@ if (options.defaults) { object.name = ""; object.options = null; + object.visibility = options.enums === String ? "VISIBILITY_UNSET" : 0; } if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; @@ -151144,6 +157961,8 @@ for (var j = 0; j < message.reservedName.length; ++j) object.reservedName[j] = message.reservedName[j]; } + if (message.visibility != null && message.hasOwnProperty("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 +158014,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]]; } @@ -151280,9 +158099,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 +158121,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,9 +158156,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.start != null && message.hasOwnProperty("start")) if (!$util.isInteger(message.start)) return "start: integer expected"; @@ -151343,7 +158170,7 @@ 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); + var error = $root.google.protobuf.ExtensionRangeOptions.verify(message.options, long + 1); if (error) return "options." + error; } @@ -151358,9 +158185,13 @@ * @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 (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; @@ -151369,7 +158200,7 @@ if (object.options != null) { if (typeof object.options !== "object") 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; }; @@ -151451,7 +158282,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]]; } @@ -151526,9 +158357,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 +158379,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -151575,9 +158410,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.start != null && message.hasOwnProperty("start")) if (!$util.isInteger(message.start)) return "start: integer expected"; @@ -151595,9 +158434,13 @@ * @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 (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; @@ -151687,7 +158530,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]]; } @@ -151784,9 +158627,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 +158643,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 +158661,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -151845,14 +158692,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.uninterpretedOption != null && message.hasOwnProperty("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; } @@ -151861,13 +158712,13 @@ 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); + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } @@ -151890,9 +158741,13 @@ * @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 (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)) @@ -151901,7 +158756,7 @@ for (var i = 0; i < object.uninterpretedOption.length; ++i) { if (typeof object.uninterpretedOption[i] !== "object") 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) { @@ -151911,13 +158766,13 @@ for (var i = 0; i < object.declaration.length; ++i) { if (typeof object.declaration[i] !== "object") 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") 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": @@ -152026,7 +158881,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]]; } @@ -152131,9 +158986,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 +159020,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -152192,9 +159051,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.number != null && message.hasOwnProperty("number")) if (!$util.isInteger(message.number)) return "number: integer expected"; @@ -152221,9 +159084,13 @@ * @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 (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; @@ -152347,7 +159214,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]]; } @@ -152512,9 +159379,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 +159429,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 +159437,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -152597,9 +159468,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -152655,7 +159530,7 @@ 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); + var error = $root.google.protobuf.FieldOptions.verify(message.options, long + 1); if (error) return "options." + error; } @@ -152673,9 +159548,13 @@ * @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 (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); @@ -152794,7 +159673,7 @@ if (object.options != null) { if (typeof object.options !== "object") 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); @@ -152964,7 +159843,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]]; } @@ -153039,9 +159918,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 +159936,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 +159971,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("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); + var error = $root.google.protobuf.OneofOptions.verify(message.options, long + 1); if (error) return "options." + error; } @@ -153110,16 +159997,20 @@ * @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 (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") 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; }; @@ -153188,6 +160079,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 +160096,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 +160140,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 @@ -153285,6 +160185,8 @@ 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; }; @@ -153312,9 +160214,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 +160234,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 +160253,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,9 +160289,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -153389,13 +160303,13 @@ 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); + var error = $root.google.protobuf.EnumOptions.verify(message.options, long + 1); if (error) return "options." + error; } @@ -153403,7 +160317,7 @@ 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; } @@ -153415,6 +160329,15 @@ if (!$util.isString(message.reservedName[i])) return "reservedName: string[] expected"; } + if (message.visibility != null && message.hasOwnProperty("visibility")) + switch (message.visibility) { + default: + return "visibility: enum value expected"; + case 0: + case 1: + case 2: + break; + } return null; }; @@ -153426,9 +160349,13 @@ * @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 (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); @@ -153439,13 +160366,13 @@ for (var i = 0; i < object.value.length; ++i) { if (typeof object.value[i] !== "object") 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") 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)) @@ -153454,7 +160381,7 @@ for (var i = 0; i < object.reservedRange.length; ++i) { if (typeof object.reservedRange[i] !== "object") 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 +160391,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; }; @@ -153488,6 +160435,7 @@ if (options.defaults) { object.name = ""; object.options = null; + object.visibility = options.enums === String ? "VISIBILITY_UNSET" : 0; } if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; @@ -153508,6 +160456,8 @@ for (var j = 0; j < message.reservedName.length; ++j) object.reservedName[j] = message.reservedName[j]; } + if (message.visibility != null && message.hasOwnProperty("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 +160508,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]]; } @@ -153633,9 +160583,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 +160605,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -153682,9 +160636,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.start != null && message.hasOwnProperty("start")) if (!$util.isInteger(message.start)) return "start: integer expected"; @@ -153702,9 +160660,13 @@ * @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 (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; @@ -153791,7 +160753,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]]; } @@ -153876,9 +160838,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 +160860,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,9 +160895,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -153939,7 +160909,7 @@ 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); + var error = $root.google.protobuf.EnumValueOptions.verify(message.options, long + 1); if (error) return "options." + error; } @@ -153954,9 +160924,13 @@ * @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 (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); @@ -153965,7 +160939,7 @@ if (object.options != null) { if (typeof object.options !== "object") 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; }; @@ -154049,7 +161023,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]]; } @@ -154135,9 +161109,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 +161129,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,9 +161168,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -154200,13 +161182,13 @@ 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); + var error = $root.google.protobuf.ServiceOptions.verify(message.options, long + 1); if (error) return "options." + error; } @@ -154221,9 +161203,13 @@ * @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 (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); @@ -154234,13 +161220,13 @@ for (var i = 0; i < object.method.length; ++i) { if (typeof object.method[i] !== "object") 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") 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; }; @@ -154330,7 +161316,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]]; } @@ -154445,9 +161431,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 +161457,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 +161469,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -154510,9 +161500,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; @@ -154523,7 +161517,7 @@ 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); + var error = $root.google.protobuf.MethodOptions.verify(message.options, long + 1); if (error) return "options." + error; } @@ -154544,9 +161538,13 @@ * @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 (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); @@ -154557,7 +161555,7 @@ if (object.options != null) { if (typeof object.options !== "object") 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); @@ -154674,7 +161672,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]]; } @@ -154951,9 +161949,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 +162039,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,9 +162086,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.javaPackage != null && message.hasOwnProperty("javaPackage")) if (!$util.isString(message.javaPackage)) return "javaPackage: string expected"; @@ -155151,7 +162157,7 @@ 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); + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } @@ -155159,7 +162165,7 @@ 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; } @@ -155168,7 +162174,7 @@ 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 +162190,13 @@ * @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 (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); @@ -155247,7 +162257,7 @@ if (object.features != null) { if (typeof object.features !== "object") 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)) @@ -155256,7 +162266,7 @@ for (var i = 0; i < object.uninterpretedOption.length; ++i) { if (typeof object.uninterpretedOption[i] !== "object") 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"]) { @@ -155266,7 +162276,7 @@ for (var i = 0; i < object[".google.api.resourceDefinition"].length; ++i) { if (typeof object[".google.api.resourceDefinition"][i] !== "object") 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; @@ -155437,7 +162447,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]]; } @@ -155573,9 +162583,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 +162617,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,9 +162662,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.messageSetWireFormat != null && message.hasOwnProperty("messageSetWireFormat")) if (typeof message.messageSetWireFormat !== "boolean") return "messageSetWireFormat: boolean expected"; @@ -155667,7 +162685,7 @@ 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); + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } @@ -155675,13 +162693,13 @@ 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"]); + var error = $root.google.api.ResourceDescriptor.verify(message[".google.api.resource"], long + 1); if (error) return ".google.api.resource." + error; } @@ -155696,9 +162714,13 @@ * @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 (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); @@ -155713,7 +162735,7 @@ if (object.features != null) { if (typeof object.features !== "object") 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)) @@ -155722,13 +162744,13 @@ for (var i = 0; i < object.uninterpretedOption.length; ++i) { if (typeof object.uninterpretedOption[i] !== "object") 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") 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; }; @@ -155826,6 +162848,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 +162870,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 +162970,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 @@ -156029,6 +163060,8 @@ $root.google.protobuf.FieldOptions.EditionDefault.encode(message.editionDefaults[i], writer.uint32(/* id 20, wireType 2 =*/162).fork()).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(); + 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()).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(); @@ -156066,9 +163099,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 +163162,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 +163191,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,9 +163230,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.ctype != null && message.hasOwnProperty("ctype")) switch (message.ctype) { default: @@ -156261,21 +163306,26 @@ 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); + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } + if (message.featureSupport != null && message.hasOwnProperty("featureSupport")) { + var error = $root.google.protobuf.FieldOptions.FeatureSupport.verify(message.featureSupport, long + 1); + if (error) + return "featureSupport." + error; + } if (message.uninterpretedOption != null && message.hasOwnProperty("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; } @@ -156300,12 +163350,12 @@ } } if (message[".google.api.resourceReference"] != null && message.hasOwnProperty(".google.api.resourceReference")) { - var error = $root.google.api.ResourceReference.verify(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"]); + var error = $root.google.api.FieldInfo.verify(message[".google.api.fieldInfo"], long + 1); if (error) return ".google.api.fieldInfo." + error; } @@ -156320,9 +163370,13 @@ * @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 (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: @@ -156456,13 +163510,18 @@ for (var i = 0; i < object.editionDefaults.length; ++i) { if (typeof object.editionDefaults[i] !== "object") 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") 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 (typeof object.featureSupport !== "object") + 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)) @@ -156471,7 +163530,7 @@ for (var i = 0; i < object.uninterpretedOption.length; ++i) { if (typeof object.uninterpretedOption[i] !== "object") 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"]) { @@ -156526,12 +163585,12 @@ if (object[".google.api.resourceReference"] != null) { if (typeof object[".google.api.resourceReference"] !== "object") 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") 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; }; @@ -156566,6 +163625,7 @@ 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; } @@ -156599,6 +163659,8 @@ } if (message.features != null && message.hasOwnProperty("features")) object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options); + if (message.featureSupport != null && message.hasOwnProperty("featureSupport")) + object.featureSupport = $root.google.protobuf.FieldOptions.FeatureSupport.toObject(message.featureSupport, options); if (message.uninterpretedOption && message.uninterpretedOption.length) { object.uninterpretedOption = []; for (var j = 0; j < message.uninterpretedOption.length; ++j) @@ -156741,7 +163803,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]]; } @@ -156816,9 +163878,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 +163900,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -156865,14 +163931,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.edition != null && message.hasOwnProperty("edition")) switch (message.edition) { default: return "edition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -156899,9 +163970,13 @@ * @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 (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 +163989,10 @@ case 0: message.edition = 0; break; + case "EDITION_LEGACY": + case 900: + message.edition = 900; + break; case "EDITION_PROTO2": case 998: message.edition = 998; @@ -157013,6 +164092,500 @@ 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) { + if (!writer) + writer = $Writer.create(); + 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).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 && message.hasOwnProperty("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 && message.hasOwnProperty("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 && message.hasOwnProperty("deprecationWarning")) + if (!$util.isString(message.deprecationWarning)) + return "deprecationWarning: string expected"; + if (message.editionRemoved != null && message.hasOwnProperty("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 (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) { + if (!options) + options = {}; + 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 && message.hasOwnProperty("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 && message.hasOwnProperty("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 && message.hasOwnProperty("deprecationWarning")) + object.deprecationWarning = message.deprecationWarning; + if (message.editionRemoved != null && message.hasOwnProperty("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 +164611,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]]; } @@ -157114,9 +164687,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 +164701,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,11 +164742,15 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.features != null && message.hasOwnProperty("features")) { - var error = $root.google.protobuf.FeatureSet.verify(message.features); + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } @@ -157177,7 +164758,7 @@ 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,14 +164774,18 @@ * @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 (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") 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)) @@ -157209,7 +164794,7 @@ for (var i = 0; i < object.uninterpretedOption.length; ++i) { if (typeof object.uninterpretedOption[i] !== "object") 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; @@ -157296,7 +164881,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]]; } @@ -157402,9 +164987,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 +165013,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,9 +165054,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.allowAlias != null && message.hasOwnProperty("allowAlias")) if (typeof message.allowAlias !== "boolean") return "allowAlias: boolean expected"; @@ -157478,7 +165071,7 @@ 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); + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } @@ -157486,7 +165079,7 @@ 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 +165095,13 @@ * @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 (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); @@ -157515,7 +165112,7 @@ if (object.features != null) { if (typeof object.features !== "object") 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)) @@ -157524,7 +165121,7 @@ for (var i = 0; i < object.uninterpretedOption.length; ++i) { if (typeof object.uninterpretedOption[i] !== "object") 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; @@ -157605,6 +165202,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 +165218,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 +165246,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 @@ -157686,6 +165292,8 @@ $root.google.protobuf.FeatureSet.encode(message.features, writer.uint32(/* id 2, wireType 2 =*/18).fork()).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()).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(); @@ -157716,9 +165324,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 +165342,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 +165391,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.deprecated != null && message.hasOwnProperty("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); + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } if (message.debugRedact != null && message.hasOwnProperty("debugRedact")) if (typeof message.debugRedact !== "boolean") return "debugRedact: boolean expected"; + if (message.featureSupport != null && message.hasOwnProperty("featureSupport")) { + var error = $root.google.protobuf.FieldOptions.FeatureSupport.verify(message.featureSupport, long + 1); + if (error) + return "featureSupport." + error; + } if (message.uninterpretedOption != null && message.hasOwnProperty("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,19 +165434,28 @@ * @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 (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") 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 (typeof object.featureSupport !== "object") + 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"); @@ -157829,7 +165463,7 @@ for (var i = 0; i < object.uninterpretedOption.length; ++i) { if (typeof object.uninterpretedOption[i] !== "object") 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; @@ -157854,6 +165488,7 @@ object.deprecated = false; object.features = null; object.debugRedact = false; + object.featureSupport = null; } if (message.deprecated != null && message.hasOwnProperty("deprecated")) object.deprecated = message.deprecated; @@ -157861,6 +165496,8 @@ object.features = $root.google.protobuf.FeatureSet.toObject(message.features, options); if (message.debugRedact != null && message.hasOwnProperty("debugRedact")) object.debugRedact = message.debugRedact; + if (message.featureSupport != null && message.hasOwnProperty("featureSupport")) + object.featureSupport = $root.google.protobuf.FieldOptions.FeatureSupport.toObject(message.featureSupport, options); if (message.uninterpretedOption && message.uninterpretedOption.length) { object.uninterpretedOption = []; for (var j = 0; j < message.uninterpretedOption.length; ++j) @@ -157924,7 +165561,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]]; } @@ -158040,9 +165677,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 +165691,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 +165701,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 +165717,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -158107,11 +165748,15 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.features != null && message.hasOwnProperty("features")) { - var error = $root.google.protobuf.FeatureSet.verify(message.features); + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } @@ -158122,7 +165767,7 @@ 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; } @@ -158147,14 +165792,18 @@ * @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 (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") 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); @@ -158165,7 +165814,7 @@ for (var i = 0; i < object.uninterpretedOption.length; ++i) { if (typeof object.uninterpretedOption[i] !== "object") 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) @@ -158273,7 +165922,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]]; } @@ -158390,9 +166039,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 +166061,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 +166081,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -158459,9 +166112,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.deprecated != null && message.hasOwnProperty("deprecated")) if (typeof message.deprecated !== "boolean") return "deprecated: boolean expected"; @@ -158475,7 +166132,7 @@ break; } if (message.features != null && message.hasOwnProperty("features")) { - var error = $root.google.protobuf.FeatureSet.verify(message.features); + var error = $root.google.protobuf.FeatureSet.verify(message.features, long + 1); if (error) return "features." + error; } @@ -158483,13 +166140,13 @@ 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"]); + var error = $root.google.api.HttpRule.verify(message[".google.api.http"], long + 1); if (error) return ".google.api.http." + error; } @@ -158511,9 +166168,13 @@ * @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 (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); @@ -158540,7 +166201,7 @@ if (object.features != null) { if (typeof object.features !== "object") 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)) @@ -158549,13 +166210,13 @@ for (var i = 0; i < object.uninterpretedOption.length; ++i) { if (typeof object.uninterpretedOption[i] !== "object") 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") 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"])) @@ -158683,7 +166344,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]]; } @@ -158809,9 +166470,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 +166486,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 +166514,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -158880,14 +166545,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.name != null && message.hasOwnProperty("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; } @@ -158921,9 +166590,13 @@ * @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 (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)) @@ -158932,7 +166605,7 @@ for (var i = 0; i < object.name.length; ++i) { if (typeof object.name[i] !== "object") 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) @@ -159077,7 +166750,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]]; } @@ -159150,9 +166823,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,7 +166845,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -159203,9 +166880,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 +166902,13 @@ * @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 (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); @@ -159300,6 +166985,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 +167000,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 +167052,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 @@ -159401,6 +167104,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; }; @@ -159428,9 +167135,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 +167172,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,9 +167212,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.fieldPresence != null && message.hasOwnProperty("fieldPresence")) switch (message.fieldPresence) { default: @@ -159551,6 +167274,26 @@ case 2: break; } + if (message.enforceNamingStyle != null && message.hasOwnProperty("enforceNamingStyle")) + switch (message.enforceNamingStyle) { + default: + return "enforceNamingStyle: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.defaultSymbolVisibility != null && message.hasOwnProperty("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 +167305,13 @@ * @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 (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 +167437,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; }; @@ -159713,6 +167508,8 @@ 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")) object.fieldPresence = options.enums === String ? $root.google.protobuf.FeatureSet.FieldPresence[message.fieldPresence] === undefined ? message.fieldPresence : $root.google.protobuf.FeatureSet.FieldPresence[message.fieldPresence] : message.fieldPresence; @@ -159726,6 +167523,10 @@ 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")) 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 && message.hasOwnProperty("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 && message.hasOwnProperty("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 +167654,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) { + if (!writer) + writer = $Writer.create(); + 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).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; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); + 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 +167905,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]]; } @@ -159965,9 +167991,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 +168007,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 +168019,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -160020,14 +168050,18 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.defaults != null && message.hasOwnProperty("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; } @@ -160037,6 +168071,7 @@ default: return "minimumEdition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -160054,6 +168089,7 @@ default: return "maximumEdition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -160077,9 +168113,13 @@ * @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 (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)) @@ -160088,7 +168128,7 @@ for (var i = 0; i < object.defaults.length; ++i) { if (typeof object.defaults[i] !== "object") 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 +168142,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 +168198,10 @@ case 0: message.maximumEdition = 0; break; + case "EDITION_LEGACY": + case 900: + message.maximumEdition = 900; + break; case "EDITION_PROTO2": case 998: message.maximumEdition = 998; @@ -160262,7 +168310,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 +168325,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 +168338,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. @@ -160320,10 +168377,12 @@ FeatureSetEditionDefault.encode = function encode(message, writer) { 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 (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()).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()).ldelim(); return writer; }; @@ -160351,9 +168410,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 +168427,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 +168467,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.edition != null && message.hasOwnProperty("edition")) switch (message.edition) { default: return "edition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -160420,10 +168492,15 @@ case 2147483647: break; } - if (message.features != null && message.hasOwnProperty("features")) { - var error = $root.google.protobuf.FeatureSet.verify(message.features); + if (message.overridableFeatures != null && message.hasOwnProperty("overridableFeatures")) { + var error = $root.google.protobuf.FeatureSet.verify(message.overridableFeatures, long + 1); + if (error) + return "overridableFeatures." + error; + } + if (message.fixedFeatures != null && message.hasOwnProperty("fixedFeatures")) { + var error = $root.google.protobuf.FeatureSet.verify(message.fixedFeatures, long + 1); if (error) - return "features." + error; + return "fixedFeatures." + error; } return null; }; @@ -160436,9 +168513,13 @@ * @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 (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 +168532,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 +168577,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 (typeof object.overridableFeatures !== "object") + 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 (typeof object.fixedFeatures !== "object") + throw TypeError(".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.fixedFeatures: object expected"); + message.fixedFeatures = $root.google.protobuf.FeatureSet.fromObject(object.fixedFeatures, long + 1); } return message; }; @@ -160514,13 +168604,16 @@ options = {}; 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")) 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 && message.hasOwnProperty("overridableFeatures")) + object.overridableFeatures = $root.google.protobuf.FeatureSet.toObject(message.overridableFeatures, options); + if (message.fixedFeatures != null && message.hasOwnProperty("fixedFeatures")) + object.fixedFeatures = $root.google.protobuf.FeatureSet.toObject(message.fixedFeatures, options); return object; }; @@ -160577,7 +168670,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]]; } @@ -160643,9 +168736,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 +168752,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 +168787,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.location != null && message.hasOwnProperty("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,9 +168814,13 @@ * @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 (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)) @@ -160724,7 +168829,7 @@ for (var i = 0; i < object.location.length; ++i) { if (typeof object.location[i] !== "object") 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; @@ -160806,7 +168911,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]]; } @@ -160920,9 +169025,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 +169075,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -160997,9 +169106,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.path != null && message.hasOwnProperty("path")) { if (!Array.isArray(message.path)) return "path: array expected"; @@ -161038,9 +169151,13 @@ * @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 (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)) @@ -161167,7 +169284,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]]; } @@ -161233,9 +169350,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 +169366,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 +169401,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.annotation != null && message.hasOwnProperty("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,9 +169428,13 @@ * @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 (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)) @@ -161314,7 +169443,7 @@ for (var i = 0; i < object.annotation.length; ++i) { if (typeof object.annotation[i] !== "object") 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; @@ -161394,7 +169523,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]]; } @@ -161503,9 +169632,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 +169673,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -161571,9 +169704,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.path != null && message.hasOwnProperty("path")) { if (!Array.isArray(message.path)) return "path: array expected"; @@ -161610,9 +169747,13 @@ * @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 (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)) @@ -161735,6 +169876,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 +169913,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]]; } @@ -161831,9 +169988,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 +170010,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -161880,9 +170041,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.seconds != null && message.hasOwnProperty("seconds")) if (!$util.isInteger(message.seconds) && !(message.seconds && $util.isInteger(message.seconds.low) && $util.isInteger(message.seconds.high))) return "seconds: integer|Long expected"; @@ -161900,9 +170065,13 @@ * @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 (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) @@ -161999,7 +170168,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]]; } @@ -162074,9 +170243,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 +170265,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -162123,9 +170296,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.seconds != null && message.hasOwnProperty("seconds")) if (!$util.isInteger(message.seconds) && !(message.seconds && $util.isInteger(message.seconds.low) && $util.isInteger(message.seconds.high))) return "seconds: integer|Long expected"; @@ -162143,9 +170320,13 @@ * @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 (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) @@ -162241,7 +170422,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]]; } @@ -162306,9 +170487,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 +170505,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -162351,9 +170536,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.value != null && message.hasOwnProperty("value")) if (typeof message.value !== "number") return "value: number expected"; @@ -162368,9 +170557,13 @@ * @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 (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); @@ -162446,7 +170639,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]]; } @@ -162511,9 +170704,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 +170722,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -162556,9 +170753,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.value != null && message.hasOwnProperty("value")) if (typeof message.value !== "number") return "value: number expected"; @@ -162573,9 +170774,13 @@ * @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 (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); @@ -162651,7 +170856,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]]; } @@ -162716,9 +170921,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 +170939,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -162761,9 +170970,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.value != null && message.hasOwnProperty("value")) if (!$util.isInteger(message.value) && !(message.value && $util.isInteger(message.value.low) && $util.isInteger(message.value.high))) return "value: integer|Long expected"; @@ -162778,9 +170991,13 @@ * @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 (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) @@ -162870,7 +171087,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]]; } @@ -162935,9 +171152,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 +171170,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -162980,9 +171201,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.value != null && message.hasOwnProperty("value")) if (!$util.isInteger(message.value) && !(message.value && $util.isInteger(message.value.low) && $util.isInteger(message.value.high))) return "value: integer|Long expected"; @@ -162997,9 +171222,13 @@ * @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 (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) @@ -163089,7 +171318,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]]; } @@ -163154,9 +171383,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 +171401,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -163199,9 +171432,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.value != null && message.hasOwnProperty("value")) if (!$util.isInteger(message.value)) return "value: integer expected"; @@ -163216,9 +171453,13 @@ * @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 (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; @@ -163294,7 +171535,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]]; } @@ -163359,9 +171600,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 +171618,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -163404,9 +171649,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.value != null && message.hasOwnProperty("value")) if (!$util.isInteger(message.value)) return "value: integer expected"; @@ -163421,9 +171670,13 @@ * @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 (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; @@ -163499,7 +171752,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]]; } @@ -163564,9 +171817,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 +171835,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -163609,9 +171866,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.value != null && message.hasOwnProperty("value")) if (typeof message.value !== "boolean") return "value: boolean expected"; @@ -163626,9 +171887,13 @@ * @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 (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); @@ -163704,7 +171969,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]]; } @@ -163769,9 +172034,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 +172052,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -163814,9 +172083,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.value != null && message.hasOwnProperty("value")) if (!$util.isString(message.value)) return "value: string expected"; @@ -163831,9 +172104,13 @@ * @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 (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); @@ -163909,7 +172186,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]]; } @@ -163974,9 +172251,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 +172269,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -164019,9 +172300,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.value != null && message.hasOwnProperty("value")) if (!(message.value && typeof message.value.length === "number" || $util.isString(message.value))) return "value: buffer expected"; @@ -164036,9 +172321,13 @@ * @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 (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") @@ -164124,7 +172413,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]]; } @@ -164199,9 +172488,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 +172510,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -164248,9 +172541,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.type_url != null && message.hasOwnProperty("type_url")) if (!$util.isString(message.type_url)) return "type_url: string expected"; @@ -164268,9 +172565,13 @@ * @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 (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); @@ -164362,7 +172663,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]]; } @@ -164428,9 +172729,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 +172749,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -164475,9 +172780,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.paths != null && message.hasOwnProperty("paths")) { if (!Array.isArray(message.paths)) return "paths: array expected"; @@ -164496,9 +172805,13 @@ * @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 (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)) @@ -164581,7 +172894,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]]; } @@ -164636,9 +172949,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 +172963,7 @@ break; switch (tag >>> 3) { default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -164677,9 +172994,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,9 +173012,13 @@ * @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; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); return new $root.google.protobuf.Empty(); }; @@ -164774,7 +173099,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]]; } @@ -164860,9 +173185,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 +173209,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,9 +173244,13 @@ * @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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.code != null && message.hasOwnProperty("code")) if (!$util.isInteger(message.code)) return "code: integer expected"; @@ -164928,7 +173261,7 @@ 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 +173277,13 @@ * @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 (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; @@ -164959,7 +173296,7 @@ for (var i = 0; i < object.details.length; ++i) { if (typeof object.details[i] !== "object") 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; @@ -165058,7 +173395,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]]; } @@ -165133,9 +173470,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 +173484,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 +173523,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 (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.startTime != null && message.hasOwnProperty("startTime")) { - var error = $root.google.protobuf.Timestamp.verify(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); + var error = $root.google.protobuf.Timestamp.verify(message.endTime, long + 1); if (error) return "endTime." + error; } @@ -165206,19 +173551,23 @@ * @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 (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") 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") 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; }; diff --git a/packages/google-cloud-sql/protos/protos.json b/packages/google-cloud-sql/protos/protos.json index bc666cfd4e7d..d3a8e054dbf8 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": { @@ -15951,8 +16018,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 +16142,10 @@ "rule": "repeated", "type": "ClientLibraryDestination", "id": 2 + }, + "selectiveGapicGeneration": { + "type": "SelectiveGapicGeneration", + "id": 3 } } }, @@ -16216,6 +16286,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 +16365,11 @@ "common": { "type": "CommonLanguageSettings", "id": 1 + }, + "renamedServices": { + "keyType": "string", + "type": "string", + "id": 2 } } }, @@ -16334,6 +16431,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 +16565,11 @@ "format": { "type": "Format", "id": 1 + }, + "referencedTypes": { + "rule": "repeated", + "type": "TypeReference", + "id": 2 } }, "nested": { @@ -16468,6 +16583,14 @@ } } } + }, + "TypeReference": { + "fields": { + "typeName": { + "type": "string", + "id": 1 + } + } } } }, @@ -16490,12 +16613,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 +16664,11 @@ "type": "int32", "id": 11 }, + "optionDependency": { + "rule": "repeated", + "type": "string", + "id": 15 + }, "messageType": { "rule": "repeated", "type": "DescriptorProto", @@ -16622,6 +16757,10 @@ "rule": "repeated", "type": "string", "id": 10 + }, + "visibility": { + "type": "SymbolVisibility", + "id": 11 } }, "nested": { @@ -16847,6 +16986,10 @@ "rule": "repeated", "type": "string", "id": 5 + }, + "visibility": { + "type": "SymbolVisibility", + "id": 6 } }, "nested": { @@ -16897,7 +17040,14 @@ "type": "ServiceOptions", "id": 3 } - } + }, + "reserved": [ + [ + 4, + 4 + ], + "stream" + ] }, "MethodDescriptorProto": { "edition": "proto2", @@ -17061,6 +17211,7 @@ 42, 42 ], + "php_generic_services", [ 38, 38 @@ -17196,7 +17347,8 @@ "type": "bool", "id": 10, "options": { - "default": false + "default": false, + "deprecated": true } }, "debugRedact": { @@ -17224,6 +17376,10 @@ "type": "FeatureSet", "id": 21 }, + "featureSupport": { + "type": "FeatureSupport", + "id": 22 + }, "uninterpretedOption": { "rule": "repeated", "type": "UninterpretedOption", @@ -17293,6 +17449,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 +17557,10 @@ "default": false } }, + "featureSupport": { + "type": "FieldOptions.FeatureSupport", + "id": 4 + }, "uninterpretedOption": { "rule": "repeated", "type": "UninterpretedOption", @@ -17523,6 +17703,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 +17714,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 +17725,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 +17736,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 +17747,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 +17758,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 +17834,13 @@ "UTF8_VALIDATION_UNKNOWN": 0, "VERIFY": 2, "NONE": 3 - } + }, + "reserved": [ + [ + 1, + 1 + ] + ] }, "MessageEncoding": { "values": { @@ -17653,6 +17855,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 +17909,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 +17941,12 @@ "id": 1 } }, + "extensions": [ + [ + 536000000, + 536000000 + ] + ], "nested": { "Location": { "fields": { @@ -17782,6 +18032,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 4f700337fe2c..e8213ce4277d 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/src/v1/index.ts b/packages/google-cloud-sql/src/v1/index.ts index fa8a89f713a8..3e843e173570 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 e6258c7ae72b..582b1c1f4ae2 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 e564a09bad51..1931f7ec4f63 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 6c84fc9a1284..55bcc54b96ae 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 999cef663be5..6b679b46644a 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 15082a1ebb78..55b053d0a121 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 deeadf3118b6..b30f40542afd 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 754b0a26a55a..e4e372e22ccb 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 d027e27c654b..4d9599d37c13 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 df2bb53abd2d..e820b8c0dff9 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 f8c5bac50336..559916f53617 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 9550f405ca02..4ef6422ba951 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/index.ts b/packages/google-cloud-sql/src/v1beta4/index.ts index c1b5dcdaf6e0..d8f42f199ca2 100644 --- a/packages/google-cloud-sql/src/v1beta4/index.ts +++ b/packages/google-cloud-sql/src/v1beta4/index.ts @@ -16,14 +16,14 @@ // ** 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 { 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 56b0124a7c70..1d8a6b7aca1a 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_backups_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_backups_service_client.ts index 21c870f5d116..8c51bd7530ed 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_connect_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_connect_service_client.ts index 9dd0d4425b76..98f4fcbdfa17 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,43 @@ 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', + '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,303 @@ 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 - */ + /** + * 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 +712,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 +749,7 @@ export class SqlConnectServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -633,7 +765,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 +802,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_databases_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_databases_service_client.ts index 8be5e2d2de26..acc2d5a1d7c3 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_flags_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_flags_service_client.ts index c8b765e7f710..2ada4fa5a4c1 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_instances_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_instances_service_client.ts index dbfed12b86a9..a487606fd449 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,6366 @@ 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 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 + */ 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 {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 +6818,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 +6855,7 @@ export class SqlInstancesServiceClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } @@ -4767,7 +6871,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 +6906,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 +6931,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_operations_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_operations_service_client.ts index 8889aa76f6d8..ceb1fa381192 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_ssl_certs_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_ssl_certs_service_client.ts index 017e4fb36684..aeb3ba6c3aa3 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_tiers_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_tiers_service_client.ts index 3491ba057e4e..599f74109a04 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_users_service_client.ts b/packages/google-cloud-sql/src/v1beta4/sql_users_service_client.ts index 0f2b60605587..2f95c603fe50 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/system-test/install.ts b/packages/google-cloud-sql/system-test/install.ts index f66069aa3940..ccf167042d2e 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 ef97c1615c76..39a4cbb474bb 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 e6f331aed7d4..31018716d40f 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 7cd5fd683143..e0e3601d826c 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 7284e1063b10..b2fece3336d8 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 6871c0b454df..b60949338fd6 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 cf1df12ba74f..7a26e7c169f0 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,849 @@ 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'); - }); + 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"); - }); + 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(); - }); + 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('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'); + }); - 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']; + } }); - 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('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', }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({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 = sqlconnectserviceModule.v1beta4.SqlConnectServiceClient.port; - assert(port); - assert(typeof port === 'number'); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('should create a client with no option', () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient(); - assert(client); - }); + it('has port', () => { + const port = sqlconnectserviceModule.v1beta4.SqlConnectServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('should create a client with gRPC fallback', () => { - const client = new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ - fallback: true, - }); - assert(client); - }); + it('should create a client with no option', () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient(); + assert(client); + }); - 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('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', }); - - 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()); + 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.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 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; }); }); - 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('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('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('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('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 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 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 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('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)); }); - 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 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('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 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 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); + 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)); + }); + describe('getLocation', () => { + it('invokes getLocation without error', async () => { + const client = + new sqlconnectserviceModule.v1beta4.SqlConnectServiceClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); - 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)); + 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', }); - 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)); + 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 - ) - ); + }); + 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', }); - 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 - ) - ); + 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)); - }); + }); + + 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_databases_service_v1.ts b/packages/google-cloud-sql/test/gapic_sql_databases_service_v1.ts index cca0b07a3c6e..15097fddb205 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 888634ab0244..3f9edfa33005 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 1b943f35d8e6..b8f469f7bc39 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 be1385ccd329..09b5fbd0667f 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 0d1278673ccd..4e37b9e1b3e7 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 3e9991b4257f..03dbe2acbf28 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 5a2dbf876691..57ac7bbd95ca 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 5903ce5f34ca..56b5f9690f63 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 5fca4c39fd70..28cc64f3a40a 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 d3e88a5978ca..07ac5d56e9e0 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 40109a1edb60..7b9549c8daf5 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 7be02eaff388..0f48bbe07820 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 84dcb4615d7f..7eed7f7ae61f 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 b5b898848b1b..ffbc06c9fd47 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 46449019b106..10439be8e2e5 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 6968d355a69c..07dc78031d41 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.